From: Matt Corallo Date: Wed, 24 Jan 2024 03:32:37 +0000 (+0000) Subject: [C#] Update auto-generated C# bindings X-Git-Tag: v0.0.121.0~5 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=3d1f246d05172683acd3b81836de4e4e9f0c1afd;p=ldk-java [C#] Update auto-generated C# bindings --- diff --git a/c_sharp/bindings.c b/c_sharp/bindings.c index 5f7c5c2e..aa2a9f13 100644 --- a/c_sharp/bindings.c +++ b/c_sharp/bindings.c @@ -31,6 +31,18 @@ _Static_assert(offsetof(LDKCVec_u8Z, datalen) == offsetof(LDKu8slice, datalen), _Static_assert(sizeof(void*) <= 8, "Pointers must fit into 64 bits"); +// Int types across Windows/Linux are different, so make sure we're using the right headers. +_Static_assert(sizeof(void*) == sizeof(uintptr_t), "stdints must be correct"); +_Static_assert(sizeof(void*) == sizeof(intptr_t), "stdints must be correct"); +_Static_assert(sizeof(uint64_t) == 8, "stdints must be correct"); +_Static_assert(sizeof(int64_t) == 8, "stdints must be correct"); +_Static_assert(sizeof(uint32_t) == 4, "stdints must be correct"); +_Static_assert(sizeof(int32_t) == 4, "stdints must be correct"); +_Static_assert(sizeof(uint16_t) == 2, "stdints must be correct"); +_Static_assert(sizeof(int16_t) == 2, "stdints must be correct"); +_Static_assert(sizeof(uint8_t) == 1, "stdints must be correct"); +_Static_assert(sizeof(int8_t) == 1, "stdints must be correct"); + #define DECL_ARR_TYPE(ty, name) \ struct name##array { \ uint64_t arr_len; /* uint32_t would suffice but we want to align uint64_ts as well */ \ @@ -115,6 +127,13 @@ int CS_LDK_register_void_l_invoker(invoker_void_l invoker) { return 0; } +typedef int64_t (*invoker_l_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); +static invoker_l_lll js_invoke_function_l_lll; +int CS_LDK_register_l_lll_invoker(invoker_l_lll invoker) { + js_invoke_function_l_lll = invoker; + return 0; +} + typedef int64_t (*invoker_l_llll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c, int64_t d); static invoker_l_llll js_invoke_function_l_llll; int CS_LDK_register_l_llll_invoker(invoker_l_llll invoker) { @@ -129,10 +148,10 @@ int CS_LDK_register_l_lllll_invoker(invoker_l_lllll invoker) { return 0; } -typedef int64_t (*invoker_l_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); -static invoker_l_lll js_invoke_function_l_lll; -int CS_LDK_register_l_lll_invoker(invoker_l_lll invoker) { - js_invoke_function_l_lll = invoker; +typedef void (*invoker_void_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); +static invoker_void_lll js_invoke_function_void_lll; +int CS_LDK_register_void_lll_invoker(invoker_void_lll invoker) { + js_invoke_function_void_lll = invoker; return 0; } @@ -339,6 +358,20 @@ static inline uint64_t tag_ptr(const void* ptr, bool is_owned) { } } +static inline LDKBlindedFailure LDKBlindedFailure_from_cs(int32_t ord) { + switch (ord) { + case 0: return LDKBlindedFailure_FromIntroductionNode; + case 1: return LDKBlindedFailure_FromBlindedNode; + default: abort(); + } +} +static inline int32_t LDKBlindedFailure_to_cs(LDKBlindedFailure val) { + switch (val) { + case LDKBlindedFailure_FromIntroductionNode: return 0; + case LDKBlindedFailure_FromBlindedNode: return 1; + default: abort(); + } +} static inline LDKBolt11SemanticError LDKBolt11SemanticError_from_cs(int32_t ord) { switch (ord) { case 0: return LDKBolt11SemanticError_NoPaymentHash; @@ -486,24 +519,22 @@ static inline int32_t LDKChannelShutdownState_to_cs(LDKChannelShutdownState val) static inline LDKConfirmationTarget LDKConfirmationTarget_from_cs(int32_t ord) { switch (ord) { case 0: return LDKConfirmationTarget_OnChainSweep; - case 1: return LDKConfirmationTarget_MaxAllowedNonAnchorChannelRemoteFee; - case 2: return LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee; - case 3: return LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee; - case 4: return LDKConfirmationTarget_AnchorChannelFee; - case 5: return LDKConfirmationTarget_NonAnchorChannelFee; - case 6: return LDKConfirmationTarget_ChannelCloseMinimum; + case 1: return LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee; + case 2: return LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee; + case 3: return LDKConfirmationTarget_AnchorChannelFee; + case 4: return LDKConfirmationTarget_NonAnchorChannelFee; + case 5: return LDKConfirmationTarget_ChannelCloseMinimum; default: abort(); } } static inline int32_t LDKConfirmationTarget_to_cs(LDKConfirmationTarget val) { switch (val) { case LDKConfirmationTarget_OnChainSweep: return 0; - case LDKConfirmationTarget_MaxAllowedNonAnchorChannelRemoteFee: return 1; - case LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee: return 2; - case LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee: return 3; - case LDKConfirmationTarget_AnchorChannelFee: return 4; - case LDKConfirmationTarget_NonAnchorChannelFee: return 5; - case LDKConfirmationTarget_ChannelCloseMinimum: return 6; + case LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee: return 1; + case LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee: return 2; + case LDKConfirmationTarget_AnchorChannelFee: return 3; + case LDKConfirmationTarget_NonAnchorChannelFee: return 4; + case LDKConfirmationTarget_ChannelCloseMinimum: return 5; default: abort(); } } @@ -789,6 +820,11 @@ static inline int32_t LDKUtxoLookupError_to_cs(LDKUtxoLookupError val) { default: abort(); } } +static inline LDKCVec_u8Z CVec_u8Z_clone(const LDKCVec_u8Z *orig) { + LDKCVec_u8Z ret = { .data = MALLOC(sizeof(int8_t) * orig->datalen, "LDKCVec_u8Z clone bytes"), .datalen = orig->datalen }; + memcpy(ret.data, orig->data, sizeof(int8_t) * ret.datalen); + return ret; +} struct LDKThirtyTwoBytes BigEndianScalar_get_bytes (struct LDKBigEndianScalar* thing) { LDKThirtyTwoBytes ret = { .data = *thing->big_endian_bytes }; return ret; @@ -835,63 +871,6 @@ int8_t CS_LDK_LDKBech32Error_InvalidData_get_invalid_data(int64_t ptr) { int8_t invalid_data_conv = obj->invalid_data; return invalid_data_conv; } -static inline LDKCVec_u8Z CVec_u8Z_clone(const LDKCVec_u8Z *orig) { - LDKCVec_u8Z ret = { .data = MALLOC(sizeof(int8_t) * orig->datalen, "LDKCVec_u8Z clone bytes"), .datalen = orig->datalen }; - memcpy(ret.data, orig->data, sizeof(int8_t) * ret.datalen); - return ret; -} -struct LDKWitness TxIn_get_witness (struct LDKTxIn* thing) { return Witness_clone(&thing->witness);}int8_tArray CS_LDK_TxIn_get_witness(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - LDKWitness ret_var = TxIn_get_witness(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - Witness_free(ret_var); - return ret_arr; -} - -struct LDKCVec_u8Z TxIn_get_script_sig (struct LDKTxIn* thing) { return CVec_u8Z_clone(&thing->script_sig);}int8_tArray CS_LDK_TxIn_get_script_sig(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - LDKCVec_u8Z ret_var = TxIn_get_script_sig(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - CVec_u8Z_free(ret_var); - return ret_arr; -} - -LDKThirtyTwoBytes TxIn_get_previous_txid (struct LDKTxIn* thing) { return thing->previous_txid;}int8_tArray CS_LDK_TxIn_get_previous_txid(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, TxIn_get_previous_txid(thing_conv).data, 32); - return ret_arr; -} - -uint32_t TxIn_get_previous_vout (struct LDKTxIn* thing) { return thing->previous_vout;}int32_t CS_LDK_TxIn_get_previous_vout(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int32_t ret_conv = TxIn_get_previous_vout(thing_conv); - return ret_conv; -} - -uint32_t TxIn_get_sequence (struct LDKTxIn* thing) { return thing->sequence;}int32_t CS_LDK_TxIn_get_sequence(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int32_t ret_conv = TxIn_get_sequence(thing_conv); - return ret_conv; -} - -struct LDKCVec_u8Z TxOut_get_script_pubkey (struct LDKTxOut* thing) { return CVec_u8Z_clone(&thing->script_pubkey);}int8_tArray CS_LDK_TxOut_get_script_pubkey(int64_t thing) { - LDKTxOut* thing_conv = (LDKTxOut*)untag_ptr(thing); - LDKCVec_u8Z ret_var = TxOut_get_script_pubkey(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - CVec_u8Z_free(ret_var); - return ret_arr; -} - -uint64_t TxOut_get_value (struct LDKTxOut* thing) { return thing->value;}int64_t CS_LDK_TxOut_get_value(int64_t thing) { - LDKTxOut* thing_conv = (LDKTxOut*)untag_ptr(thing); - int64_t ret_conv = TxOut_get_value(thing_conv); - return ret_conv; -} - uint32_t CS_LDK_LDKCOption_u64Z_ty_from_ptr(int64_t ptr) { LDKCOption_u64Z *obj = (LDKCOption_u64Z*)untag_ptr(ptr); switch(obj->tag) { @@ -1354,6 +1333,13 @@ int64_t CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_output(int64_t ptr) LDKTxOut* output_ref = &obj->static_output.output; return tag_ptr(output_ref, false); } +int8_tArray CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_channel_keys_id(int64_t ptr) { + LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)untag_ptr(ptr); + CHECK(obj->tag == LDKSpendableOutputDescriptor_StaticOutput); + int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); + memcpy(channel_keys_id_arr->elems, obj->static_output.channel_keys_id.data, 32); + return channel_keys_id_arr; +} int64_t CS_LDK_LDKSpendableOutputDescriptor_DelayedPaymentOutput_get_delayed_payment_output(int64_t ptr) { LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)untag_ptr(ptr); CHECK(obj->tag == LDKSpendableOutputDescriptor_DelayedPaymentOutput); @@ -1424,45 +1410,45 @@ int32_t CS_LDK_LDKCOption_u32Z_Some_get_some(int64_t ptr) { int32_t some_conv = obj->some; return some_conv; } -static inline struct LDKCVec_u8Z C2Tuple_CVec_u8ZusizeZ_get_a(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner){ +static inline struct LDKCVec_u8Z C2Tuple_CVec_u8Zu64Z_get_a(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner){ return CVec_u8Z_clone(&owner->a); } -int8_tArray CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_a(int64_t owner) { - LDKC2Tuple_CVec_u8ZusizeZ* owner_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(owner); - LDKCVec_u8Z ret_var = C2Tuple_CVec_u8ZusizeZ_get_a(owner_conv); +int8_tArray CS_LDK_C2Tuple_CVec_u8Zu64Z_get_a(int64_t owner) { + LDKC2Tuple_CVec_u8Zu64Z* owner_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(owner); + LDKCVec_u8Z ret_var = C2Tuple_CVec_u8Zu64Z_get_a(owner_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); CVec_u8Z_free(ret_var); return ret_arr; } -static inline uintptr_t C2Tuple_CVec_u8ZusizeZ_get_b(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner){ +static inline uint64_t C2Tuple_CVec_u8Zu64Z_get_b(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner){ return owner->b; } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_b(int64_t owner) { - LDKC2Tuple_CVec_u8ZusizeZ* owner_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(owner); - int64_t ret_conv = C2Tuple_CVec_u8ZusizeZ_get_b(owner_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_get_b(int64_t owner) { + LDKC2Tuple_CVec_u8Zu64Z* owner_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(owner); + int64_t ret_conv = C2Tuple_CVec_u8Zu64Z_get_b(owner_conv); return ret_conv; } -static inline struct LDKC2Tuple_CVec_u8ZusizeZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner){ +static inline struct LDKC2Tuple_CVec_u8Zu64Z CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return C2Tuple_CVec_u8ZusizeZ_clone(&*owner->contents.result); + return C2Tuple_CVec_u8Zu64Z_clone(&*owner->contents.result); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(owner); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(int64_t owner) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(owner); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(owner_conv); return tag_ptr(ret_conv, true); } -static inline void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner){ +static inline void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return *owner->contents.err; } -void CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(owner); - CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(owner_conv); +void CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(int64_t owner) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(owner); + CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(owner_conv); } static inline struct LDKChannelDerivationParameters CResult_ChannelDerivationParametersDecodeErrorZ_get_ok(LDKCResult_ChannelDerivationParametersDecodeErrorZ *NONNULL_PTR owner){ @@ -1535,74 +1521,6 @@ void CS_LDK_CResult_NoneNoneZ_get_err(int64_t owner) { CResult_NoneNoneZ_get_err(owner_conv); } -static inline struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ - return owner->a; -} -int8_tArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(int64_t owner) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); - int8_tArray ret_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_arr->elems, C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(owner_conv).compact_form, 64); - return ret_arr; -} - -static inline struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ - return owner->b; -} -ptrArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(int64_t owner) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); - LDKCVec_ECDSASignatureZ ret_var = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(owner_conv); - ptrArray ret_arr = NULL; - ret_arr = init_ptrArray(ret_var.datalen, __LINE__); - int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); - for (size_t i = 0; i < ret_var.datalen; i++) { - int8_tArray ret_conv_8_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_conv_8_arr->elems, ret_var.data[i].compact_form, 64); - ret_arr_ptr[i] = ret_conv_8_arr; - } - - return ret_arr; -} - -static inline struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(&*owner->contents.result); -} -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(owner_conv); - return tag_ptr(ret_conv, true); -} - -static inline void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); - CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(owner_conv); -} - -static inline struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return *owner->contents.result; -} -int8_tArray CS_LDK_CResult_ECDSASignatureNoneZ_get_ok(int64_t owner) { - LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); - int8_tArray ret_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_arr->elems, CResult_ECDSASignatureNoneZ_get_ok(owner_conv).compact_form, 64); - return ret_arr; -} - -static inline void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_ECDSASignatureNoneZ_get_err(int64_t owner) { - LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); - CResult_ECDSASignatureNoneZ_get_err(owner_conv); -} - static inline struct LDKPublicKey CResult_PublicKeyNoneZ_get_ok(LDKCResult_PublicKeyNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); return *owner->contents.result; @@ -1677,6 +1595,74 @@ void CS_LDK_CResult_SchnorrSignatureNoneZ_get_err(int64_t owner) { CResult_SchnorrSignatureNoneZ_get_err(owner_conv); } +static inline struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return *owner->contents.result; +} +int8_tArray CS_LDK_CResult_ECDSASignatureNoneZ_get_ok(int64_t owner) { + LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_arr->elems, CResult_ECDSASignatureNoneZ_get_ok(owner_conv).compact_form, 64); + return ret_arr; +} + +static inline void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_ECDSASignatureNoneZ_get_err(int64_t owner) { + LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); + CResult_ECDSASignatureNoneZ_get_err(owner_conv); +} + +static inline struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ + return owner->a; +} +int8_tArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(int64_t owner) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_arr->elems, C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(owner_conv).compact_form, 64); + return ret_arr; +} + +static inline struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ + return owner->b; +} +ptrArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(int64_t owner) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); + LDKCVec_ECDSASignatureZ ret_var = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(owner_conv); + ptrArray ret_arr = NULL; + ret_arr = init_ptrArray(ret_var.datalen, __LINE__); + int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); + for (size_t i = 0; i < ret_var.datalen; i++) { + int8_tArray ret_conv_8_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_conv_8_arr->elems, ret_var.data[i].compact_form, 64); + ret_arr_ptr[i] = ret_conv_8_arr; + } + + return ret_arr; +} + +static inline struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(&*owner->contents.result); +} +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(int64_t owner) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(owner_conv); + return tag_ptr(ret_conv, true); +} + +static inline void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(int64_t owner) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); + CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(owner_conv); +} + typedef struct LDKChannelSigner_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -1705,25 +1691,37 @@ LDKThirtyTwoBytes release_commitment_secret_LDKChannelSigner_jcall(const void* t memcpy(ret_ref.data, ret->elems, 32); FREE(ret); return ret_ref; } -LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * holder_tx, LDKCVec_ThirtyTwoBytesZ preimages) { +LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * holder_tx, LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; LDKHolderCommitmentTransaction holder_tx_var = *holder_tx; int64_t holder_tx_ref = 0; holder_tx_var = HolderCommitmentTransaction_clone(&holder_tx_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(holder_tx_var); holder_tx_ref = tag_ptr(holder_tx_var.inner, holder_tx_var.is_owned); - LDKCVec_ThirtyTwoBytesZ preimages_var = preimages; - ptrArray preimages_arr = NULL; - preimages_arr = init_ptrArray(preimages_var.datalen, __LINE__); - int8_tArray *preimages_arr_ptr = (int8_tArray*)(((uint8_t*)preimages_arr) + 8); - for (size_t i = 0; i < preimages_var.datalen; i++) { - int8_tArray preimages_conv_8_arr = init_int8_tArray(32, __LINE__); - memcpy(preimages_conv_8_arr->elems, preimages_var.data[i].data, 32); - preimages_arr_ptr[i] = preimages_conv_8_arr; + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_var = outbound_htlc_preimages; + ptrArray outbound_htlc_preimages_arr = NULL; + outbound_htlc_preimages_arr = init_ptrArray(outbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *outbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)outbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < outbound_htlc_preimages_var.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(outbound_htlc_preimages_conv_8_arr->elems, outbound_htlc_preimages_var.data[i].data, 32); + outbound_htlc_preimages_arr_ptr[i] = outbound_htlc_preimages_conv_8_arr; } - FREE(preimages_var.data); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 2, holder_tx_ref, (int64_t)preimages_arr); + FREE(outbound_htlc_preimages_var.data); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 2, holder_tx_ref, (int64_t)outbound_htlc_preimages_arr); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +LDKCResult_NoneNoneZ validate_counterparty_revocation_LDKChannelSigner_jcall(const void* this_arg, uint64_t idx, const uint8_t (* secret)[32]) { + LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; + int64_t idx_conv = idx; + int8_tArray secret_arr = init_int8_tArray(32, __LINE__); + memcpy(secret_arr->elems, *secret, 32); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 3, idx_conv, (int64_t)secret_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -1732,7 +1730,7 @@ LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const voi } LDKThirtyTwoBytes channel_keys_id_LDKChannelSigner_jcall(const void* this_arg) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 3); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 4); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -1745,7 +1743,7 @@ void provide_channel_parameters_LDKChannelSigner_jcall(void* this_arg, const LDK channel_parameters_var = ChannelTransactionParameters_clone(&channel_parameters_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_parameters_var); channel_parameters_ref = tag_ptr(channel_parameters_var.inner, channel_parameters_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 4, channel_parameters_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 5, channel_parameters_ref); } static void LDKChannelSigner_JCalls_cloned(LDKChannelSigner* new_obj) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) new_obj->this_arg; @@ -1766,6 +1764,7 @@ static inline LDKChannelSigner LDKChannelSigner_init (int64_t o, int64_t pubkeys .get_per_commitment_point = get_per_commitment_point_LDKChannelSigner_jcall, .release_commitment_secret = release_commitment_secret_LDKChannelSigner_jcall, .validate_holder_commitment = validate_holder_commitment_LDKChannelSigner_jcall, + .validate_counterparty_revocation = validate_counterparty_revocation_LDKChannelSigner_jcall, .channel_keys_id = channel_keys_id_LDKChannelSigner_jcall, .provide_channel_parameters = provide_channel_parameters_LDKChannelSigner_jcall, .free = LDKChannelSigner_JCalls_free, @@ -1797,7 +1796,7 @@ int8_tArray CS_LDK_ChannelSigner_release_commitment_secret(int64_t this_arg, in return ret_arr; } -int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64_t holder_tx, ptrArray preimages) { +int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64_t holder_tx, ptrArray outbound_htlc_preimages) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKChannelSigner* this_arg_conv = (LDKChannelSigner*)this_arg_ptr; @@ -1806,23 +1805,36 @@ int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64 holder_tx_conv.is_owned = ptr_is_owned(holder_tx); CHECK_INNER_FIELD_ACCESS_OR_NULL(holder_tx_conv); holder_tx_conv.is_owned = false; - LDKCVec_ThirtyTwoBytesZ preimages_constr; - preimages_constr.datalen = preimages->arr_len; - if (preimages_constr.datalen > 0) - preimages_constr.data = MALLOC(preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_constr; + outbound_htlc_preimages_constr.datalen = outbound_htlc_preimages->arr_len; + if (outbound_htlc_preimages_constr.datalen > 0) + outbound_htlc_preimages_constr.data = MALLOC(outbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); else - preimages_constr.data = NULL; - int8_tArray* preimages_vals = (void*) preimages->elems; - for (size_t i = 0; i < preimages_constr.datalen; i++) { - int8_tArray preimages_conv_8 = preimages_vals[i]; - LDKThirtyTwoBytes preimages_conv_8_ref; - CHECK(preimages_conv_8->arr_len == 32); - memcpy(preimages_conv_8_ref.data, preimages_conv_8->elems, 32); FREE(preimages_conv_8); - preimages_constr.data[i] = preimages_conv_8_ref; - } - FREE(preimages); + outbound_htlc_preimages_constr.data = NULL; + int8_tArray* outbound_htlc_preimages_vals = (void*) outbound_htlc_preimages->elems; + for (size_t i = 0; i < outbound_htlc_preimages_constr.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8 = outbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes outbound_htlc_preimages_conv_8_ref; + CHECK(outbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(outbound_htlc_preimages_conv_8_ref.data, outbound_htlc_preimages_conv_8->elems, 32); FREE(outbound_htlc_preimages_conv_8); + outbound_htlc_preimages_constr.data[i] = outbound_htlc_preimages_conv_8_ref; + } + FREE(outbound_htlc_preimages); LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); - *ret_conv = (this_arg_conv->validate_holder_commitment)(this_arg_conv->this_arg, &holder_tx_conv, preimages_constr); + *ret_conv = (this_arg_conv->validate_holder_commitment)(this_arg_conv->this_arg, &holder_tx_conv, outbound_htlc_preimages_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_ChannelSigner_validate_counterparty_revocation(int64_t this_arg, int64_t idx, int8_tArray secret) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelSigner* this_arg_conv = (LDKChannelSigner*)this_arg_ptr; + uint8_t secret_arr[32]; + CHECK(secret->arr_len == 32); + memcpy(secret_arr, secret->elems, 32); FREE(secret); + uint8_t (*secret_ref)[32] = &secret_arr; + LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); + *ret_conv = (this_arg_conv->validate_counterparty_revocation)(this_arg_conv->this_arg, idx, secret_ref); return tag_ptr(ret_conv, true); } @@ -1874,43 +1886,42 @@ static void LDKEcdsaChannelSigner_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx, LDKCVec_ThirtyTwoBytesZ preimages) { +LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx, LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages, LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages) { LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; LDKCommitmentTransaction commitment_tx_var = *commitment_tx; int64_t commitment_tx_ref = 0; commitment_tx_var = CommitmentTransaction_clone(&commitment_tx_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(commitment_tx_var); commitment_tx_ref = tag_ptr(commitment_tx_var.inner, commitment_tx_var.is_owned); - LDKCVec_ThirtyTwoBytesZ preimages_var = preimages; - ptrArray preimages_arr = NULL; - preimages_arr = init_ptrArray(preimages_var.datalen, __LINE__); - int8_tArray *preimages_arr_ptr = (int8_tArray*)(((uint8_t*)preimages_arr) + 8); - for (size_t i = 0; i < preimages_var.datalen; i++) { - int8_tArray preimages_conv_8_arr = init_int8_tArray(32, __LINE__); - memcpy(preimages_conv_8_arr->elems, preimages_var.data[i].data, 32); - preimages_arr_ptr[i] = preimages_conv_8_arr; + LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages_var = inbound_htlc_preimages; + ptrArray inbound_htlc_preimages_arr = NULL; + inbound_htlc_preimages_arr = init_ptrArray(inbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *inbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)inbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < inbound_htlc_preimages_var.datalen; i++) { + int8_tArray inbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(inbound_htlc_preimages_conv_8_arr->elems, inbound_htlc_preimages_var.data[i].data, 32); + inbound_htlc_preimages_arr_ptr[i] = inbound_htlc_preimages_conv_8_arr; + } + + FREE(inbound_htlc_preimages_var.data); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_var = outbound_htlc_preimages; + ptrArray outbound_htlc_preimages_arr = NULL; + outbound_htlc_preimages_arr = init_ptrArray(outbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *outbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)outbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < outbound_htlc_preimages_var.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(outbound_htlc_preimages_conv_8_arr->elems, outbound_htlc_preimages_var.data[i].data, 32); + outbound_htlc_preimages_arr_ptr[i] = outbound_htlc_preimages_conv_8_arr; } - FREE(preimages_var.data); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 5, commitment_tx_ref, (int64_t)preimages_arr); + FREE(outbound_htlc_preimages_var.data); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 6, commitment_tx_ref, (int64_t)inbound_htlc_preimages_arr, (int64_t)outbound_htlc_preimages_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_NoneNoneZ validate_counterparty_revocation_LDKEcdsaChannelSigner_jcall(const void* this_arg, uint64_t idx, const uint8_t (* secret)[32]) { - LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; - int64_t idx_conv = idx; - int8_tArray secret_arr = init_int8_tArray(32, __LINE__); - memcpy(secret_arr->elems, *secret, 32); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 6, idx_conv, (int64_t)secret_arr); - void* ret_ptr = untag_ptr(ret); - CHECK_ACCESS(ret_ptr); - LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); - FREE(untag_ptr(ret)); - return ret_conv; -} LDKCResult_ECDSASignatureNoneZ sign_holder_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * commitment_tx) { LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; LDKHolderCommitmentTransaction commitment_tx_var = *commitment_tx; @@ -2065,7 +2076,6 @@ static inline LDKEcdsaChannelSigner LDKEcdsaChannelSigner_init (int64_t o, int64 LDKEcdsaChannelSigner ret = { .this_arg = (void*) calls, .sign_counterparty_commitment = sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall, - .validate_counterparty_revocation = validate_counterparty_revocation_LDKEcdsaChannelSigner_jcall, .sign_holder_commitment = sign_holder_commitment_LDKEcdsaChannelSigner_jcall, .sign_justice_revoked_output = sign_justice_revoked_output_LDKEcdsaChannelSigner_jcall, .sign_justice_revoked_htlc = sign_justice_revoked_htlc_LDKEcdsaChannelSigner_jcall, @@ -2085,7 +2095,7 @@ uint64_t CS_LDK_LDKEcdsaChannelSigner_new(int32_t o, int32_t ChannelSigner, int *res_ptr = LDKEcdsaChannelSigner_init(o, ChannelSigner, pubkeys); return tag_ptr(res_ptr, true); } -int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg, int64_t commitment_tx, ptrArray preimages) { +int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg, int64_t commitment_tx, ptrArray inbound_htlc_preimages, ptrArray outbound_htlc_preimages) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKEcdsaChannelSigner* this_arg_conv = (LDKEcdsaChannelSigner*)this_arg_ptr; @@ -2094,36 +2104,38 @@ int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg commitment_tx_conv.is_owned = ptr_is_owned(commitment_tx); CHECK_INNER_FIELD_ACCESS_OR_NULL(commitment_tx_conv); commitment_tx_conv.is_owned = false; - LDKCVec_ThirtyTwoBytesZ preimages_constr; - preimages_constr.datalen = preimages->arr_len; - if (preimages_constr.datalen > 0) - preimages_constr.data = MALLOC(preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages_constr; + inbound_htlc_preimages_constr.datalen = inbound_htlc_preimages->arr_len; + if (inbound_htlc_preimages_constr.datalen > 0) + inbound_htlc_preimages_constr.data = MALLOC(inbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); else - preimages_constr.data = NULL; - int8_tArray* preimages_vals = (void*) preimages->elems; - for (size_t i = 0; i < preimages_constr.datalen; i++) { - int8_tArray preimages_conv_8 = preimages_vals[i]; - LDKThirtyTwoBytes preimages_conv_8_ref; - CHECK(preimages_conv_8->arr_len == 32); - memcpy(preimages_conv_8_ref.data, preimages_conv_8->elems, 32); FREE(preimages_conv_8); - preimages_constr.data[i] = preimages_conv_8_ref; - } - FREE(preimages); + inbound_htlc_preimages_constr.data = NULL; + int8_tArray* inbound_htlc_preimages_vals = (void*) inbound_htlc_preimages->elems; + for (size_t i = 0; i < inbound_htlc_preimages_constr.datalen; i++) { + int8_tArray inbound_htlc_preimages_conv_8 = inbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes inbound_htlc_preimages_conv_8_ref; + CHECK(inbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(inbound_htlc_preimages_conv_8_ref.data, inbound_htlc_preimages_conv_8->elems, 32); FREE(inbound_htlc_preimages_conv_8); + inbound_htlc_preimages_constr.data[i] = inbound_htlc_preimages_conv_8_ref; + } + FREE(inbound_htlc_preimages); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_constr; + outbound_htlc_preimages_constr.datalen = outbound_htlc_preimages->arr_len; + if (outbound_htlc_preimages_constr.datalen > 0) + outbound_htlc_preimages_constr.data = MALLOC(outbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + else + outbound_htlc_preimages_constr.data = NULL; + int8_tArray* outbound_htlc_preimages_vals = (void*) outbound_htlc_preimages->elems; + for (size_t i = 0; i < outbound_htlc_preimages_constr.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8 = outbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes outbound_htlc_preimages_conv_8_ref; + CHECK(outbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(outbound_htlc_preimages_conv_8_ref.data, outbound_htlc_preimages_conv_8->elems, 32); FREE(outbound_htlc_preimages_conv_8); + outbound_htlc_preimages_constr.data[i] = outbound_htlc_preimages_conv_8_ref; + } + FREE(outbound_htlc_preimages); LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, &commitment_tx_conv, preimages_constr); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_EcdsaChannelSigner_validate_counterparty_revocation(int64_t this_arg, int64_t idx, int8_tArray secret) { - void* this_arg_ptr = untag_ptr(this_arg); - if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } - LDKEcdsaChannelSigner* this_arg_conv = (LDKEcdsaChannelSigner*)this_arg_ptr; - uint8_t secret_arr[32]; - CHECK(secret->arr_len == 32); - memcpy(secret_arr, secret->elems, 32); FREE(secret); - uint8_t (*secret_ref)[32] = &secret_arr; - LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); - *ret_conv = (this_arg_conv->validate_counterparty_revocation)(this_arg_conv->this_arg, idx, secret_ref); + *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, &commitment_tx_conv, inbound_htlc_preimages_constr, outbound_htlc_preimages_constr); return tag_ptr(ret_conv, true); } @@ -2425,42 +2437,26 @@ jboolean CS_LDK_LDKCOption_boolZ_Some_get_some(int64_t ptr) { jboolean some_conv = obj->some; return some_conv; } -static inline LDKCVec_CVec_u8ZZ CVec_CVec_u8ZZ_clone(const LDKCVec_CVec_u8ZZ *orig) { - LDKCVec_CVec_u8ZZ ret = { .data = MALLOC(sizeof(LDKCVec_u8Z) * orig->datalen, "LDKCVec_CVec_u8ZZ clone bytes"), .datalen = orig->datalen }; - for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = CVec_u8Z_clone(&orig->data[i]); - } - return ret; -} -static inline struct LDKCVec_CVec_u8ZZ CResult_CVec_CVec_u8ZZNoneZ_get_ok(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner){ +static inline struct LDKWitness CResult_WitnessNoneZ_get_ok(LDKCResult_WitnessNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return CVec_CVec_u8ZZ_clone(&*owner->contents.result); + return Witness_clone(&*owner->contents.result); } -ptrArray CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_ok(int64_t owner) { - LDKCResult_CVec_CVec_u8ZZNoneZ* owner_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(owner); - LDKCVec_CVec_u8ZZ ret_var = CResult_CVec_CVec_u8ZZNoneZ_get_ok(owner_conv); - ptrArray ret_arr = NULL; - ret_arr = init_ptrArray(ret_var.datalen, __LINE__); - int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); - for (size_t i = 0; i < ret_var.datalen; i++) { - LDKCVec_u8Z ret_conv_8_var = ret_var.data[i]; - int8_tArray ret_conv_8_arr = init_int8_tArray(ret_conv_8_var.datalen, __LINE__); - memcpy(ret_conv_8_arr->elems, ret_conv_8_var.data, ret_conv_8_var.datalen); - CVec_u8Z_free(ret_conv_8_var); - ret_arr_ptr[i] = ret_conv_8_arr; - } - - FREE(ret_var.data); +int8_tArray CS_LDK_CResult_WitnessNoneZ_get_ok(int64_t owner) { + LDKCResult_WitnessNoneZ* owner_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(owner); + LDKWitness ret_var = CResult_WitnessNoneZ_get_ok(owner_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + Witness_free(ret_var); return ret_arr; } -static inline void CResult_CVec_CVec_u8ZZNoneZ_get_err(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner){ +static inline void CResult_WitnessNoneZ_get_err(LDKCResult_WitnessNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return *owner->contents.err; } -void CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_err(int64_t owner) { - LDKCResult_CVec_CVec_u8ZZNoneZ* owner_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(owner); - CResult_CVec_CVec_u8ZZNoneZ_get_err(owner_conv); +void CS_LDK_CResult_WitnessNoneZ_get_err(int64_t owner) { + LDKCResult_WitnessNoneZ* owner_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(owner); + CResult_WitnessNoneZ_get_err(owner_conv); } static inline struct LDKInMemorySigner CResult_InMemorySignerDecodeErrorZ_get_ok(LDKCResult_InMemorySignerDecodeErrorZ *NONNULL_PTR owner){ @@ -2510,6 +2506,62 @@ void CS_LDK_CResult_TransactionNoneZ_get_err(int64_t owner) { CResult_TransactionNoneZ_get_err(owner_conv); } +uint32_t CS_LDK_LDKCandidateRouteHop_ty_from_ptr(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + switch(obj->tag) { + case LDKCandidateRouteHop_FirstHop: return 0; + case LDKCandidateRouteHop_PublicHop: return 1; + case LDKCandidateRouteHop_PrivateHop: return 2; + case LDKCandidateRouteHop_Blinded: return 3; + case LDKCandidateRouteHop_OneHopBlinded: return 4; + default: abort(); + } +} +int64_t CS_LDK_LDKCandidateRouteHop_FirstHop_get_first_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_FirstHop); + LDKFirstHopCandidate first_hop_var = obj->first_hop; + int64_t first_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hop_var); + first_hop_ref = tag_ptr(first_hop_var.inner, false); + return first_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_PublicHop_get_public_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_PublicHop); + LDKPublicHopCandidate public_hop_var = obj->public_hop; + int64_t public_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(public_hop_var); + public_hop_ref = tag_ptr(public_hop_var.inner, false); + return public_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_PrivateHop_get_private_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_PrivateHop); + LDKPrivateHopCandidate private_hop_var = obj->private_hop; + int64_t private_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(private_hop_var); + private_hop_ref = tag_ptr(private_hop_var.inner, false); + return private_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_Blinded_get_blinded(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_Blinded); + LDKBlindedPathCandidate blinded_var = obj->blinded; + int64_t blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_var); + blinded_ref = tag_ptr(blinded_var.inner, false); + return blinded_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_OneHopBlinded_get_one_hop_blinded(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_OneHopBlinded); + LDKOneHopBlindedPathCandidate one_hop_blinded_var = obj->one_hop_blinded; + int64_t one_hop_blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(one_hop_blinded_var); + one_hop_blinded_ref = tag_ptr(one_hop_blinded_var.inner, false); + return one_hop_blinded_ref; +} typedef struct LDKScoreLookUp_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -2520,19 +2572,11 @@ static void LDKScoreLookUp_JCalls_free(void* this_arg) { FREE(j_calls); } } -uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, uint64_t short_channel_id, const LDKNodeId * source, const LDKNodeId * target, LDKChannelUsage usage, const LDKProbabilisticScoringFeeParameters * score_params) { +uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, const LDKCandidateRouteHop * candidate, LDKChannelUsage usage, const LDKProbabilisticScoringFeeParameters * score_params) { LDKScoreLookUp_JCalls *j_calls = (LDKScoreLookUp_JCalls*) this_arg; - int64_t short_channel_id_conv = short_channel_id; - LDKNodeId source_var = *source; - int64_t source_ref = 0; - source_var = NodeId_clone(&source_var); - CHECK_INNER_FIELD_ACCESS_OR_NULL(source_var); - source_ref = tag_ptr(source_var.inner, source_var.is_owned); - LDKNodeId target_var = *target; - int64_t target_ref = 0; - target_var = NodeId_clone(&target_var); - CHECK_INNER_FIELD_ACCESS_OR_NULL(target_var); - target_ref = tag_ptr(target_var.inner, target_var.is_owned); + LDKCandidateRouteHop *ret_candidate = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop ret conversion"); + *ret_candidate = CandidateRouteHop_clone(candidate); + int64_t ref_candidate = tag_ptr(ret_candidate, true); LDKChannelUsage usage_var = usage; int64_t usage_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(usage_var); @@ -2542,7 +2586,7 @@ uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, uint64_ score_params_var = ProbabilisticScoringFeeParameters_clone(&score_params_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_var); score_params_ref = tag_ptr(score_params_var.inner, score_params_var.is_owned); - return js_invoke_function_l_lllll(j_calls->instance_ptr, 16, short_channel_id_conv, source_ref, target_ref, usage_ref, score_params_ref); + return js_invoke_function_l_lll(j_calls->instance_ptr, 16, ref_candidate, usage_ref, score_params_ref); } static void LDKScoreLookUp_JCalls_cloned(LDKScoreLookUp* new_obj) { LDKScoreLookUp_JCalls *j_calls = (LDKScoreLookUp_JCalls*) new_obj->this_arg; @@ -2565,20 +2609,11 @@ uint64_t CS_LDK_LDKScoreLookUp_new(int32_t o) { *res_ptr = LDKScoreLookUp_init(o); return tag_ptr(res_ptr, true); } -int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t short_channel_id, int64_t source, int64_t target, int64_t usage, int64_t score_params) { +int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t candidate, int64_t usage, int64_t score_params) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreLookUp* this_arg_conv = (LDKScoreLookUp*)this_arg_ptr; - LDKNodeId source_conv; - source_conv.inner = untag_ptr(source); - source_conv.is_owned = ptr_is_owned(source); - CHECK_INNER_FIELD_ACCESS_OR_NULL(source_conv); - source_conv.is_owned = false; - LDKNodeId target_conv; - target_conv.inner = untag_ptr(target); - target_conv.is_owned = ptr_is_owned(target); - CHECK_INNER_FIELD_ACCESS_OR_NULL(target_conv); - target_conv.is_owned = false; + LDKCandidateRouteHop* candidate_conv = (LDKCandidateRouteHop*)untag_ptr(candidate); LDKChannelUsage usage_conv; usage_conv.inner = untag_ptr(usage); usage_conv.is_owned = ptr_is_owned(usage); @@ -2589,7 +2624,7 @@ int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t short score_params_conv.is_owned = ptr_is_owned(score_params); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_conv); score_params_conv.is_owned = false; - int64_t ret_conv = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, short_channel_id, &source_conv, &target_conv, usage_conv, &score_params_conv); + int64_t ret_conv = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, candidate_conv, usage_conv, &score_params_conv); return ret_conv; } @@ -2603,7 +2638,7 @@ static void LDKScoreUpdate_JCalls_free(void* this_arg) { FREE(j_calls); } } -void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id) { +void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; @@ -2611,18 +2646,20 @@ void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * pa CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); int64_t short_channel_id_conv = short_channel_id; - js_invoke_function_void_ll(j_calls->instance_ptr, 17, path_ref, short_channel_id_conv); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_lll(j_calls->instance_ptr, 17, path_ref, short_channel_id_conv, duration_since_epoch_conv); } -void payment_path_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path) { +void payment_path_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; path_var = Path_clone(&path_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 18, path_ref); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_ll(j_calls->instance_ptr, 18, path_ref, duration_since_epoch_conv); } -void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id) { +void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; @@ -2630,16 +2667,23 @@ void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uin CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); int64_t short_channel_id_conv = short_channel_id; - js_invoke_function_void_ll(j_calls->instance_ptr, 19, path_ref, short_channel_id_conv); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_lll(j_calls->instance_ptr, 19, path_ref, short_channel_id_conv, duration_since_epoch_conv); } -void probe_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path) { +void probe_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; path_var = Path_clone(&path_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 20, path_ref); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_ll(j_calls->instance_ptr, 20, path_ref, duration_since_epoch_conv); +} +void time_passed_LDKScoreUpdate_jcall(void* this_arg, uint64_t duration_since_epoch) { + LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_l(j_calls->instance_ptr, 21, duration_since_epoch_conv); } static void LDKScoreUpdate_JCalls_cloned(LDKScoreUpdate* new_obj) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) new_obj->this_arg; @@ -2656,6 +2700,7 @@ static inline LDKScoreUpdate LDKScoreUpdate_init (int64_t o) { .payment_path_successful = payment_path_successful_LDKScoreUpdate_jcall, .probe_failed = probe_failed_LDKScoreUpdate_jcall, .probe_successful = probe_successful_LDKScoreUpdate_jcall, + .time_passed = time_passed_LDKScoreUpdate_jcall, .free = LDKScoreUpdate_JCalls_free, }; return ret; @@ -2665,7 +2710,7 @@ uint64_t CS_LDK_LDKScoreUpdate_new(int32_t o) { *res_ptr = LDKScoreUpdate_init(o); return tag_ptr(res_ptr, true); } -void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int64_t short_channel_id) { +void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int64_t short_channel_id, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2674,10 +2719,10 @@ void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->payment_path_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id); + (this_arg_conv->payment_path_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id, duration_since_epoch); } -void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path) { +void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2686,10 +2731,10 @@ void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path) path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->payment_path_successful)(this_arg_conv->this_arg, &path_conv); + (this_arg_conv->payment_path_successful)(this_arg_conv->this_arg, &path_conv, duration_since_epoch); } -void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t short_channel_id) { +void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t short_channel_id, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2698,10 +2743,10 @@ void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t sh path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->probe_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id); + (this_arg_conv->probe_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id, duration_since_epoch); } -void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path) { +void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2710,7 +2755,14 @@ void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path) { path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->probe_successful)(this_arg_conv->this_arg, &path_conv); + (this_arg_conv->probe_successful)(this_arg_conv->this_arg, &path_conv, duration_since_epoch); +} + +void CS_LDK_ScoreUpdate_time_passed(int64_t this_arg, int64_t duration_since_epoch) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; + (this_arg_conv->time_passed)(this_arg_conv->this_arg, duration_since_epoch); } typedef struct LDKLockableScore_JCalls { @@ -2725,7 +2777,7 @@ static void LDKLockableScore_JCalls_free(void* this_arg) { } LDKScoreLookUp read_lock_LDKLockableScore_jcall(const void* this_arg) { LDKLockableScore_JCalls *j_calls = (LDKLockableScore_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 21); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 22); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKScoreLookUp ret_conv = *(LDKScoreLookUp*)(ret_ptr); @@ -2738,7 +2790,7 @@ LDKScoreLookUp read_lock_LDKLockableScore_jcall(const void* this_arg) { } LDKScoreUpdate write_lock_LDKLockableScore_jcall(const void* this_arg) { LDKLockableScore_JCalls *j_calls = (LDKLockableScore_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 22); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 23); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKScoreUpdate ret_conv = *(LDKScoreUpdate*)(ret_ptr); @@ -2802,7 +2854,7 @@ static void LDKWriteableScore_JCalls_free(void* this_arg) { } LDKCVec_u8Z write_LDKWriteableScore_jcall(const void* this_arg) { LDKWriteableScore_JCalls *j_calls = (LDKWriteableScore_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 23); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 24); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -2918,6 +2970,124 @@ int64_t CS_LDK_CResult_RouteLightningErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ + LDKBlindedPayInfo ret = owner->a; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a(int64_t owner) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); + LDKBlindedPayInfo ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_a(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ + LDKBlindedPath ret = owner->b; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b(int64_t owner) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); + LDKBlindedPath ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_b(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(const LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ *orig) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ) * orig->datalen, "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_BlindedPayInfoBlindedPathZ_clone(&orig->data[i]); + } + return ret; +} +static inline struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(&*owner->contents.result); +} +int64_tArray CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(int64_t owner) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* owner_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(owner); + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret_var = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t l = 0; l < ret_var.datalen; l++) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv_37_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv_37_conv = ret_var.data[l]; + ret_arr_ptr[l] = tag_ptr(ret_conv_37_conv, true); + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(int64_t owner) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* owner_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(owner); + CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(owner_conv); +} + +static inline struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ + LDKOnionMessagePath ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_get_ok(int64_t owner) { + LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); + LDKOnionMessagePath ret_var = CResult_OnionMessagePathNoneZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_OnionMessagePathNoneZ_get_err(int64_t owner) { + LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); + CResult_OnionMessagePathNoneZ_get_err(owner_conv); +} + +static inline struct LDKCVec_BlindedPathZ CResult_CVec_BlindedPathZNoneZ_get_ok(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return CVec_BlindedPathZ_clone(&*owner->contents.result); +} +int64_tArray CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_ok(int64_t owner) { + LDKCResult_CVec_BlindedPathZNoneZ* owner_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(owner); + LDKCVec_BlindedPathZ ret_var = CResult_CVec_BlindedPathZNoneZ_get_ok(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t n = 0; n < ret_var.datalen; n++) { + LDKBlindedPath ret_conv_13_var = ret_var.data[n]; + int64_t ret_conv_13_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_conv_13_var); + ret_conv_13_ref = tag_ptr(ret_conv_13_var.inner, ret_conv_13_var.is_owned); + ret_arr_ptr[n] = ret_conv_13_ref; + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline void CResult_CVec_BlindedPathZNoneZ_get_err(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_err(int64_t owner) { + LDKCResult_CVec_BlindedPathZNoneZ* owner_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(owner); + CResult_CVec_BlindedPathZNoneZ_get_err(owner_conv); +} + static inline struct LDKInFlightHtlcs CResult_InFlightHtlcsDecodeErrorZ_get_ok(LDKCResult_InFlightHtlcsDecodeErrorZ *NONNULL_PTR owner){ LDKInFlightHtlcs ret = *owner->contents.result; ret.is_owned = false; @@ -3100,41 +3270,6 @@ int64_t CS_LDK_CResult_PaymentParametersDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -static inline struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ - LDKBlindedPayInfo ret = owner->a; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a(int64_t owner) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); - LDKBlindedPayInfo ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_a(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ - LDKBlindedPath ret = owner->b; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b(int64_t owner) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); - LDKBlindedPath ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_b(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(const LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ *orig) { - LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ) * orig->datalen, "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ clone bytes"), .datalen = orig->datalen }; - for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = C2Tuple_BlindedPayInfoBlindedPathZ_clone(&orig->data[i]); - } - return ret; -} static inline LDKCVec_RouteHintZ CVec_RouteHintZ_clone(const LDKCVec_RouteHintZ *orig) { LDKCVec_RouteHintZ ret = { .data = MALLOC(sizeof(LDKRouteHint) * orig->datalen, "LDKCVec_RouteHintZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { @@ -3347,14 +3482,13 @@ static void LDKLogger_JCalls_free(void* this_arg) { FREE(j_calls); } } -void log_LDKLogger_jcall(const void* this_arg, const LDKRecord * record) { +void log_LDKLogger_jcall(const void* this_arg, LDKRecord record) { LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) this_arg; - LDKRecord record_var = *record; + LDKRecord record_var = record; int64_t record_ref = 0; - record_var = Record_clone(&record_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(record_var); record_ref = tag_ptr(record_var.inner, record_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 24, record_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 25, record_ref); } static void LDKLogger_JCalls_cloned(LDKLogger* new_obj) { LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) new_obj->this_arg; @@ -3430,31 +3564,40 @@ static inline LDKCVec_C2Tuple_usizeTransactionZZ CVec_C2Tuple_usizeTransactionZZ } return ret; } -static inline struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ +static inline struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ return ThirtyTwoBytes_clone(&owner->a); } -int8_tArray CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(int64_t owner) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* owner_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(owner_conv).data, 32); + memcpy(ret_arr->elems, C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(owner_conv).data, 32); return ret_arr; } -static inline struct LDKCOption_ThirtyTwoBytesZ C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ - return COption_ThirtyTwoBytesZ_clone(&owner->b); +static inline uint32_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ + return owner->b; } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(int64_t owner) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* owner_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(owner); +int32_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); + int32_t ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(owner_conv); + return ret_conv; +} + +static inline struct LDKCOption_ThirtyTwoBytesZ C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ + return COption_ThirtyTwoBytesZ_clone(&owner->c); +} +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); - *ret_copy = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(owner_conv); + *ret_copy = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } -static inline LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_clone(const LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ *orig) { - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ) * orig->datalen, "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ clone bytes"), .datalen = orig->datalen }; +static inline LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_clone(const LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ *orig) { + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret = { .data = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ) * orig->datalen, "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(&orig->data[i]); + ret.data[i] = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(&orig->data[i]); } return ret; } @@ -3976,7 +4119,7 @@ LDKUtxoResult get_utxo_LDKUtxoLookup_jcall(const void* this_arg, const uint8_t ( int8_tArray chain_hash_arr = init_int8_tArray(32, __LINE__); memcpy(chain_hash_arr->elems, *chain_hash, 32); int64_t short_channel_id_conv = short_channel_id; - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 25, (int64_t)chain_hash_arr, short_channel_id_conv); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 26, (int64_t)chain_hash_arr, short_channel_id_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKUtxoResult ret_conv = *(LDKUtxoResult*)(ret_ptr); @@ -4213,32 +4356,36 @@ uint32_t CS_LDK_LDKMessageSendEvent_ty_from_ptr(int64_t ptr) { case LDKMessageSendEvent_SendOpenChannelV2: return 3; case LDKMessageSendEvent_SendFundingCreated: return 4; case LDKMessageSendEvent_SendFundingSigned: return 5; - case LDKMessageSendEvent_SendTxAddInput: return 6; - case LDKMessageSendEvent_SendTxAddOutput: return 7; - case LDKMessageSendEvent_SendTxRemoveInput: return 8; - case LDKMessageSendEvent_SendTxRemoveOutput: return 9; - case LDKMessageSendEvent_SendTxComplete: return 10; - case LDKMessageSendEvent_SendTxSignatures: return 11; - case LDKMessageSendEvent_SendTxInitRbf: return 12; - case LDKMessageSendEvent_SendTxAckRbf: return 13; - case LDKMessageSendEvent_SendTxAbort: return 14; - case LDKMessageSendEvent_SendChannelReady: return 15; - case LDKMessageSendEvent_SendAnnouncementSignatures: return 16; - case LDKMessageSendEvent_UpdateHTLCs: return 17; - case LDKMessageSendEvent_SendRevokeAndACK: return 18; - case LDKMessageSendEvent_SendClosingSigned: return 19; - case LDKMessageSendEvent_SendShutdown: return 20; - case LDKMessageSendEvent_SendChannelReestablish: return 21; - case LDKMessageSendEvent_SendChannelAnnouncement: return 22; - case LDKMessageSendEvent_BroadcastChannelAnnouncement: return 23; - case LDKMessageSendEvent_BroadcastChannelUpdate: return 24; - case LDKMessageSendEvent_BroadcastNodeAnnouncement: return 25; - case LDKMessageSendEvent_SendChannelUpdate: return 26; - case LDKMessageSendEvent_HandleError: return 27; - case LDKMessageSendEvent_SendChannelRangeQuery: return 28; - case LDKMessageSendEvent_SendShortIdsQuery: return 29; - case LDKMessageSendEvent_SendReplyChannelRange: return 30; - case LDKMessageSendEvent_SendGossipTimestampFilter: return 31; + case LDKMessageSendEvent_SendStfu: return 6; + case LDKMessageSendEvent_SendSplice: return 7; + case LDKMessageSendEvent_SendSpliceAck: return 8; + case LDKMessageSendEvent_SendSpliceLocked: return 9; + case LDKMessageSendEvent_SendTxAddInput: return 10; + case LDKMessageSendEvent_SendTxAddOutput: return 11; + case LDKMessageSendEvent_SendTxRemoveInput: return 12; + case LDKMessageSendEvent_SendTxRemoveOutput: return 13; + case LDKMessageSendEvent_SendTxComplete: return 14; + case LDKMessageSendEvent_SendTxSignatures: return 15; + case LDKMessageSendEvent_SendTxInitRbf: return 16; + case LDKMessageSendEvent_SendTxAckRbf: return 17; + case LDKMessageSendEvent_SendTxAbort: return 18; + case LDKMessageSendEvent_SendChannelReady: return 19; + case LDKMessageSendEvent_SendAnnouncementSignatures: return 20; + case LDKMessageSendEvent_UpdateHTLCs: return 21; + case LDKMessageSendEvent_SendRevokeAndACK: return 22; + case LDKMessageSendEvent_SendClosingSigned: return 23; + case LDKMessageSendEvent_SendShutdown: return 24; + case LDKMessageSendEvent_SendChannelReestablish: return 25; + case LDKMessageSendEvent_SendChannelAnnouncement: return 26; + case LDKMessageSendEvent_BroadcastChannelAnnouncement: return 27; + case LDKMessageSendEvent_BroadcastChannelUpdate: return 28; + case LDKMessageSendEvent_BroadcastNodeAnnouncement: return 29; + case LDKMessageSendEvent_SendChannelUpdate: return 30; + case LDKMessageSendEvent_HandleError: return 31; + case LDKMessageSendEvent_SendChannelRangeQuery: return 32; + case LDKMessageSendEvent_SendShortIdsQuery: return 33; + case LDKMessageSendEvent_SendReplyChannelRange: return 34; + case LDKMessageSendEvent_SendGossipTimestampFilter: return 35; default: abort(); } } @@ -4338,6 +4485,70 @@ int64_t CS_LDK_LDKMessageSendEvent_SendFundingSigned_get_msg(int64_t ptr) { msg_ref = tag_ptr(msg_var.inner, false); return msg_ref; } +int8_tArray CS_LDK_LDKMessageSendEvent_SendStfu_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendStfu); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_stfu.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendStfu_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendStfu); + LDKStfu msg_var = obj->send_stfu.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSplice_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSplice); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSplice_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSplice); + LDKSplice msg_var = obj->send_splice.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceAck); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice_ack.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceAck); + LDKSpliceAck msg_var = obj->send_splice_ack.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceLocked); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice_locked.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceLocked); + LDKSpliceLocked msg_var = obj->send_splice_locked.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} int8_tArray CS_LDK_LDKMessageSendEvent_SendTxAddInput_get_node_id(int64_t ptr) { LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKMessageSendEvent_SendTxAddInput); @@ -5050,6 +5261,34 @@ int64_tArray CS_LDK_LDKCOption_CVec_SocketAddressZZ_Some_get_some(int64_t ptr) { return some_arr; } +static inline struct LDKPendingHTLCInfo CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner){ + LDKPendingHTLCInfo ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* owner_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(owner); + LDKPendingHTLCInfo ret_var = CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKInboundHTLCErr CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner){ + LDKInboundHTLCErr ret = *owner->contents.err; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* owner_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(owner); + LDKInboundHTLCErr ret_var = CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline LDKCVec_HTLCOutputInCommitmentZ CVec_HTLCOutputInCommitmentZ_clone(const LDKCVec_HTLCOutputInCommitmentZ *orig) { LDKCVec_HTLCOutputInCommitmentZ ret = { .data = MALLOC(sizeof(LDKHTLCOutputInCommitment) * orig->datalen, "LDKCVec_HTLCOutputInCommitmentZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { @@ -5849,6 +6088,231 @@ int64_t CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKBlindedForward CResult_BlindedForwardDecodeErrorZ_get_ok(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner){ + LDKBlindedForward ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_BlindedForwardDecodeErrorZ* owner_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(owner); + LDKBlindedForward ret_var = CResult_BlindedForwardDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_BlindedForwardDecodeErrorZ_get_err(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_BlindedForwardDecodeErrorZ* owner_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_BlindedForwardDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +uint32_t CS_LDK_LDKPendingHTLCRouting_ty_from_ptr(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + switch(obj->tag) { + case LDKPendingHTLCRouting_Forward: return 0; + case LDKPendingHTLCRouting_Receive: return 1; + case LDKPendingHTLCRouting_ReceiveKeysend: return 2; + default: abort(); + } +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_onion_packet(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + LDKOnionPacket onion_packet_var = obj->forward.onion_packet; + int64_t onion_packet_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_packet_var); + onion_packet_ref = tag_ptr(onion_packet_var.inner, false); + return onion_packet_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_short_channel_id(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + int64_t short_channel_id_conv = obj->forward.short_channel_id; + return short_channel_id_conv; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_blinded(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + LDKBlindedForward blinded_var = obj->forward.blinded; + int64_t blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_var); + blinded_ref = tag_ptr(blinded_var.inner, false); + return blinded_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_data(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + LDKFinalOnionHopData payment_data_var = obj->receive.payment_data; + int64_t payment_data_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_var); + payment_data_ref = tag_ptr(payment_data_var.inner, false); + return payment_data_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_metadata(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int64_t payment_metadata_ref = tag_ptr(&obj->receive.payment_metadata, false); + return payment_metadata_ref; +} +int32_t CS_LDK_LDKPendingHTLCRouting_Receive_get_incoming_cltv_expiry(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int32_t incoming_cltv_expiry_conv = obj->receive.incoming_cltv_expiry; + return incoming_cltv_expiry_conv; +} +int8_tArray CS_LDK_LDKPendingHTLCRouting_Receive_get_phantom_shared_secret(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int8_tArray phantom_shared_secret_arr = init_int8_tArray(32, __LINE__); + memcpy(phantom_shared_secret_arr->elems, obj->receive.phantom_shared_secret.data, 32); + return phantom_shared_secret_arr; +} +int64_tArray CS_LDK_LDKPendingHTLCRouting_Receive_get_custom_tlvs(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_var = obj->receive.custom_tlvs; + int64_tArray custom_tlvs_arr = NULL; + custom_tlvs_arr = init_int64_tArray(custom_tlvs_var.datalen, __LINE__); + int64_t *custom_tlvs_arr_ptr = (int64_t*)(((uint8_t*)custom_tlvs_arr) + 8); + for (size_t x = 0; x < custom_tlvs_var.datalen; x++) { + LDKC2Tuple_u64CVec_u8ZZ* custom_tlvs_conv_23_conv = MALLOC(sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKC2Tuple_u64CVec_u8ZZ"); + *custom_tlvs_conv_23_conv = custom_tlvs_var.data[x]; + *custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone(custom_tlvs_conv_23_conv); + custom_tlvs_arr_ptr[x] = tag_ptr(custom_tlvs_conv_23_conv, true); + } + + return custom_tlvs_arr; +} +jboolean CS_LDK_LDKPendingHTLCRouting_Receive_get_requires_blinded_error(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + jboolean requires_blinded_error_conv = obj->receive.requires_blinded_error; + return requires_blinded_error_conv; +} +int64_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_data(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + LDKFinalOnionHopData payment_data_var = obj->receive_keysend.payment_data; + int64_t payment_data_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_var); + payment_data_ref = tag_ptr(payment_data_var.inner, false); + return payment_data_ref; +} +int8_tArray CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_preimage(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int8_tArray payment_preimage_arr = init_int8_tArray(32, __LINE__); + memcpy(payment_preimage_arr->elems, obj->receive_keysend.payment_preimage.data, 32); + return payment_preimage_arr; +} +int64_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_metadata(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int64_t payment_metadata_ref = tag_ptr(&obj->receive_keysend.payment_metadata, false); + return payment_metadata_ref; +} +int32_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_incoming_cltv_expiry(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int32_t incoming_cltv_expiry_conv = obj->receive_keysend.incoming_cltv_expiry; + return incoming_cltv_expiry_conv; +} +int64_tArray CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_custom_tlvs(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_var = obj->receive_keysend.custom_tlvs; + int64_tArray custom_tlvs_arr = NULL; + custom_tlvs_arr = init_int64_tArray(custom_tlvs_var.datalen, __LINE__); + int64_t *custom_tlvs_arr_ptr = (int64_t*)(((uint8_t*)custom_tlvs_arr) + 8); + for (size_t x = 0; x < custom_tlvs_var.datalen; x++) { + LDKC2Tuple_u64CVec_u8ZZ* custom_tlvs_conv_23_conv = MALLOC(sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKC2Tuple_u64CVec_u8ZZ"); + *custom_tlvs_conv_23_conv = custom_tlvs_var.data[x]; + *custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone(custom_tlvs_conv_23_conv); + custom_tlvs_arr_ptr[x] = tag_ptr(custom_tlvs_conv_23_conv, true); + } + + return custom_tlvs_arr; +} +static inline struct LDKPendingHTLCRouting CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return PendingHTLCRouting_clone(&*owner->contents.result); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(owner); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_PendingHTLCRoutingDecodeErrorZ_get_err(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_PendingHTLCRoutingDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKPendingHTLCInfo CResult_PendingHTLCInfoDecodeErrorZ_get_ok(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner){ + LDKPendingHTLCInfo ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(owner); + LDKPendingHTLCInfo ret_var = CResult_PendingHTLCInfoDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_PendingHTLCInfoDecodeErrorZ_get_err(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_PendingHTLCInfoDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline enum LDKBlindedFailure CResult_BlindedFailureDecodeErrorZ_get_ok(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return BlindedFailure_clone(&*owner->contents.result); +} +int32_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_BlindedFailureDecodeErrorZ* owner_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(owner); + int32_t ret_conv = LDKBlindedFailure_to_cs(CResult_BlindedFailureDecodeErrorZ_get_ok(owner_conv)); + return ret_conv; +} + +static inline struct LDKDecodeError CResult_BlindedFailureDecodeErrorZ_get_err(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_BlindedFailureDecodeErrorZ* owner_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_BlindedFailureDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline enum LDKChannelShutdownState CResult_ChannelShutdownStateDecodeErrorZ_get_ok(LDKCResult_ChannelShutdownStateDecodeErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); return ChannelShutdownState_clone(&*owner->contents.result); @@ -5898,7 +6362,7 @@ LDKCResult_ChannelMonitorUpdateStatusNoneZ watch_channel_LDKWatch_jcall(const vo int64_t monitor_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(monitor_var); monitor_ref = tag_ptr(monitor_var.inner, monitor_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 26, funding_txo_ref, monitor_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 27, funding_txo_ref, monitor_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ChannelMonitorUpdateStatusNoneZ ret_conv = *(LDKCResult_ChannelMonitorUpdateStatusNoneZ*)(ret_ptr); @@ -5916,13 +6380,13 @@ LDKChannelMonitorUpdateStatus update_channel_LDKWatch_jcall(const void* this_arg update_var = ChannelMonitorUpdate_clone(&update_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(update_var); update_ref = tag_ptr(update_var.inner, update_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_ll(j_calls->instance_ptr, 27, funding_txo_ref, update_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_ll(j_calls->instance_ptr, 28, funding_txo_ref, update_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ release_pending_monitor_events_LDKWatch_jcall(const void* this_arg) { LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 28); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 29); LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -6044,7 +6508,7 @@ void broadcast_transactions_LDKBroadcasterInterface_jcall(const void* this_arg, } FREE(txs_var.data); - js_invoke_function_void_l(j_calls->instance_ptr, 29, (int64_t)txs_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 30, (int64_t)txs_arr); } static void LDKBroadcasterInterface_JCalls_cloned(LDKBroadcasterInterface* new_obj) { LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) new_obj->this_arg; @@ -6103,7 +6567,7 @@ static void LDKEntropySource_JCalls_free(void* this_arg) { } LDKThirtyTwoBytes get_secure_random_bytes_LDKEntropySource_jcall(const void* this_arg) { LDKEntropySource_JCalls *j_calls = (LDKEntropySource_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 30); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 31); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6187,7 +6651,7 @@ static void LDKNodeSigner_JCalls_free(void* this_arg) { } LDKThirtyTwoBytes get_inbound_payment_key_material_LDKNodeSigner_jcall(const void* this_arg) { LDKNodeSigner_JCalls *j_calls = (LDKNodeSigner_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 31); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 32); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6196,7 +6660,7 @@ LDKThirtyTwoBytes get_inbound_payment_key_material_LDKNodeSigner_jcall(const voi LDKCResult_PublicKeyNoneZ get_node_id_LDKNodeSigner_jcall(const void* this_arg, LDKRecipient recipient) { LDKNodeSigner_JCalls *j_calls = (LDKNodeSigner_JCalls*) this_arg; int32_t recipient_conv = LDKRecipient_to_cs(recipient); - uint64_t ret = js_invoke_function_l_Recipient(j_calls->instance_ptr, 32, recipient_conv); + uint64_t ret = js_invoke_function_l_Recipient(j_calls->instance_ptr, 33, recipient_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_PublicKeyNoneZ ret_conv = *(LDKCResult_PublicKeyNoneZ*)(ret_ptr); @@ -6211,7 +6675,7 @@ LDKCResult_ThirtyTwoBytesNoneZ ecdh_LDKNodeSigner_jcall(const void* this_arg, LD LDKCOption_BigEndianScalarZ *tweak_copy = MALLOC(sizeof(LDKCOption_BigEndianScalarZ), "LDKCOption_BigEndianScalarZ"); *tweak_copy = tweak; int64_t tweak_ref = tag_ptr(tweak_copy, true); - uint64_t ret = js_invoke_function_l_Recipientll(j_calls->instance_ptr, 33, recipient_conv, (int64_t)other_key_arr, tweak_ref); + uint64_t ret = js_invoke_function_l_Recipientll(j_calls->instance_ptr, 34, recipient_conv, (int64_t)other_key_arr, tweak_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ThirtyTwoBytesNoneZ ret_conv = *(LDKCResult_ThirtyTwoBytesNoneZ*)(ret_ptr); @@ -6234,7 +6698,7 @@ LDKCResult_RecoverableSignatureNoneZ sign_invoice_LDKNodeSigner_jcall(const void FREE(invoice_data_var.data); int32_t recipient_conv = LDKRecipient_to_cs(recipient); - uint64_t ret = js_invoke_function_l_llRecipient(j_calls->instance_ptr, 34, (int64_t)hrp_bytes_arr, (int64_t)invoice_data_arr, recipient_conv); + uint64_t ret = js_invoke_function_l_llRecipient(j_calls->instance_ptr, 35, (int64_t)hrp_bytes_arr, (int64_t)invoice_data_arr, recipient_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RecoverableSignatureNoneZ ret_conv = *(LDKCResult_RecoverableSignatureNoneZ*)(ret_ptr); @@ -6248,7 +6712,7 @@ LDKCResult_SchnorrSignatureNoneZ sign_bolt12_invoice_request_LDKNodeSigner_jcall // WARNING: we may need a move here but no clone is available for LDKUnsignedInvoiceRequest CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_request_var); invoice_request_ref = tag_ptr(invoice_request_var.inner, invoice_request_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 35, invoice_request_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 36, invoice_request_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_SchnorrSignatureNoneZ ret_conv = *(LDKCResult_SchnorrSignatureNoneZ*)(ret_ptr); @@ -6262,7 +6726,7 @@ LDKCResult_SchnorrSignatureNoneZ sign_bolt12_invoice_LDKNodeSigner_jcall(const v // WARNING: we may need a move here but no clone is available for LDKUnsignedBolt12Invoice CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_var); invoice_ref = tag_ptr(invoice_var.inner, invoice_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 36, invoice_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 37, invoice_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_SchnorrSignatureNoneZ ret_conv = *(LDKCResult_SchnorrSignatureNoneZ*)(ret_ptr); @@ -6274,7 +6738,7 @@ LDKCResult_ECDSASignatureNoneZ sign_gossip_message_LDKNodeSigner_jcall(const voi LDKUnsignedGossipMessage *msg_copy = MALLOC(sizeof(LDKUnsignedGossipMessage), "LDKUnsignedGossipMessage"); *msg_copy = msg; int64_t msg_ref = tag_ptr(msg_copy, true); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 37, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 38, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ECDSASignatureNoneZ ret_conv = *(LDKCResult_ECDSASignatureNoneZ*)(ret_ptr); @@ -6428,7 +6892,7 @@ LDKThirtyTwoBytes generate_channel_keys_id_LDKSignerProvider_jcall(const void* t int64_t channel_value_satoshis_conv = channel_value_satoshis; int8_tArray user_channel_id_arr = init_int8_tArray(16, __LINE__); memcpy(user_channel_id_arr->elems, user_channel_id.le_bytes, 16); - int8_tArray ret = (int8_tArray)js_invoke_function_l_bll(j_calls->instance_ptr, 38, inbound_conv, channel_value_satoshis_conv, (int64_t)user_channel_id_arr); + int8_tArray ret = (int8_tArray)js_invoke_function_l_bll(j_calls->instance_ptr, 39, inbound_conv, channel_value_satoshis_conv, (int64_t)user_channel_id_arr); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6439,7 +6903,7 @@ LDKWriteableEcdsaChannelSigner derive_channel_signer_LDKSignerProvider_jcall(con int64_t channel_value_satoshis_conv = channel_value_satoshis; int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); memcpy(channel_keys_id_arr->elems, channel_keys_id.data, 32); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 39, channel_value_satoshis_conv, (int64_t)channel_keys_id_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 40, channel_value_satoshis_conv, (int64_t)channel_keys_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKWriteableEcdsaChannelSigner ret_conv = *(LDKWriteableEcdsaChannelSigner*)(ret_ptr); @@ -6451,16 +6915,18 @@ LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ read_chan_signer_LDKSignerPro LDKu8slice reader_var = reader; int8_tArray reader_arr = init_int8_tArray(reader_var.datalen, __LINE__); memcpy(reader_arr->elems, reader_var.data, reader_var.datalen); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 40, (int64_t)reader_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 41, (int64_t)reader_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ ret_conv = *(LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const void* this_arg) { +LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const void* this_arg, LDKThirtyTwoBytes channel_keys_id) { LDKSignerProvider_JCalls *j_calls = (LDKSignerProvider_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 41); + int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); + memcpy(channel_keys_id_arr->elems, channel_keys_id.data, 32); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 42, (int64_t)channel_keys_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZNoneZ ret_conv = *(LDKCResult_CVec_u8ZNoneZ*)(ret_ptr); @@ -6469,7 +6935,7 @@ LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const vo } LDKCResult_ShutdownScriptNoneZ get_shutdown_scriptpubkey_LDKSignerProvider_jcall(const void* this_arg) { LDKSignerProvider_JCalls *j_calls = (LDKSignerProvider_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 42); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 43); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ShutdownScriptNoneZ ret_conv = *(LDKCResult_ShutdownScriptNoneZ*)(ret_ptr); @@ -6538,12 +7004,15 @@ int64_t CS_LDK_SignerProvider_read_chan_signer(int64_t this_arg, int8_tArray re return tag_ptr(ret_conv, true); } -int64_t CS_LDK_SignerProvider_get_destination_script(int64_t this_arg) { +int64_t CS_LDK_SignerProvider_get_destination_script(int64_t this_arg, int8_tArray channel_keys_id) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKSignerProvider* this_arg_conv = (LDKSignerProvider*)this_arg_ptr; + LDKThirtyTwoBytes channel_keys_id_ref; + CHECK(channel_keys_id->arr_len == 32); + memcpy(channel_keys_id_ref.data, channel_keys_id->elems, 32); FREE(channel_keys_id); LDKCResult_CVec_u8ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZNoneZ), "LDKCResult_CVec_u8ZNoneZ"); - *ret_conv = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg); + *ret_conv = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg, channel_keys_id_ref); return tag_ptr(ret_conv, true); } @@ -6569,7 +7038,7 @@ static void LDKFeeEstimator_JCalls_free(void* this_arg) { 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; int32_t confirmation_target_conv = LDKConfirmationTarget_to_cs(confirmation_target); - return js_invoke_function_i_ConfirmationTarget(j_calls->instance_ptr, 43, confirmation_target_conv); + return js_invoke_function_i_ConfirmationTarget(j_calls->instance_ptr, 44, confirmation_target_conv); } static void LDKFeeEstimator_JCalls_cloned(LDKFeeEstimator* new_obj) { LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) new_obj->this_arg; @@ -6601,9 +7070,147 @@ int32_t CS_LDK_FeeEstimator_get_est_sat_per_1000_weight(int64_t this_arg, int32 return ret_conv; } +typedef struct LDKMessageRouter_JCalls { + atomic_size_t refcnt; + uint32_t instance_ptr; +} LDKMessageRouter_JCalls; +static void LDKMessageRouter_JCalls_free(void* this_arg) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + if (atomic_fetch_sub_explicit(&j_calls->refcnt, 1, memory_order_acquire) == 1) { + FREE(j_calls); + } +} +LDKCResult_OnionMessagePathNoneZ find_path_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey sender, LDKCVec_PublicKeyZ peers, LDKDestination destination) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + int8_tArray sender_arr = init_int8_tArray(33, __LINE__); + memcpy(sender_arr->elems, sender.compressed_form, 33); + LDKCVec_PublicKeyZ peers_var = peers; + ptrArray peers_arr = NULL; + peers_arr = init_ptrArray(peers_var.datalen, __LINE__); + int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); + for (size_t i = 0; i < peers_var.datalen; i++) { + int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); + memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); + peers_arr_ptr[i] = peers_conv_8_arr; + } + + FREE(peers_var.data); + LDKDestination *destination_copy = MALLOC(sizeof(LDKDestination), "LDKDestination"); + *destination_copy = destination; + int64_t destination_ref = tag_ptr(destination_copy, true); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 45, (int64_t)sender_arr, (int64_t)peers_arr, destination_ref); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_OnionMessagePathNoneZ ret_conv = *(LDKCResult_OnionMessagePathNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +LDKCResult_CVec_BlindedPathZNoneZ create_blinded_paths_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey recipient, LDKCVec_PublicKeyZ peers) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + int8_tArray recipient_arr = init_int8_tArray(33, __LINE__); + memcpy(recipient_arr->elems, recipient.compressed_form, 33); + LDKCVec_PublicKeyZ peers_var = peers; + ptrArray peers_arr = NULL; + peers_arr = init_ptrArray(peers_var.datalen, __LINE__); + int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); + for (size_t i = 0; i < peers_var.datalen; i++) { + int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); + memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); + peers_arr_ptr[i] = peers_conv_8_arr; + } + + FREE(peers_var.data); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 46, (int64_t)recipient_arr, (int64_t)peers_arr); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_CVec_BlindedPathZNoneZ ret_conv = *(LDKCResult_CVec_BlindedPathZNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +static void LDKMessageRouter_JCalls_cloned(LDKMessageRouter* new_obj) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) new_obj->this_arg; + atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); +} +static inline LDKMessageRouter LDKMessageRouter_init (int64_t o) { + LDKMessageRouter_JCalls *calls = MALLOC(sizeof(LDKMessageRouter_JCalls), "LDKMessageRouter_JCalls"); + atomic_init(&calls->refcnt, 1); + calls->instance_ptr = o; + + LDKMessageRouter ret = { + .this_arg = (void*) calls, + .find_path = find_path_LDKMessageRouter_jcall, + .create_blinded_paths = create_blinded_paths_LDKMessageRouter_jcall, + .free = LDKMessageRouter_JCalls_free, + }; + return ret; +} +uint64_t CS_LDK_LDKMessageRouter_new(int32_t o) { + LDKMessageRouter *res_ptr = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); + *res_ptr = LDKMessageRouter_init(o); + return tag_ptr(res_ptr, true); +} +int64_t CS_LDK_MessageRouter_find_path(int64_t this_arg, int8_tArray sender, ptrArray peers, int64_t destination) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; + LDKPublicKey sender_ref; + CHECK(sender->arr_len == 33); + memcpy(sender_ref.compressed_form, sender->elems, 33); FREE(sender); + LDKCVec_PublicKeyZ peers_constr; + peers_constr.datalen = peers->arr_len; + if (peers_constr.datalen > 0) + peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + peers_constr.data = NULL; + int8_tArray* peers_vals = (void*) peers->elems; + for (size_t i = 0; i < peers_constr.datalen; i++) { + int8_tArray peers_conv_8 = peers_vals[i]; + LDKPublicKey peers_conv_8_ref; + CHECK(peers_conv_8->arr_len == 33); + memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); + peers_constr.data[i] = peers_conv_8_ref; + } + FREE(peers); + void* destination_ptr = untag_ptr(destination); + CHECK_ACCESS(destination_ptr); + LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); + destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = (this_arg_conv->find_path)(this_arg_conv->this_arg, sender_ref, peers_constr, destination_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_MessageRouter_create_blinded_paths(int64_t this_arg, int8_tArray recipient, ptrArray peers) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; + LDKPublicKey recipient_ref; + CHECK(recipient->arr_len == 33); + memcpy(recipient_ref.compressed_form, recipient->elems, 33); FREE(recipient); + LDKCVec_PublicKeyZ peers_constr; + peers_constr.datalen = peers->arr_len; + if (peers_constr.datalen > 0) + peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + peers_constr.data = NULL; + int8_tArray* peers_vals = (void*) peers->elems; + for (size_t i = 0; i < peers_constr.datalen; i++) { + int8_tArray peers_conv_8 = peers_vals[i]; + LDKPublicKey peers_conv_8_ref; + CHECK(peers_conv_8->arr_len == 33); + memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); + peers_constr.data[i] = peers_conv_8_ref; + } + FREE(peers); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = (this_arg_conv->create_blinded_paths)(this_arg_conv->this_arg, recipient_ref, peers_constr); + return tag_ptr(ret_conv, true); +} + typedef struct LDKRouter_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; + LDKMessageRouter_JCalls* MessageRouter; } LDKRouter_JCalls; static void LDKRouter_JCalls_free(void* this_arg) { LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) this_arg; @@ -6639,7 +7246,7 @@ LDKCResult_RouteLightningErrorZ find_route_LDKRouter_jcall(const void* this_arg, int64_t inflight_htlcs_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(inflight_htlcs_var); inflight_htlcs_ref = tag_ptr(inflight_htlcs_var.inner, inflight_htlcs_var.is_owned); - uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 44, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref); + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 47, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RouteLightningErrorZ ret_conv = *(LDKCResult_RouteLightningErrorZ*)(ret_ptr); @@ -6678,18 +7285,48 @@ LDKCResult_RouteLightningErrorZ find_route_with_id_LDKRouter_jcall(const void* t memcpy(_payment_hash_arr->elems, _payment_hash.data, 32); int8_tArray _payment_id_arr = init_int8_tArray(32, __LINE__); memcpy(_payment_id_arr->elems, _payment_id.data, 32); - uint64_t ret = js_invoke_function_l_llllll(j_calls->instance_ptr, 45, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref, (int64_t)_payment_hash_arr, (int64_t)_payment_id_arr); + uint64_t ret = js_invoke_function_l_llllll(j_calls->instance_ptr, 48, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref, (int64_t)_payment_hash_arr, (int64_t)_payment_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RouteLightningErrorZ ret_conv = *(LDKCResult_RouteLightningErrorZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } +LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ create_blinded_payment_paths_LDKRouter_jcall(const void* this_arg, LDKPublicKey recipient, LDKCVec_ChannelDetailsZ first_hops, LDKReceiveTlvs tlvs, uint64_t amount_msats) { + LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) this_arg; + int8_tArray recipient_arr = init_int8_tArray(33, __LINE__); + memcpy(recipient_arr->elems, recipient.compressed_form, 33); + LDKCVec_ChannelDetailsZ first_hops_var = first_hops; + int64_tArray first_hops_arr = NULL; + first_hops_arr = init_int64_tArray(first_hops_var.datalen, __LINE__); + int64_t *first_hops_arr_ptr = (int64_t*)(((uint8_t*)first_hops_arr) + 8); + for (size_t q = 0; q < first_hops_var.datalen; q++) { + LDKChannelDetails first_hops_conv_16_var = first_hops_var.data[q]; + int64_t first_hops_conv_16_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hops_conv_16_var); + first_hops_conv_16_ref = tag_ptr(first_hops_conv_16_var.inner, first_hops_conv_16_var.is_owned); + first_hops_arr_ptr[q] = first_hops_conv_16_ref; + } + + FREE(first_hops_var.data); + LDKReceiveTlvs tlvs_var = tlvs; + int64_t tlvs_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(tlvs_var); + tlvs_ref = tag_ptr(tlvs_var.inner, tlvs_var.is_owned); + int64_t amount_msats_conv = amount_msats; + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 49, (int64_t)recipient_arr, (int64_t)first_hops_arr, tlvs_ref, amount_msats_conv); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_conv = *(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} static void LDKRouter_JCalls_cloned(LDKRouter* new_obj) { LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); + atomic_fetch_add_explicit(&j_calls->MessageRouter->refcnt, 1, memory_order_release); } -static inline LDKRouter LDKRouter_init (int64_t o) { +static inline LDKRouter LDKRouter_init (int64_t o, int64_t MessageRouter) { LDKRouter_JCalls *calls = MALLOC(sizeof(LDKRouter_JCalls), "LDKRouter_JCalls"); atomic_init(&calls->refcnt, 1); calls->instance_ptr = o; @@ -6698,13 +7335,16 @@ static inline LDKRouter LDKRouter_init (int64_t o) { .this_arg = (void*) calls, .find_route = find_route_LDKRouter_jcall, .find_route_with_id = find_route_with_id_LDKRouter_jcall, + .create_blinded_payment_paths = create_blinded_payment_paths_LDKRouter_jcall, .free = LDKRouter_JCalls_free, + .MessageRouter = LDKMessageRouter_init(MessageRouter), }; + calls->MessageRouter = ret.MessageRouter.this_arg; return ret; } -uint64_t CS_LDK_LDKRouter_new(int32_t o) { +uint64_t CS_LDK_LDKRouter_new(int32_t o, int32_t MessageRouter) { LDKRouter *res_ptr = MALLOC(sizeof(LDKRouter), "LDKRouter"); - *res_ptr = LDKRouter_init(o); + *res_ptr = LDKRouter_init(o, MessageRouter); return tag_ptr(res_ptr, true); } int64_t CS_LDK_Router_find_route(int64_t this_arg, int8_tArray payer, int64_t route_params, int64_tArray first_hops, int64_t inflight_htlcs) { @@ -6801,6 +7441,40 @@ int64_t CS_LDK_Router_find_route_with_id(int64_t this_arg, int8_tArray payer, i return tag_ptr(ret_conv, true); } +int64_t CS_LDK_Router_create_blinded_payment_paths(int64_t this_arg, int8_tArray recipient, int64_tArray first_hops, int64_t tlvs, int64_t amount_msats) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKRouter* this_arg_conv = (LDKRouter*)this_arg_ptr; + LDKPublicKey recipient_ref; + CHECK(recipient->arr_len == 33); + memcpy(recipient_ref.compressed_form, recipient->elems, 33); FREE(recipient); + LDKCVec_ChannelDetailsZ first_hops_constr; + first_hops_constr.datalen = first_hops->arr_len; + if (first_hops_constr.datalen > 0) + first_hops_constr.data = MALLOC(first_hops_constr.datalen * sizeof(LDKChannelDetails), "LDKCVec_ChannelDetailsZ Elements"); + else + first_hops_constr.data = NULL; + int64_t* first_hops_vals = first_hops->elems; + for (size_t q = 0; q < first_hops_constr.datalen; q++) { + int64_t first_hops_conv_16 = first_hops_vals[q]; + LDKChannelDetails first_hops_conv_16_conv; + first_hops_conv_16_conv.inner = untag_ptr(first_hops_conv_16); + first_hops_conv_16_conv.is_owned = ptr_is_owned(first_hops_conv_16); + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hops_conv_16_conv); + first_hops_conv_16_conv = ChannelDetails_clone(&first_hops_conv_16_conv); + first_hops_constr.data[q] = first_hops_conv_16_conv; + } + FREE(first_hops); + LDKReceiveTlvs tlvs_conv; + tlvs_conv.inner = untag_ptr(tlvs); + tlvs_conv.is_owned = ptr_is_owned(tlvs); + CHECK_INNER_FIELD_ACCESS_OR_NULL(tlvs_conv); + tlvs_conv = ReceiveTlvs_clone(&tlvs_conv); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = (this_arg_conv->create_blinded_payment_paths)(this_arg_conv->this_arg, recipient_ref, first_hops_constr, tlvs_conv, amount_msats); + return tag_ptr(ret_conv, true); +} + static inline struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesChannelManagerZ_get_a(LDKC2Tuple_ThirtyTwoBytesChannelManagerZ *NONNULL_PTR owner){ return ThirtyTwoBytes_clone(&owner->a); } @@ -7384,17 +8058,17 @@ static void LDKType_JCalls_free(void* this_arg) { } uint16_t type_id_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - return js_invoke_function_s_(j_calls->instance_ptr, 46); + return js_invoke_function_s_(j_calls->instance_ptr, 50); } LDKStr debug_str_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 47); + jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 51); LDKStr ret_conv = str_ref_to_owned_c(ret); return ret_conv; } LDKCVec_u8Z write_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 48); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 52); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -7481,6 +8155,43 @@ static inline LDKCVec_C2Tuple_PublicKeyTypeZZ CVec_C2Tuple_PublicKeyTypeZZ_clone } return ret; } +static inline struct LDKPublicKey C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner){ + return owner->a; +} +int8_tArray CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(int64_t owner) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* owner_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(owner_conv).compressed_form, 33); + return ret_arr; +} + +static inline struct LDKCVec_SocketAddressZ C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner){ + return CVec_SocketAddressZ_clone(&owner->b); +} +int64_tArray CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(int64_t owner) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* owner_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(owner); + LDKCVec_SocketAddressZ ret_var = C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t p = 0; p < ret_var.datalen; p++) { + LDKSocketAddress *ret_conv_15_copy = MALLOC(sizeof(LDKSocketAddress), "LDKSocketAddress"); + *ret_conv_15_copy = ret_var.data[p]; + int64_t ret_conv_15_ref = tag_ptr(ret_conv_15_copy, true); + ret_arr_ptr[p] = ret_conv_15_ref; + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_clone(const LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ *orig) { + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ) * orig->datalen, "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(&orig->data[i]); + } + return ret; +} typedef struct LDKOnionMessageContents_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -7493,17 +8204,23 @@ static void LDKOnionMessageContents_JCalls_free(void* this_arg) { } uint64_t tlv_type_LDKOnionMessageContents_jcall(const void* this_arg) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; - return js_invoke_function_l_(j_calls->instance_ptr, 49); + return js_invoke_function_l_(j_calls->instance_ptr, 53); } LDKCVec_u8Z write_LDKOnionMessageContents_jcall(const void* this_arg) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 50); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 54); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); memcpy(ret_ref.data, ret->elems, ret_ref.datalen); FREE(ret); return ret_ref; } +LDKStr debug_str_LDKOnionMessageContents_jcall(const void* this_arg) { + LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; + jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 55); + LDKStr ret_conv = str_ref_to_owned_c(ret); + return ret_conv; +} static void LDKOnionMessageContents_JCalls_cloned(LDKOnionMessageContents* new_obj) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); @@ -7517,6 +8234,7 @@ static inline LDKOnionMessageContents LDKOnionMessageContents_init (int64_t o) { .this_arg = (void*) calls, .tlv_type = tlv_type_LDKOnionMessageContents_jcall, .write = write_LDKOnionMessageContents_jcall, + .debug_str = debug_str_LDKOnionMessageContents_jcall, .cloned = LDKOnionMessageContents_JCalls_cloned, .free = LDKOnionMessageContents_JCalls_free, }; @@ -7546,6 +8264,16 @@ int8_tArray CS_LDK_OnionMessageContents_write(int64_t this_arg) { return ret_arr; } +jstring CS_LDK_OnionMessageContents_debug_str(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageContents* this_arg_conv = (LDKOnionMessageContents*)this_arg_ptr; + LDKStr ret_str = (this_arg_conv->debug_str)(this_arg_conv->this_arg); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + uint32_t CS_LDK_LDKCOption_OnionMessageContentsZ_ty_from_ptr(int64_t ptr) { LDKCOption_OnionMessageContentsZ *obj = (LDKCOption_OnionMessageContentsZ*)untag_ptr(ptr); switch(obj->tag) { @@ -8122,6 +8850,110 @@ int64_t CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKStfu CResult_StfuDecodeErrorZ_get_ok(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner){ + LDKStfu ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_StfuDecodeErrorZ* owner_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(owner); + LDKStfu ret_var = CResult_StfuDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_StfuDecodeErrorZ_get_err(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_StfuDecodeErrorZ* owner_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_StfuDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSplice CResult_SpliceDecodeErrorZ_get_ok(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner){ + LDKSplice ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceDecodeErrorZ* owner_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(owner); + LDKSplice ret_var = CResult_SpliceDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceDecodeErrorZ_get_err(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceDecodeErrorZ* owner_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSpliceAck CResult_SpliceAckDecodeErrorZ_get_ok(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner){ + LDKSpliceAck ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceAckDecodeErrorZ* owner_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(owner); + LDKSpliceAck ret_var = CResult_SpliceAckDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceAckDecodeErrorZ_get_err(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceAckDecodeErrorZ* owner_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceAckDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSpliceLocked CResult_SpliceLockedDecodeErrorZ_get_ok(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner){ + LDKSpliceLocked ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceLockedDecodeErrorZ* owner_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(owner); + LDKSpliceLocked ret_var = CResult_SpliceLockedDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceLockedDecodeErrorZ_get_err(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceLockedDecodeErrorZ* owner_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceLockedDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKTxAddInput CResult_TxAddInputDecodeErrorZ_get_ok(LDKCResult_TxAddInputDecodeErrorZ *NONNULL_PTR owner){ LDKTxAddInput ret = *owner->contents.result; ret.is_owned = false; @@ -8798,6 +9630,32 @@ int64_t CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKOnionPacket CResult_OnionPacketDecodeErrorZ_get_ok(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner){ + LDKOnionPacket ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_OnionPacketDecodeErrorZ* owner_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(owner); + LDKOnionPacket ret_var = CResult_OnionPacketDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_OnionPacketDecodeErrorZ_get_err(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_OnionPacketDecodeErrorZ* owner_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_OnionPacketDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKUpdateAddHTLC CResult_UpdateAddHTLCDecodeErrorZ_get_ok(LDKCResult_UpdateAddHTLCDecodeErrorZ *NONNULL_PTR owner){ LDKUpdateAddHTLC ret = *owner->contents.result; ret.is_owned = false; @@ -8850,6 +9708,32 @@ int64_t CS_LDK_CResult_OnionMessageDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKFinalOnionHopData CResult_FinalOnionHopDataDecodeErrorZ_get_ok(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner){ + LDKFinalOnionHopData ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* owner_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(owner); + LDKFinalOnionHopData ret_var = CResult_FinalOnionHopDataDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_FinalOnionHopDataDecodeErrorZ_get_err(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* owner_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_FinalOnionHopDataDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKPing CResult_PingDecodeErrorZ_get_ok(LDKCResult_PingDecodeErrorZ *NONNULL_PTR owner){ LDKPing ret = *owner->contents.result; ret.is_owned = false; @@ -10156,24 +11040,25 @@ uint32_t CS_LDK_LDKEvent_ty_from_ptr(int64_t ptr) { case LDKEvent_FundingGenerationReady: return 0; case LDKEvent_PaymentClaimable: return 1; case LDKEvent_PaymentClaimed: return 2; - case LDKEvent_InvoiceRequestFailed: return 3; - case LDKEvent_PaymentSent: return 4; - case LDKEvent_PaymentFailed: return 5; - case LDKEvent_PaymentPathSuccessful: return 6; - case LDKEvent_PaymentPathFailed: return 7; - case LDKEvent_ProbeSuccessful: return 8; - case LDKEvent_ProbeFailed: return 9; - case LDKEvent_PendingHTLCsForwardable: return 10; - case LDKEvent_HTLCIntercepted: return 11; - case LDKEvent_SpendableOutputs: return 12; - case LDKEvent_PaymentForwarded: return 13; - case LDKEvent_ChannelPending: return 14; - case LDKEvent_ChannelReady: return 15; - case LDKEvent_ChannelClosed: return 16; - case LDKEvent_DiscardFunding: return 17; - case LDKEvent_OpenChannelRequest: return 18; - case LDKEvent_HTLCHandlingFailed: return 19; - case LDKEvent_BumpTransaction: return 20; + case LDKEvent_ConnectionNeeded: return 3; + case LDKEvent_InvoiceRequestFailed: return 4; + case LDKEvent_PaymentSent: return 5; + case LDKEvent_PaymentFailed: return 6; + case LDKEvent_PaymentPathSuccessful: return 7; + case LDKEvent_PaymentPathFailed: return 8; + case LDKEvent_ProbeSuccessful: return 9; + case LDKEvent_ProbeFailed: return 10; + case LDKEvent_PendingHTLCsForwardable: return 11; + case LDKEvent_HTLCIntercepted: return 12; + case LDKEvent_SpendableOutputs: return 13; + case LDKEvent_PaymentForwarded: return 14; + case LDKEvent_ChannelPending: return 15; + case LDKEvent_ChannelReady: return 16; + case LDKEvent_ChannelClosed: return 17; + case LDKEvent_DiscardFunding: return 18; + case LDKEvent_OpenChannelRequest: return 19; + case LDKEvent_HTLCHandlingFailed: return 20; + case LDKEvent_BumpTransaction: return 21; default: abort(); } } @@ -10320,6 +11205,27 @@ int64_t CS_LDK_LDKEvent_PaymentClaimed_get_sender_intended_total_msat(int64_t pt int64_t sender_intended_total_msat_ref = tag_ptr(&obj->payment_claimed.sender_intended_total_msat, false); return sender_intended_total_msat_ref; } +int8_tArray CS_LDK_LDKEvent_ConnectionNeeded_get_node_id(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ConnectionNeeded); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->connection_needed.node_id.compressed_form, 33); + return node_id_arr; +} +int64_tArray CS_LDK_LDKEvent_ConnectionNeeded_get_addresses(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ConnectionNeeded); + LDKCVec_SocketAddressZ addresses_var = obj->connection_needed.addresses; + int64_tArray addresses_arr = NULL; + addresses_arr = init_int64_tArray(addresses_var.datalen, __LINE__); + int64_t *addresses_arr_ptr = (int64_t*)(((uint8_t*)addresses_arr) + 8); + for (size_t p = 0; p < addresses_var.datalen; p++) { + int64_t addresses_conv_15_ref = tag_ptr(&addresses_var.data[p], false); + addresses_arr_ptr[p] = addresses_conv_15_ref; + } + + return addresses_arr; +} int8_tArray CS_LDK_LDKEvent_InvoiceRequestFailed_get_payment_id(int64_t ptr) { LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKEvent_InvoiceRequestFailed); @@ -10674,6 +11580,15 @@ int64_t CS_LDK_LDKEvent_ChannelClosed_get_channel_capacity_sats(int64_t ptr) { int64_t channel_capacity_sats_ref = tag_ptr(&obj->channel_closed.channel_capacity_sats, false); return channel_capacity_sats_ref; } +int64_t CS_LDK_LDKEvent_ChannelClosed_get_channel_funding_txo(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ChannelClosed); + LDKOutPoint channel_funding_txo_var = obj->channel_closed.channel_funding_txo; + int64_t channel_funding_txo_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_funding_txo_var); + channel_funding_txo_ref = tag_ptr(channel_funding_txo_var.inner, false); + return channel_funding_txo_ref; +} int8_tArray CS_LDK_LDKEvent_DiscardFunding_get_channel_id(int64_t ptr) { LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKEvent_DiscardFunding); @@ -11267,30 +12182,23 @@ int64_t CS_LDK_CResult_UntrustedStringDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -static inline struct LDKReceiveTlvs CResult_ReceiveTlvsDecodeErrorZ_get_ok(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner){ - LDKReceiveTlvs ret = *owner->contents.result; - ret.is_owned = false; - return ret; +static inline struct LDKThirtyTwoBytes C2Tuple__u832u16Z_get_a(LDKC2Tuple__u832u16Z *NONNULL_PTR owner){ + return ThirtyTwoBytes_clone(&owner->a); } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_ok(int64_t owner) { - LDKCResult_ReceiveTlvsDecodeErrorZ* owner_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(owner); - LDKReceiveTlvs ret_var = CResult_ReceiveTlvsDecodeErrorZ_get_ok(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; +int8_tArray CS_LDK_C2Tuple__u832u16Z_get_a(int64_t owner) { + LDKC2Tuple__u832u16Z* owner_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, C2Tuple__u832u16Z_get_a(owner_conv).data, 32); + return ret_arr; } -static inline struct LDKDecodeError CResult_ReceiveTlvsDecodeErrorZ_get_err(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return DecodeError_clone(&*owner->contents.err); +static inline uint16_t C2Tuple__u832u16Z_get_b(LDKC2Tuple__u832u16Z *NONNULL_PTR owner){ + return owner->b; } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_err(int64_t owner) { - LDKCResult_ReceiveTlvsDecodeErrorZ* owner_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(owner); - LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); - *ret_copy = CResult_ReceiveTlvsDecodeErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; +int16_t CS_LDK_C2Tuple__u832u16Z_get_b(int64_t owner) { + LDKC2Tuple__u832u16Z* owner_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(owner); + int16_t ret_conv = C2Tuple__u832u16Z_get_b(owner_conv); + return ret_conv; } static inline struct LDKPaymentRelay CResult_PaymentRelayDecodeErrorZ_get_ok(LDKCResult_PaymentRelayDecodeErrorZ *NONNULL_PTR owner){ @@ -11345,122 +12253,62 @@ int64_t CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -uint32_t CS_LDK_LDKPaymentError_ty_from_ptr(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - switch(obj->tag) { - case LDKPaymentError_Invoice: return 0; - case LDKPaymentError_Sending: return 1; - default: abort(); - } -} -jstring CS_LDK_LDKPaymentError_Invoice_get_invoice(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - CHECK(obj->tag == LDKPaymentError_Invoice); - LDKStr invoice_str = obj->invoice; - jstring invoice_conv = str_ref_to_cs(invoice_str.chars, invoice_str.len); - return invoice_conv; -} -int32_t CS_LDK_LDKPaymentError_Sending_get_sending(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - CHECK(obj->tag == LDKPaymentError_Sending); - int32_t sending_conv = LDKRetryableSendFailure_to_cs(obj->sending); - return sending_conv; -} -static inline struct LDKThirtyTwoBytes CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return ThirtyTwoBytes_clone(&*owner->contents.result); +static inline struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + return ThirtyTwoBytes_clone(&owner->a); } -int8_tArray CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(int64_t owner) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* owner_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(owner_conv).data, 32); + memcpy(ret_arr->elems, C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(owner_conv).data, 32); return ret_arr; } -static inline struct LDKPaymentError CResult_ThirtyTwoBytesPaymentErrorZ_get_err(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return PaymentError_clone(&*owner->contents.err); +static inline struct LDKRecipientOnionFields C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + LDKRecipientOnionFields ret = owner->b; + ret.is_owned = false; + return ret; } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_err(int64_t owner) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* owner_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(owner); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = CResult_ThirtyTwoBytesPaymentErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); + LDKRecipientOnionFields ret_var = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } -static inline void CResult_NonePaymentErrorZ_get_ok(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return *owner->contents.result; -} -void CS_LDK_CResult_NonePaymentErrorZ_get_ok(int64_t owner) { - LDKCResult_NonePaymentErrorZ* owner_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(owner); - CResult_NonePaymentErrorZ_get_ok(owner_conv); -} - -static inline struct LDKPaymentError CResult_NonePaymentErrorZ_get_err(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return PaymentError_clone(&*owner->contents.err); +static inline struct LDKRouteParameters C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + LDKRouteParameters ret = owner->c; + ret.is_owned = false; + return ret; } -int64_t CS_LDK_CResult_NonePaymentErrorZ_get_err(int64_t owner) { - LDKCResult_NonePaymentErrorZ* owner_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(owner); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = CResult_NonePaymentErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); + LDKRouteParameters ret_var = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } -uint32_t CS_LDK_LDKProbingError_ty_from_ptr(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - switch(obj->tag) { - case LDKProbingError_Invoice: return 0; - case LDKProbingError_Sending: return 1; - default: abort(); - } -} -jstring CS_LDK_LDKProbingError_Invoice_get_invoice(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - CHECK(obj->tag == LDKProbingError_Invoice); - LDKStr invoice_str = obj->invoice; - jstring invoice_conv = str_ref_to_cs(invoice_str.chars, invoice_str.len); - return invoice_conv; -} -int64_t CS_LDK_LDKProbingError_Sending_get_sending(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - CHECK(obj->tag == LDKProbingError_Sending); - int64_t sending_ref = tag_ptr(&obj->sending, false); - return sending_ref; -} -static inline struct LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner){ +static inline struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ_clone(&*owner->contents.result); + return C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(&*owner->contents.result); } -int64_tArray CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(int64_t owner) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* owner_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(owner); - LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ ret_var = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(owner_conv); - int64_tArray ret_arr = NULL; - ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); - int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t o = 0; o < ret_var.datalen; o++) { - LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ* ret_conv_40_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ), "LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ"); - *ret_conv_40_conv = ret_var.data[o]; - ret_arr_ptr[o] = tag_ptr(ret_conv_40_conv, true); - } - - FREE(ret_var.data); - return ret_arr; +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(int64_t owner) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* owner_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(owner); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(owner_conv); + return tag_ptr(ret_conv, true); } -static inline struct LDKProbingError CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner){ +static inline void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); - return ProbingError_clone(&*owner->contents.err); + return *owner->contents.err; } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(int64_t owner) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* owner_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(owner); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; +void CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(int64_t owner) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* owner_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(owner); + CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(owner_conv); } static inline struct LDKStr CResult_StrSecp256k1ErrorZ_get_ok(LDKCResult_StrSecp256k1ErrorZ *NONNULL_PTR owner){ @@ -11484,53 +12332,41 @@ int32_t CS_LDK_CResult_StrSecp256k1ErrorZ_get_err(int64_t owner) { return ret_conv; } -static inline struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ - LDKOnionMessagePath ret = *owner->contents.result; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_get_ok(int64_t owner) { - LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); - LDKOnionMessagePath ret_var = CResult_OnionMessagePathNoneZ_get_ok(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_OnionMessagePathNoneZ_get_err(int64_t owner) { - LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); - CResult_OnionMessagePathNoneZ_get_err(owner_conv); -} - -static inline struct LDKPublicKey C2Tuple_PublicKeyOnionMessageZ_get_a(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner){ +static inline struct LDKPublicKey C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ return owner->a; } -int8_tArray CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_a(int64_t owner) { - LDKC2Tuple_PublicKeyOnionMessageZ* owner_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, C2Tuple_PublicKeyOnionMessageZ_get_a(owner_conv).compressed_form, 33); + memcpy(ret_arr->elems, C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(owner_conv).compressed_form, 33); return ret_arr; } -static inline struct LDKOnionMessage C2Tuple_PublicKeyOnionMessageZ_get_b(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner){ +static inline struct LDKOnionMessage C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ LDKOnionMessage ret = owner->b; ret.is_owned = false; return ret; } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_b(int64_t owner) { - LDKC2Tuple_PublicKeyOnionMessageZ* owner_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(owner); - LDKOnionMessage ret_var = C2Tuple_PublicKeyOnionMessageZ_get_b(owner_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); + LDKOnionMessage ret_var = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(owner_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } +static inline struct LDKCOption_CVec_SocketAddressZZ C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ + return COption_CVec_SocketAddressZZ_clone(&owner->c); +} +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); + LDKCOption_CVec_SocketAddressZZ *ret_copy = MALLOC(sizeof(LDKCOption_CVec_SocketAddressZZ), "LDKCOption_CVec_SocketAddressZZ"); + *ret_copy = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + uint32_t CS_LDK_LDKSendError_ty_from_ptr(int64_t ptr) { LDKSendError *obj = (LDKSendError*)untag_ptr(ptr); switch(obj->tag) { @@ -11538,10 +12374,11 @@ uint32_t CS_LDK_LDKSendError_ty_from_ptr(int64_t ptr) { case LDKSendError_TooBigPacket: return 1; case LDKSendError_TooFewBlindedHops: return 2; case LDKSendError_InvalidFirstHop: return 3; - case LDKSendError_InvalidMessage: return 4; - case LDKSendError_BufferFull: return 5; - case LDKSendError_GetNodeIdFailed: return 6; - case LDKSendError_BlindedPathAdvanceFailed: return 7; + case LDKSendError_PathNotFound: return 4; + case LDKSendError_InvalidMessage: return 5; + case LDKSendError_BufferFull: return 6; + case LDKSendError_GetNodeIdFailed: return 7; + case LDKSendError_BlindedPathAdvanceFailed: return 8; default: abort(); } } @@ -11551,25 +12388,32 @@ int32_t CS_LDK_LDKSendError_Secp256k1_get_secp256k1(int64_t ptr) { int32_t secp256k1_conv = LDKSecp256k1Error_to_cs(obj->secp256k1); return secp256k1_conv; } -static inline struct LDKC2Tuple_PublicKeyOnionMessageZ CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner){ +int8_tArray CS_LDK_LDKSendError_InvalidFirstHop_get_invalid_first_hop(int64_t ptr) { + LDKSendError *obj = (LDKSendError*)untag_ptr(ptr); + CHECK(obj->tag == LDKSendError_InvalidFirstHop); + int8_tArray invalid_first_hop_arr = init_int8_tArray(33, __LINE__); + memcpy(invalid_first_hop_arr->elems, obj->invalid_first_hop.compressed_form, 33); + return invalid_first_hop_arr; +} +static inline struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return C2Tuple_PublicKeyOnionMessageZ_clone(&*owner->contents.result); + return C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(&*owner->contents.result); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* owner_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(owner); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(int64_t owner) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* owner_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(owner); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(owner_conv); return tag_ptr(ret_conv, true); } -static inline struct LDKSendError CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner){ +static inline struct LDKSendError CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return SendError_clone(&*owner->contents.err); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* owner_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(owner); +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(int64_t owner) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* owner_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(owner); LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(owner_conv); + *ret_copy = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -11662,23 +12506,41 @@ void CS_LDK_CResult_PeeledOnionNoneZ_get_err(int64_t owner) { CResult_PeeledOnionNoneZ_get_err(owner_conv); } -static inline void CResult_NoneSendErrorZ_get_ok(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner){ +uint32_t CS_LDK_LDKSendSuccess_ty_from_ptr(int64_t ptr) { + LDKSendSuccess *obj = (LDKSendSuccess*)untag_ptr(ptr); + switch(obj->tag) { + case LDKSendSuccess_Buffered: return 0; + case LDKSendSuccess_BufferedAwaitingConnection: return 1; + default: abort(); + } +} +int8_tArray CS_LDK_LDKSendSuccess_BufferedAwaitingConnection_get_buffered_awaiting_connection(int64_t ptr) { + LDKSendSuccess *obj = (LDKSendSuccess*)untag_ptr(ptr); + CHECK(obj->tag == LDKSendSuccess_BufferedAwaitingConnection); + int8_tArray buffered_awaiting_connection_arr = init_int8_tArray(33, __LINE__); + memcpy(buffered_awaiting_connection_arr->elems, obj->buffered_awaiting_connection.compressed_form, 33); + return buffered_awaiting_connection_arr; +} +static inline struct LDKSendSuccess CResult_SendSuccessSendErrorZ_get_ok(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return *owner->contents.result; + return SendSuccess_clone(&*owner->contents.result); } -void CS_LDK_CResult_NoneSendErrorZ_get_ok(int64_t owner) { - LDKCResult_NoneSendErrorZ* owner_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(owner); - CResult_NoneSendErrorZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_get_ok(int64_t owner) { + LDKCResult_SendSuccessSendErrorZ* owner_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(owner); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = CResult_SendSuccessSendErrorZ_get_ok(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; } -static inline struct LDKSendError CResult_NoneSendErrorZ_get_err(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner){ +static inline struct LDKSendError CResult_SendSuccessSendErrorZ_get_err(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return SendError_clone(&*owner->contents.err); } -int64_t CS_LDK_CResult_NoneSendErrorZ_get_err(int64_t owner) { - LDKCResult_NoneSendErrorZ* owner_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(owner); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_get_err(int64_t owner) { + LDKCResult_SendSuccessSendErrorZ* owner_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(owner); LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = CResult_NoneSendErrorZ_get_err(owner_conv); + *ret_copy = CResult_SendSuccessSendErrorZ_get_err(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -11726,6 +12588,13 @@ void CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_get_err(int64_t own CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_get_err(owner_conv); } +static inline LDKCVec_ForwardNodeZ CVec_ForwardNodeZ_clone(const LDKCVec_ForwardNodeZ *orig) { + LDKCVec_ForwardNodeZ ret = { .data = MALLOC(sizeof(LDKForwardNode) * orig->datalen, "LDKCVec_ForwardNodeZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = ForwardNode_clone(&orig->data[i]); + } + return ret; +} static inline struct LDKBlindedPath CResult_BlindedPathDecodeErrorZ_get_ok(LDKCResult_BlindedPathDecodeErrorZ *NONNULL_PTR owner){ LDKBlindedPath ret = *owner->contents.result; ret.is_owned = false; @@ -11804,6 +12673,162 @@ int64_t CS_LDK_CResult_InvoiceErrorDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKDelayedPaymentBasepoint CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKDelayedPaymentBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDelayedPaymentBasepoint ret_var = CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKDelayedPaymentKey CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKDelayedPaymentKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(owner); + LDKDelayedPaymentKey ret_var = CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_DelayedPaymentKeyDecodeErrorZ_get_err(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_DelayedPaymentKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKHtlcBasepoint CResult_HtlcBasepointDecodeErrorZ_get_ok(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKHtlcBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_HtlcBasepointDecodeErrorZ* owner_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(owner); + LDKHtlcBasepoint ret_var = CResult_HtlcBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_HtlcBasepointDecodeErrorZ_get_err(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_HtlcBasepointDecodeErrorZ* owner_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_HtlcBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKHtlcKey CResult_HtlcKeyDecodeErrorZ_get_ok(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKHtlcKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_HtlcKeyDecodeErrorZ* owner_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(owner); + LDKHtlcKey ret_var = CResult_HtlcKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_HtlcKeyDecodeErrorZ_get_err(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_HtlcKeyDecodeErrorZ* owner_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_HtlcKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKRevocationBasepoint CResult_RevocationBasepointDecodeErrorZ_get_ok(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKRevocationBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_RevocationBasepointDecodeErrorZ* owner_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(owner); + LDKRevocationBasepoint ret_var = CResult_RevocationBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_RevocationBasepointDecodeErrorZ_get_err(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_RevocationBasepointDecodeErrorZ* owner_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_RevocationBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKRevocationKey CResult_RevocationKeyDecodeErrorZ_get_ok(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKRevocationKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_RevocationKeyDecodeErrorZ* owner_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(owner); + LDKRevocationKey ret_var = CResult_RevocationKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_RevocationKeyDecodeErrorZ_get_err(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_RevocationKeyDecodeErrorZ* owner_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_RevocationKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + typedef struct LDKFilter_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -11821,7 +12846,7 @@ void register_tx_LDKFilter_jcall(const void* this_arg, const uint8_t (* txid)[32 LDKu8slice script_pubkey_var = script_pubkey; int8_tArray script_pubkey_arr = init_int8_tArray(script_pubkey_var.datalen, __LINE__); memcpy(script_pubkey_arr->elems, script_pubkey_var.data, script_pubkey_var.datalen); - js_invoke_function_void_ll(j_calls->instance_ptr, 51, (int64_t)txid_arr, (int64_t)script_pubkey_arr); + js_invoke_function_void_ll(j_calls->instance_ptr, 56, (int64_t)txid_arr, (int64_t)script_pubkey_arr); } void register_output_LDKFilter_jcall(const void* this_arg, LDKWatchedOutput output) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; @@ -11829,7 +12854,7 @@ void register_output_LDKFilter_jcall(const void* this_arg, LDKWatchedOutput outp int64_t output_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(output_var); output_ref = tag_ptr(output_var.inner, output_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 52, output_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 57, output_ref); } static void LDKFilter_JCalls_cloned(LDKFilter* new_obj) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) new_obj->this_arg; @@ -12000,7 +13025,7 @@ LDKCResult_CVec_u8ZIOErrorZ read_LDKKVStore_jcall(const void* this_arg, LDKStr p LDKStr key_str = key; jstring key_conv = str_ref_to_cs(key_str.chars, key_str.len); Str_free(key_str); - uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 53, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 58, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZIOErrorZ ret_conv = *(LDKCResult_CVec_u8ZIOErrorZ*)(ret_ptr); @@ -12021,7 +13046,7 @@ LDKCResult_NoneIOErrorZ write_LDKKVStore_jcall(const void* this_arg, LDKStr prim LDKu8slice buf_var = buf; int8_tArray buf_arr = init_int8_tArray(buf_var.datalen, __LINE__); memcpy(buf_arr->elems, buf_var.data, buf_var.datalen); - uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 54, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, (int64_t)buf_arr); + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 59, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, (int64_t)buf_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12040,7 +13065,7 @@ LDKCResult_NoneIOErrorZ remove_LDKKVStore_jcall(const void* this_arg, LDKStr pri jstring key_conv = str_ref_to_cs(key_str.chars, key_str.len); Str_free(key_str); jboolean lazy_conv = lazy; - uint64_t ret = js_invoke_function_l_lllb(j_calls->instance_ptr, 55, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, lazy_conv); + uint64_t ret = js_invoke_function_l_lllb(j_calls->instance_ptr, 60, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, lazy_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12055,7 +13080,7 @@ LDKCResult_CVec_StrZIOErrorZ list_LDKKVStore_jcall(const void* this_arg, LDKStr LDKStr secondary_namespace_str = secondary_namespace; jstring secondary_namespace_conv = str_ref_to_cs(secondary_namespace_str.chars, secondary_namespace_str.len); Str_free(secondary_namespace_str); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 56, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 61, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_StrZIOErrorZ ret_conv = *(LDKCResult_CVec_StrZIOErrorZ*)(ret_ptr); @@ -12154,7 +13179,7 @@ LDKCResult_NoneIOErrorZ persist_manager_LDKPersister_jcall(const void* this_arg, // WARNING: we may need a move here but no clone is available for LDKChannelManager CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_manager_var); channel_manager_ref = tag_ptr(channel_manager_var.inner, channel_manager_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 57, channel_manager_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 62, channel_manager_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12168,7 +13193,7 @@ LDKCResult_NoneIOErrorZ persist_graph_LDKPersister_jcall(const void* this_arg, c // WARNING: we may need a move here but no clone is available for LDKNetworkGraph CHECK_INNER_FIELD_ACCESS_OR_NULL(network_graph_var); network_graph_ref = tag_ptr(network_graph_var.inner, network_graph_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 58, network_graph_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 63, network_graph_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12179,7 +13204,7 @@ LDKCResult_NoneIOErrorZ persist_scorer_LDKPersister_jcall(const void* this_arg, LDKPersister_JCalls *j_calls = (LDKPersister_JCalls*) this_arg; // WARNING: This object doesn't live past this scope, needs clone! int64_t ret_scorer = tag_ptr(scorer, false); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 59, ret_scorer); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 64, ret_scorer); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12274,7 +13299,7 @@ LDKChannelMonitorUpdateStatus persist_new_channel_LDKPersist_jcall(const void* t int64_t update_id_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(update_id_var); update_id_ref = tag_ptr(update_id_var.inner, update_id_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_lll(j_calls->instance_ptr, 60, channel_id_ref, data_ref, update_id_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_lll(j_calls->instance_ptr, 65, channel_id_ref, data_ref, update_id_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } @@ -12297,7 +13322,7 @@ LDKChannelMonitorUpdateStatus update_persisted_channel_LDKPersist_jcall(const vo int64_t update_id_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(update_id_var); update_id_ref = tag_ptr(update_id_var.inner, update_id_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_llll(j_calls->instance_ptr, 61, channel_id_ref, update_ref, data_ref, update_id_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_llll(j_calls->instance_ptr, 66, channel_id_ref, update_ref, data_ref, update_id_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } @@ -12386,7 +13411,7 @@ static void LDKFutureCallback_JCalls_free(void* this_arg) { } void call_LDKFutureCallback_jcall(const void* this_arg) { LDKFutureCallback_JCalls *j_calls = (LDKFutureCallback_JCalls*) this_arg; - js_invoke_function_void_(j_calls->instance_ptr, 62); + js_invoke_function_void_(j_calls->instance_ptr, 67); } static void LDKFutureCallback_JCalls_cloned(LDKFutureCallback* new_obj) { LDKFutureCallback_JCalls *j_calls = (LDKFutureCallback_JCalls*) new_obj->this_arg; @@ -12442,7 +13467,7 @@ void filtered_block_connected_LDKListen_jcall(const void* this_arg, const uint8_ FREE(txdata_var.data); int32_t height_conv = height; - js_invoke_function_void_lli(j_calls->instance_ptr, 63, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); + js_invoke_function_void_lli(j_calls->instance_ptr, 68, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); } void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uint32_t height) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; @@ -12450,14 +13475,14 @@ void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uin int8_tArray block_arr = init_int8_tArray(block_var.datalen, __LINE__); memcpy(block_arr->elems, block_var.data, block_var.datalen); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 64, (int64_t)block_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 69, (int64_t)block_arr, height_conv); } void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; int8_tArray header_arr = init_int8_tArray(80, __LINE__); memcpy(header_arr->elems, *header, 80); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 65, (int64_t)header_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 70, (int64_t)header_arr, height_conv); } static void LDKListen_JCalls_cloned(LDKListen* new_obj) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) new_obj->this_arg; @@ -12557,38 +13582,38 @@ void transactions_confirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t FREE(txdata_var.data); int32_t height_conv = height; - js_invoke_function_void_lli(j_calls->instance_ptr, 66, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); + js_invoke_function_void_lli(j_calls->instance_ptr, 71, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); } void transaction_unconfirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t (* txid)[32]) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; int8_tArray txid_arr = init_int8_tArray(32, __LINE__); memcpy(txid_arr->elems, *txid, 32); - js_invoke_function_void_l(j_calls->instance_ptr, 67, (int64_t)txid_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 72, (int64_t)txid_arr); } void best_block_updated_LDKConfirm_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; int8_tArray header_arr = init_int8_tArray(80, __LINE__); memcpy(header_arr->elems, *header, 80); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 68, (int64_t)header_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 73, (int64_t)header_arr, height_conv); } -LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { +LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 69); - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_constr; + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 74); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) - ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ Elements"); + ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ Elements"); else ret_constr.data = NULL; int64_t* ret_vals = ret->elems; - for (size_t x = 0; x < ret_constr.datalen; x++) { - int64_t ret_conv_49 = ret_vals[x]; - void* ret_conv_49_ptr = untag_ptr(ret_conv_49); - CHECK_ACCESS(ret_conv_49_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_conv_49_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(ret_conv_49_ptr); - FREE(untag_ptr(ret_conv_49)); - ret_constr.data[x] = ret_conv_49_conv; + for (size_t c = 0; c < ret_constr.datalen; c++) { + int64_t ret_conv_54 = ret_vals[c]; + void* ret_conv_54_ptr = untag_ptr(ret_conv_54); + CHECK_ACCESS(ret_conv_54_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_conv_54_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(ret_conv_54_ptr); + FREE(untag_ptr(ret_conv_54)); + ret_constr.data[c] = ret_conv_54_conv; } FREE(ret); return ret_constr; @@ -12670,14 +13695,14 @@ int64_tArray CS_LDK_Confirm_get_relevant_txids(int64_t this_arg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKConfirm* this_arg_conv = (LDKConfirm*)this_arg_ptr; - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_var = (this_arg_conv->get_relevant_txids)(this_arg_conv->this_arg); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_var = (this_arg_conv->get_relevant_txids)(this_arg_conv->this_arg); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t x = 0; x < ret_var.datalen; x++) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv_49_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv_49_conv = ret_var.data[x]; - ret_arr_ptr[x] = tag_ptr(ret_conv_49_conv, true); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv_54_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv_54_conv = ret_var.data[c]; + ret_arr_ptr[c] = tag_ptr(ret_conv_54_conv, true); } FREE(ret_var.data); @@ -12699,7 +13724,7 @@ void handle_event_LDKEventHandler_jcall(const void* this_arg, LDKEvent event) { LDKEvent *event_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); *event_copy = event; int64_t event_ref = tag_ptr(event_copy, true); - js_invoke_function_void_l(j_calls->instance_ptr, 70, event_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 75, event_ref); } static void LDKEventHandler_JCalls_cloned(LDKEventHandler* new_obj) { LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) new_obj->this_arg; @@ -12747,7 +13772,7 @@ void process_pending_events_LDKEventsProvider_jcall(const void* this_arg, LDKEve LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) this_arg; LDKEventHandler* handler_ret = MALLOC(sizeof(LDKEventHandler), "LDKEventHandler"); *handler_ret = handler; - js_invoke_function_void_l(j_calls->instance_ptr, 71, tag_ptr(handler_ret, true)); + js_invoke_function_void_l(j_calls->instance_ptr, 76, tag_ptr(handler_ret, true)); } static void LDKEventsProvider_JCalls_cloned(LDKEventsProvider* new_obj) { LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) new_obj->this_arg; @@ -12812,7 +13837,7 @@ static void LDKMessageSendEventsProvider_JCalls_free(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; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 72); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 77); LDKCVec_MessageSendEventZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -12891,7 +13916,7 @@ void handle_open_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LD msg_var = OpenChannel_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 73, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 78, (int64_t)their_node_id_arr, msg_ref); } void handle_open_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKOpenChannelV2 * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12902,7 +13927,7 @@ void handle_open_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = OpenChannelV2_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 74, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 79, (int64_t)their_node_id_arr, msg_ref); } void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAcceptChannel * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12913,7 +13938,7 @@ void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = AcceptChannel_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 75, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 80, (int64_t)their_node_id_arr, msg_ref); } void handle_accept_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAcceptChannelV2 * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12924,7 +13949,7 @@ void handle_accept_channel_v2_LDKChannelMessageHandler_jcall(const void* this_ar msg_var = AcceptChannelV2_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 76, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 81, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12935,7 +13960,7 @@ void handle_funding_created_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = FundingCreated_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 77, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 82, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12946,7 +13971,7 @@ void handle_funding_signed_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = FundingSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 78, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 83, (int64_t)their_node_id_arr, msg_ref); } void handle_channel_ready_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKChannelReady * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12957,7 +13982,7 @@ void handle_channel_ready_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = ChannelReady_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 79, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 84, (int64_t)their_node_id_arr, msg_ref); } void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKShutdown * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12968,7 +13993,7 @@ void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPub msg_var = Shutdown_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 80, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 85, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12979,7 +14004,51 @@ void handle_closing_signed_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = ClosingSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 81, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 86, (int64_t)their_node_id_arr, msg_ref); +} +void handle_stfu_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKStfu * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKStfu msg_var = *msg; + int64_t msg_ref = 0; + msg_var = Stfu_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 87, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSplice * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSplice msg_var = *msg; + int64_t msg_ref = 0; + msg_var = Splice_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 88, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_ack_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSpliceAck * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSpliceAck msg_var = *msg; + int64_t msg_ref = 0; + msg_var = SpliceAck_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 89, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_locked_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSpliceLocked * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSpliceLocked msg_var = *msg; + int64_t msg_ref = 0; + msg_var = SpliceLocked_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 90, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_add_input_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAddInput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12990,7 +14059,7 @@ void handle_tx_add_input_LDKChannelMessageHandler_jcall(const void* this_arg, LD msg_var = TxAddInput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 82, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 91, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_add_output_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAddOutput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13001,7 +14070,7 @@ void handle_tx_add_output_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = TxAddOutput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 83, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 92, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_remove_input_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxRemoveInput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13012,7 +14081,7 @@ void handle_tx_remove_input_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = TxRemoveInput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 84, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 93, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_remove_output_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxRemoveOutput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13023,7 +14092,7 @@ void handle_tx_remove_output_LDKChannelMessageHandler_jcall(const void* this_arg msg_var = TxRemoveOutput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 85, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 94, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_complete_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxComplete * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13034,7 +14103,7 @@ void handle_tx_complete_LDKChannelMessageHandler_jcall(const void* this_arg, LDK msg_var = TxComplete_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 86, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 95, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_signatures_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxSignatures * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13045,7 +14114,7 @@ void handle_tx_signatures_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = TxSignatures_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 87, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 96, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_init_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxInitRbf * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13056,7 +14125,7 @@ void handle_tx_init_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDK msg_var = TxInitRbf_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 88, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 97, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_ack_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAckRbf * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13067,7 +14136,7 @@ void handle_tx_ack_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP msg_var = TxAckRbf_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 89, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 98, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_abort_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAbort * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13078,7 +14147,7 @@ void handle_tx_abort_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPub msg_var = TxAbort_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 90, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 99, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13089,7 +14158,7 @@ void handle_update_add_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = UpdateAddHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 91, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 100, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13100,7 +14169,7 @@ void handle_update_fulfill_htlc_LDKChannelMessageHandler_jcall(const void* this_ msg_var = UpdateFulfillHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 92, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 101, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13111,7 +14180,7 @@ void handle_update_fail_htlc_LDKChannelMessageHandler_jcall(const void* this_arg msg_var = UpdateFailHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 93, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 102, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13122,7 +14191,7 @@ void handle_update_fail_malformed_htlc_LDKChannelMessageHandler_jcall(const void msg_var = UpdateFailMalformedHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 94, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 103, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13133,7 +14202,7 @@ void handle_commitment_signed_LDKChannelMessageHandler_jcall(const void* this_ar msg_var = CommitmentSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 95, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 104, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13144,7 +14213,7 @@ void handle_revoke_and_ack_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = RevokeAndACK_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 96, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 105, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13155,7 +14224,7 @@ void handle_update_fee_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP msg_var = UpdateFee_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 97, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 106, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13166,13 +14235,13 @@ void handle_announcement_signatures_LDKChannelMessageHandler_jcall(const void* t msg_var = AnnouncementSignatures_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 98, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 107, (int64_t)their_node_id_arr, msg_ref); } void peer_disconnected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - js_invoke_function_void_l(j_calls->instance_ptr, 99, (int64_t)their_node_id_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 108, (int64_t)their_node_id_arr); } LDKCResult_NoneNoneZ peer_connected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * msg, bool inbound) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13184,7 +14253,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKChannelMessageHandler_jcall(const void* t CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 100, (int64_t)their_node_id_arr, msg_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 109, (int64_t)their_node_id_arr, msg_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -13200,7 +14269,7 @@ void handle_channel_reestablish_LDKChannelMessageHandler_jcall(const void* this_ msg_var = ChannelReestablish_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 101, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 110, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13211,7 +14280,7 @@ void handle_channel_update_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = ChannelUpdate_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 102, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 111, (int64_t)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; @@ -13222,11 +14291,11 @@ void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublic msg_var = ErrorMessage_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 103, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 112, (int64_t)their_node_id_arr, msg_ref); } LDKNodeFeatures provided_node_features_LDKChannelMessageHandler_jcall(const void* this_arg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 104); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 113); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13237,7 +14306,7 @@ LDKInitFeatures provided_init_features_LDKChannelMessageHandler_jcall(const void LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 105, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 114, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13246,7 +14315,7 @@ LDKInitFeatures provided_init_features_LDKChannelMessageHandler_jcall(const void } LDKCOption_CVec_ThirtyTwoBytesZZ get_chain_hashes_LDKChannelMessageHandler_jcall(const void* this_arg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 106); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 115); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_CVec_ThirtyTwoBytesZZ ret_conv = *(LDKCOption_CVec_ThirtyTwoBytesZZ*)(ret_ptr); @@ -13274,6 +14343,10 @@ static inline LDKChannelMessageHandler LDKChannelMessageHandler_init (int64_t o, .handle_channel_ready = handle_channel_ready_LDKChannelMessageHandler_jcall, .handle_shutdown = handle_shutdown_LDKChannelMessageHandler_jcall, .handle_closing_signed = handle_closing_signed_LDKChannelMessageHandler_jcall, + .handle_stfu = handle_stfu_LDKChannelMessageHandler_jcall, + .handle_splice = handle_splice_LDKChannelMessageHandler_jcall, + .handle_splice_ack = handle_splice_ack_LDKChannelMessageHandler_jcall, + .handle_splice_locked = handle_splice_locked_LDKChannelMessageHandler_jcall, .handle_tx_add_input = handle_tx_add_input_LDKChannelMessageHandler_jcall, .handle_tx_add_output = handle_tx_add_output_LDKChannelMessageHandler_jcall, .handle_tx_remove_input = handle_tx_remove_input_LDKChannelMessageHandler_jcall, @@ -13445,6 +14518,66 @@ void CS_LDK_ChannelMessageHandler_handle_closing_signed(int64_t this_arg, int8_ (this_arg_conv->handle_closing_signed)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); } +void CS_LDK_ChannelMessageHandler_handle_stfu(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKStfu msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_stfu)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSplice msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice_ack(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSpliceAck msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice_ack)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice_locked(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSpliceLocked msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice_locked)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + void CS_LDK_ChannelMessageHandler_handle_tx_add_input(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -13822,7 +14955,7 @@ LDKCOption_OffersMessageZ handle_message_LDKOffersMessageHandler_jcall(const voi LDKOffersMessage *message_copy = MALLOC(sizeof(LDKOffersMessage), "LDKOffersMessage"); *message_copy = message; int64_t message_ref = tag_ptr(message_copy, true); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 107, message_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 116, message_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_OffersMessageZ ret_conv = *(LDKCOption_OffersMessageZ*)(ret_ptr); @@ -13831,7 +14964,7 @@ LDKCOption_OffersMessageZ handle_message_LDKOffersMessageHandler_jcall(const voi } LDKCVec_C3Tuple_OffersMessageDestinationBlindedPathZZ release_pending_messages_LDKOffersMessageHandler_jcall(const void* this_arg) { LDKOffersMessageHandler_JCalls *j_calls = (LDKOffersMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 108); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 117); LDKCVec_C3Tuple_OffersMessageDestinationBlindedPathZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -13922,7 +15055,7 @@ LDKCResult_boolLightningErrorZ handle_node_announcement_LDKRoutingMessageHandler msg_var = NodeAnnouncement_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 109, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 118, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13936,7 +15069,7 @@ LDKCResult_boolLightningErrorZ handle_channel_announcement_LDKRoutingMessageHand msg_var = ChannelAnnouncement_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 110, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 119, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13950,7 +15083,7 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc msg_var = ChannelUpdate_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 111, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 120, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13960,7 +15093,7 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel_announcement_LDKRoutingMessageHandler_jcall(const void* this_arg, uint64_t starting_point) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int64_t starting_point_conv = starting_point; - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 112, starting_point_conv); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 121, starting_point_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_conv = *(LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ*)(ret_ptr); @@ -13973,7 +15106,7 @@ LDKNodeAnnouncement get_next_node_announcement_LDKRoutingMessageHandler_jcall(co int64_t starting_point_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(starting_point_var); starting_point_ref = tag_ptr(starting_point_var.inner, starting_point_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 113, starting_point_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 122, starting_point_ref); LDKNodeAnnouncement ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13990,7 +15123,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKRoutingMessageHandler_jcall(const void* t CHECK_INNER_FIELD_ACCESS_OR_NULL(init_var); init_ref = tag_ptr(init_var.inner, init_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 114, (int64_t)their_node_id_arr, init_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 123, (int64_t)their_node_id_arr, init_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -14005,7 +15138,7 @@ LDKCResult_NoneLightningErrorZ handle_reply_channel_range_LDKRoutingMessageHandl int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 115, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 124, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14020,7 +15153,7 @@ LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_LDKRoutingMess int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 116, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 125, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14035,7 +15168,7 @@ LDKCResult_NoneLightningErrorZ handle_query_channel_range_LDKRoutingMessageHandl int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 117, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 126, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14050,7 +15183,7 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 118, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 127, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14059,11 +15192,11 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH } bool processing_queue_high_LDKRoutingMessageHandler_jcall(const void* this_arg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; - return js_invoke_function_b_(j_calls->instance_ptr, 119); + return js_invoke_function_b_(j_calls->instance_ptr, 128); } LDKNodeFeatures provided_node_features_LDKRoutingMessageHandler_jcall(const void* this_arg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 120); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 129); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14074,7 +15207,7 @@ LDKInitFeatures provided_init_features_LDKRoutingMessageHandler_jcall(const void LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 121, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 130, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14313,6 +15446,27 @@ static void LDKOnionMessageHandler_JCalls_free(void* this_arg) { FREE(j_calls); } } +LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ get_and_clear_connections_needed_LDKOnionMessageHandler_jcall(const void* this_arg) { + LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 131); + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret_constr; + ret_constr.datalen = ret->arr_len; + if (ret_constr.datalen > 0) + ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ Elements"); + else + ret_constr.data = NULL; + int64_t* ret_vals = ret->elems; + for (size_t o = 0; o < ret_constr.datalen; o++) { + int64_t ret_conv_40 = ret_vals[o]; + void* ret_conv_40_ptr = untag_ptr(ret_conv_40); + CHECK_ACCESS(ret_conv_40_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ ret_conv_40_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(ret_conv_40_ptr); + FREE(untag_ptr(ret_conv_40)); + ret_constr.data[o] = ret_conv_40_conv; + } + FREE(ret); + return ret_constr; +} void handle_onion_message_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPublicKey peer_node_id, const LDKOnionMessage * msg) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray peer_node_id_arr = init_int8_tArray(33, __LINE__); @@ -14322,13 +15476,13 @@ void handle_onion_message_LDKOnionMessageHandler_jcall(const void* this_arg, LDK msg_var = OnionMessage_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 122, (int64_t)peer_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 132, (int64_t)peer_node_id_arr, msg_ref); } LDKOnionMessage next_onion_message_for_peer_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPublicKey peer_node_id) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray peer_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(peer_node_id_arr->elems, peer_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 123, (int64_t)peer_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 133, (int64_t)peer_node_id_arr); LDKOnionMessage ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14345,7 +15499,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKOnionMessageHandler_jcall(const void* thi CHECK_INNER_FIELD_ACCESS_OR_NULL(init_var); init_ref = tag_ptr(init_var.inner, init_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 124, (int64_t)their_node_id_arr, init_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 134, (int64_t)their_node_id_arr, init_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -14356,11 +15510,15 @@ void peer_disconnected_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPub LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - js_invoke_function_void_l(j_calls->instance_ptr, 125, (int64_t)their_node_id_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 135, (int64_t)their_node_id_arr); +} +void timer_tick_occurred_LDKOnionMessageHandler_jcall(const void* this_arg) { + LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; + js_invoke_function_void_(j_calls->instance_ptr, 136); } LDKNodeFeatures provided_node_features_LDKOnionMessageHandler_jcall(const void* this_arg) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 126); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 137); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14371,7 +15529,7 @@ LDKInitFeatures provided_init_features_LDKOnionMessageHandler_jcall(const void* LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 127, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 138, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14389,10 +15547,12 @@ static inline LDKOnionMessageHandler LDKOnionMessageHandler_init (int64_t o) { LDKOnionMessageHandler ret = { .this_arg = (void*) calls, + .get_and_clear_connections_needed = get_and_clear_connections_needed_LDKOnionMessageHandler_jcall, .handle_onion_message = handle_onion_message_LDKOnionMessageHandler_jcall, .next_onion_message_for_peer = next_onion_message_for_peer_LDKOnionMessageHandler_jcall, .peer_connected = peer_connected_LDKOnionMessageHandler_jcall, .peer_disconnected = peer_disconnected_LDKOnionMessageHandler_jcall, + .timer_tick_occurred = timer_tick_occurred_LDKOnionMessageHandler_jcall, .provided_node_features = provided_node_features_LDKOnionMessageHandler_jcall, .provided_init_features = provided_init_features_LDKOnionMessageHandler_jcall, .free = LDKOnionMessageHandler_JCalls_free, @@ -14404,6 +15564,24 @@ uint64_t CS_LDK_LDKOnionMessageHandler_new(int32_t o) { *res_ptr = LDKOnionMessageHandler_init(o); return tag_ptr(res_ptr, true); } +int64_tArray CS_LDK_OnionMessageHandler_get_and_clear_connections_needed(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageHandler* this_arg_conv = (LDKOnionMessageHandler*)this_arg_ptr; + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret_var = (this_arg_conv->get_and_clear_connections_needed)(this_arg_conv->this_arg); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t o = 0; o < ret_var.datalen; o++) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv_40_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv_40_conv = ret_var.data[o]; + ret_arr_ptr[o] = tag_ptr(ret_conv_40_conv, true); + } + + FREE(ret_var.data); + return ret_arr; +} + void CS_LDK_OnionMessageHandler_handle_onion_message(int64_t this_arg, int8_tArray peer_node_id, int64_t msg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -14460,6 +15638,13 @@ void CS_LDK_OnionMessageHandler_peer_disconnected(int64_t this_arg, int8_tArray (this_arg_conv->peer_disconnected)(this_arg_conv->this_arg, their_node_id_ref); } +void CS_LDK_OnionMessageHandler_timer_tick_occurred(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageHandler* this_arg_conv = (LDKOnionMessageHandler*)this_arg_ptr; + (this_arg_conv->timer_tick_occurred)(this_arg_conv->this_arg); +} + int64_t CS_LDK_OnionMessageHandler_provided_node_features(int64_t this_arg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -14501,7 +15686,7 @@ LDKCResult_COption_TypeZDecodeErrorZ read_LDKCustomMessageReader_jcall(const voi LDKu8slice buffer_var = buffer; int8_tArray buffer_arr = init_int8_tArray(buffer_var.datalen, __LINE__); memcpy(buffer_arr->elems, buffer_var.data, buffer_var.datalen); - uint64_t ret = js_invoke_function_l_sl(j_calls->instance_ptr, 128, message_type_conv, (int64_t)buffer_arr); + uint64_t ret = js_invoke_function_l_sl(j_calls->instance_ptr, 139, message_type_conv, (int64_t)buffer_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_COption_TypeZDecodeErrorZ ret_conv = *(LDKCResult_COption_TypeZDecodeErrorZ*)(ret_ptr); @@ -14559,7 +15744,7 @@ LDKCResult_NoneLightningErrorZ handle_custom_message_LDKCustomMessageHandler_jca *msg_ret = msg; int8_tArray sender_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(sender_node_id_arr->elems, sender_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 129, tag_ptr(msg_ret, true), (int64_t)sender_node_id_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 140, tag_ptr(msg_ret, true), (int64_t)sender_node_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14568,7 +15753,7 @@ LDKCResult_NoneLightningErrorZ handle_custom_message_LDKCustomMessageHandler_jca } LDKCVec_C2Tuple_PublicKeyTypeZZ get_and_clear_pending_msg_LDKCustomMessageHandler_jcall(const void* this_arg) { LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 130); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 141); LDKCVec_C2Tuple_PublicKeyTypeZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -14589,7 +15774,7 @@ LDKCVec_C2Tuple_PublicKeyTypeZZ get_and_clear_pending_msg_LDKCustomMessageHandle } LDKNodeFeatures provided_node_features_LDKCustomMessageHandler_jcall(const void* this_arg) { LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 131); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 142); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14600,7 +15785,7 @@ LDKInitFeatures provided_init_features_LDKCustomMessageHandler_jcall(const void* LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 132, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 143, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14710,7 +15895,7 @@ LDKCOption_OnionMessageContentsZ handle_custom_message_LDKCustomOnionMessageHand LDKCustomOnionMessageHandler_JCalls *j_calls = (LDKCustomOnionMessageHandler_JCalls*) this_arg; LDKOnionMessageContents* msg_ret = MALLOC(sizeof(LDKOnionMessageContents), "LDKOnionMessageContents"); *msg_ret = msg; - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 133, tag_ptr(msg_ret, true)); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 144, tag_ptr(msg_ret, true)); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_OnionMessageContentsZ ret_conv = *(LDKCOption_OnionMessageContentsZ*)(ret_ptr); @@ -14723,7 +15908,7 @@ LDKCResult_COption_OnionMessageContentsZDecodeErrorZ read_custom_message_LDKCust LDKu8slice buffer_var = buffer; int8_tArray buffer_arr = init_int8_tArray(buffer_var.datalen, __LINE__); memcpy(buffer_arr->elems, buffer_var.data, buffer_var.datalen); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 134, message_type_conv, (int64_t)buffer_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 145, message_type_conv, (int64_t)buffer_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_COption_OnionMessageContentsZDecodeErrorZ ret_conv = *(LDKCResult_COption_OnionMessageContentsZDecodeErrorZ*)(ret_ptr); @@ -14732,7 +15917,7 @@ LDKCResult_COption_OnionMessageContentsZDecodeErrorZ read_custom_message_LDKCust } LDKCVec_C3Tuple_OnionMessageContentsDestinationBlindedPathZZ release_pending_custom_messages_LDKCustomOnionMessageHandler_jcall(const void* this_arg) { LDKCustomOnionMessageHandler_JCalls *j_calls = (LDKCustomOnionMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 135); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 146); LDKCVec_C3Tuple_OnionMessageContentsDestinationBlindedPathZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -14838,21 +16023,21 @@ uintptr_t send_data_LDKSocketDescriptor_jcall(void* this_arg, LDKu8slice data, b int8_tArray data_arr = init_int8_tArray(data_var.datalen, __LINE__); memcpy(data_arr->elems, data_var.data, data_var.datalen); jboolean resume_read_conv = resume_read; - return js_invoke_function_l_lb(j_calls->instance_ptr, 136, (int64_t)data_arr, resume_read_conv); + return js_invoke_function_l_lb(j_calls->instance_ptr, 147, (int64_t)data_arr, resume_read_conv); } void disconnect_socket_LDKSocketDescriptor_jcall(void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; - js_invoke_function_void_(j_calls->instance_ptr, 137); + js_invoke_function_void_(j_calls->instance_ptr, 148); } 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_b_l(j_calls->instance_ptr, 138, tag_ptr(other_arg_clone, true)); + return js_invoke_function_b_l(j_calls->instance_ptr, 149, tag_ptr(other_arg_clone, true)); } uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; - return js_invoke_function_l_(j_calls->instance_ptr, 139); + return js_invoke_function_l_(j_calls->instance_ptr, 150); } static void LDKSocketDescriptor_JCalls_cloned(LDKSocketDescriptor* new_obj) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) new_obj->this_arg; @@ -15034,7 +16219,7 @@ static void LDKScore_JCalls_free(void* this_arg) { } LDKCVec_u8Z write_LDKScore_jcall(const void* this_arg) { LDKScore_JCalls *j_calls = (LDKScore_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 140); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 151); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -15079,93 +16264,6 @@ int8_tArray CS_LDK_Score_write(int64_t this_arg) { return ret_arr; } -typedef struct LDKMessageRouter_JCalls { - atomic_size_t refcnt; - uint32_t instance_ptr; -} LDKMessageRouter_JCalls; -static void LDKMessageRouter_JCalls_free(void* this_arg) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; - if (atomic_fetch_sub_explicit(&j_calls->refcnt, 1, memory_order_acquire) == 1) { - FREE(j_calls); - } -} -LDKCResult_OnionMessagePathNoneZ find_path_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey sender, LDKCVec_PublicKeyZ peers, LDKDestination destination) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; - int8_tArray sender_arr = init_int8_tArray(33, __LINE__); - memcpy(sender_arr->elems, sender.compressed_form, 33); - LDKCVec_PublicKeyZ peers_var = peers; - ptrArray peers_arr = NULL; - peers_arr = init_ptrArray(peers_var.datalen, __LINE__); - int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); - for (size_t i = 0; i < peers_var.datalen; i++) { - int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); - memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); - peers_arr_ptr[i] = peers_conv_8_arr; - } - - FREE(peers_var.data); - LDKDestination *destination_copy = MALLOC(sizeof(LDKDestination), "LDKDestination"); - *destination_copy = destination; - int64_t destination_ref = tag_ptr(destination_copy, true); - uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 141, (int64_t)sender_arr, (int64_t)peers_arr, destination_ref); - void* ret_ptr = untag_ptr(ret); - CHECK_ACCESS(ret_ptr); - LDKCResult_OnionMessagePathNoneZ ret_conv = *(LDKCResult_OnionMessagePathNoneZ*)(ret_ptr); - FREE(untag_ptr(ret)); - return ret_conv; -} -static void LDKMessageRouter_JCalls_cloned(LDKMessageRouter* new_obj) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) new_obj->this_arg; - atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); -} -static inline LDKMessageRouter LDKMessageRouter_init (int64_t o) { - LDKMessageRouter_JCalls *calls = MALLOC(sizeof(LDKMessageRouter_JCalls), "LDKMessageRouter_JCalls"); - atomic_init(&calls->refcnt, 1); - calls->instance_ptr = o; - - LDKMessageRouter ret = { - .this_arg = (void*) calls, - .find_path = find_path_LDKMessageRouter_jcall, - .free = LDKMessageRouter_JCalls_free, - }; - return ret; -} -uint64_t CS_LDK_LDKMessageRouter_new(int32_t o) { - LDKMessageRouter *res_ptr = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); - *res_ptr = LDKMessageRouter_init(o); - return tag_ptr(res_ptr, true); -} -int64_t CS_LDK_MessageRouter_find_path(int64_t this_arg, int8_tArray sender, ptrArray peers, int64_t destination) { - void* this_arg_ptr = untag_ptr(this_arg); - if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } - LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; - LDKPublicKey sender_ref; - CHECK(sender->arr_len == 33); - memcpy(sender_ref.compressed_form, sender->elems, 33); FREE(sender); - LDKCVec_PublicKeyZ peers_constr; - peers_constr.datalen = peers->arr_len; - if (peers_constr.datalen > 0) - peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); - else - peers_constr.data = NULL; - int8_tArray* peers_vals = (void*) peers->elems; - for (size_t i = 0; i < peers_constr.datalen; i++) { - int8_tArray peers_conv_8 = peers_vals[i]; - LDKPublicKey peers_conv_8_ref; - CHECK(peers_conv_8->arr_len == 33); - memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); - peers_constr.data[i] = peers_conv_8_ref; - } - FREE(peers); - void* destination_ptr = untag_ptr(destination); - CHECK_ACCESS(destination_ptr); - LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); - destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = (this_arg_conv->find_path)(this_arg_conv->this_arg, sender_ref, peers_constr, destination_conv); - return tag_ptr(ret_conv, true); -} - typedef struct LDKCoinSelectionSource_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -15205,20 +16303,20 @@ LDKCResult_CoinSelectionNoneZ select_confirmed_utxos_LDKCoinSelectionSource_jcal FREE(must_pay_to_var.data); int32_t target_feerate_sat_per_1000_weight_conv = target_feerate_sat_per_1000_weight; - uint64_t ret = js_invoke_function_l_llli(j_calls->instance_ptr, 142, (int64_t)claim_id_arr, (int64_t)must_spend_arr, (int64_t)must_pay_to_arr, target_feerate_sat_per_1000_weight_conv); + uint64_t ret = js_invoke_function_l_llli(j_calls->instance_ptr, 152, (int64_t)claim_id_arr, (int64_t)must_spend_arr, (int64_t)must_pay_to_arr, target_feerate_sat_per_1000_weight_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CoinSelectionNoneZ ret_conv = *(LDKCResult_CoinSelectionNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_TransactionNoneZ sign_tx_LDKCoinSelectionSource_jcall(const void* this_arg, LDKTransaction tx) { +LDKCResult_TransactionNoneZ sign_psbt_LDKCoinSelectionSource_jcall(const void* this_arg, LDKCVec_u8Z psbt) { LDKCoinSelectionSource_JCalls *j_calls = (LDKCoinSelectionSource_JCalls*) this_arg; - LDKTransaction tx_var = tx; - int8_tArray tx_arr = init_int8_tArray(tx_var.datalen, __LINE__); - memcpy(tx_arr->elems, tx_var.data, tx_var.datalen); - Transaction_free(tx_var); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 143, (int64_t)tx_arr); + LDKCVec_u8Z psbt_var = psbt; + int8_tArray psbt_arr = init_int8_tArray(psbt_var.datalen, __LINE__); + memcpy(psbt_arr->elems, psbt_var.data, psbt_var.datalen); + CVec_u8Z_free(psbt_var); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 153, (int64_t)psbt_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_TransactionNoneZ ret_conv = *(LDKCResult_TransactionNoneZ*)(ret_ptr); @@ -15237,7 +16335,7 @@ static inline LDKCoinSelectionSource LDKCoinSelectionSource_init (int64_t o) { LDKCoinSelectionSource ret = { .this_arg = (void*) calls, .select_confirmed_utxos = select_confirmed_utxos_LDKCoinSelectionSource_jcall, - .sign_tx = sign_tx_LDKCoinSelectionSource_jcall, + .sign_psbt = sign_psbt_LDKCoinSelectionSource_jcall, .free = LDKCoinSelectionSource_JCalls_free, }; return ret; @@ -15292,17 +16390,16 @@ int64_t CS_LDK_CoinSelectionSource_select_confirmed_utxos(int64_t this_arg, int return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CoinSelectionSource_sign_tx(int64_t this_arg, int8_tArray tx) { +int64_t CS_LDK_CoinSelectionSource_sign_psbt(int64_t this_arg, int8_tArray psbt) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKCoinSelectionSource* this_arg_conv = (LDKCoinSelectionSource*)this_arg_ptr; - LDKTransaction tx_ref; - tx_ref.datalen = tx->arr_len; - tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); - memcpy(tx_ref.data, tx->elems, tx_ref.datalen); FREE(tx); - tx_ref.data_is_owned = true; + LDKCVec_u8Z psbt_ref; + psbt_ref.datalen = psbt->arr_len; + psbt_ref.data = MALLOC(psbt_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(psbt_ref.data, psbt->elems, psbt_ref.datalen); FREE(psbt); LDKCResult_TransactionNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_TransactionNoneZ), "LDKCResult_TransactionNoneZ"); - *ret_conv = (this_arg_conv->sign_tx)(this_arg_conv->this_arg, tx_ref); + *ret_conv = (this_arg_conv->sign_psbt)(this_arg_conv->this_arg, psbt_ref); return tag_ptr(ret_conv, true); } @@ -15318,7 +16415,7 @@ static void LDKWalletSource_JCalls_free(void* this_arg) { } LDKCResult_CVec_UtxoZNoneZ list_confirmed_utxos_LDKWalletSource_jcall(const void* this_arg) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 144); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 154); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_UtxoZNoneZ ret_conv = *(LDKCResult_CVec_UtxoZNoneZ*)(ret_ptr); @@ -15327,20 +16424,20 @@ LDKCResult_CVec_UtxoZNoneZ list_confirmed_utxos_LDKWalletSource_jcall(const void } LDKCResult_CVec_u8ZNoneZ get_change_script_LDKWalletSource_jcall(const void* this_arg) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 145); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 155); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZNoneZ ret_conv = *(LDKCResult_CVec_u8ZNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_TransactionNoneZ sign_tx_LDKWalletSource_jcall(const void* this_arg, LDKTransaction tx) { +LDKCResult_TransactionNoneZ sign_psbt_LDKWalletSource_jcall(const void* this_arg, LDKCVec_u8Z psbt) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - LDKTransaction tx_var = tx; - int8_tArray tx_arr = init_int8_tArray(tx_var.datalen, __LINE__); - memcpy(tx_arr->elems, tx_var.data, tx_var.datalen); - Transaction_free(tx_var); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 146, (int64_t)tx_arr); + LDKCVec_u8Z psbt_var = psbt; + int8_tArray psbt_arr = init_int8_tArray(psbt_var.datalen, __LINE__); + memcpy(psbt_arr->elems, psbt_var.data, psbt_var.datalen); + CVec_u8Z_free(psbt_var); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 156, (int64_t)psbt_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_TransactionNoneZ ret_conv = *(LDKCResult_TransactionNoneZ*)(ret_ptr); @@ -15360,7 +16457,7 @@ static inline LDKWalletSource LDKWalletSource_init (int64_t o) { .this_arg = (void*) calls, .list_confirmed_utxos = list_confirmed_utxos_LDKWalletSource_jcall, .get_change_script = get_change_script_LDKWalletSource_jcall, - .sign_tx = sign_tx_LDKWalletSource_jcall, + .sign_psbt = sign_psbt_LDKWalletSource_jcall, .free = LDKWalletSource_JCalls_free, }; return ret; @@ -15388,17 +16485,16 @@ int64_t CS_LDK_WalletSource_get_change_script(int64_t this_arg) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_WalletSource_sign_tx(int64_t this_arg, int8_tArray tx) { +int64_t CS_LDK_WalletSource_sign_psbt(int64_t this_arg, int8_tArray psbt) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKWalletSource* this_arg_conv = (LDKWalletSource*)this_arg_ptr; - LDKTransaction tx_ref; - tx_ref.datalen = tx->arr_len; - tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); - memcpy(tx_ref.data, tx->elems, tx_ref.datalen); FREE(tx); - tx_ref.data_is_owned = true; + LDKCVec_u8Z psbt_ref; + psbt_ref.datalen = psbt->arr_len; + psbt_ref.data = MALLOC(psbt_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(psbt_ref.data, psbt->elems, psbt_ref.datalen); FREE(psbt); LDKCResult_TransactionNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_TransactionNoneZ), "LDKCResult_TransactionNoneZ"); - *ret_conv = (this_arg_conv->sign_tx)(this_arg_conv->this_arg, tx_ref); + *ret_conv = (this_arg_conv->sign_psbt)(this_arg_conv->this_arg, psbt_ref); return tag_ptr(ret_conv, true); } @@ -15498,6 +16594,58 @@ int8_tArray CS_LDK_U128_new(int8_tArray le_bytes) { return ret_arr; } +int64_t CS_LDK_WitnessProgram_new(int8_t version, int8_tArray program) { + + LDKCVec_u8Z program_ref; + program_ref.datalen = program->arr_len; + program_ref.data = MALLOC(program_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(program_ref.data, program->elems, program_ref.datalen); FREE(program); + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_new((LDKWitnessVersion){ ._0 = version }, program_ref); + return tag_ptr(ret_ref, true); +} + +int8_t CS_LDK_WitnessProgram_get_version(int64_t prog) { + LDKWitnessProgram* prog_conv = (LDKWitnessProgram*)untag_ptr(prog); + uint8_t ret_val = WitnessProgram_get_version(prog_conv)._0; + return ret_val; +} + +int8_tArray CS_LDK_WitnessProgram_get_program(int64_t prog) { + LDKWitnessProgram* prog_conv = (LDKWitnessProgram*)untag_ptr(prog); + LDKu8slice ret_var = WitnessProgram_get_program(prog_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +static inline uint64_t WitnessProgram_clone_ptr(LDKWitnessProgram *NONNULL_PTR arg) { + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_clone(arg); + return tag_ptr(ret_ref, true); +} +int64_t CS_LDK_WitnessProgram_clone_ptr(int64_t arg) { + LDKWitnessProgram* arg_conv = (LDKWitnessProgram*)untag_ptr(arg); + int64_t ret_conv = WitnessProgram_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_WitnessProgram_clone(int64_t orig) { + LDKWitnessProgram* orig_conv = (LDKWitnessProgram*)untag_ptr(orig); + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_clone(orig_conv); + return tag_ptr(ret_ref, true); +} + +void CS_LDK_WitnessProgram_free(int64_t o) { + if (!ptr_is_owned(o)) return; + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKWitnessProgram o_conv = *(LDKWitnessProgram*)(o_ptr); + FREE(untag_ptr(o)); + WitnessProgram_free(o_conv); +} + int64_t CS_LDK_BigEndianScalar_new(int8_tArray big_endian_bytes) { LDKThirtyTwoBytes big_endian_bytes_ref; CHECK(big_endian_bytes->arr_len == 32); @@ -15554,15 +16702,6 @@ void CS_LDK_Witness_free(int8_tArray _res) { Witness_free(_res_ref); } -void CS_LDK_TxIn_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKTxIn _res_conv = *(LDKTxIn*)(_res_ptr); - FREE(untag_ptr(_res)); - TxIn_free(_res_conv); -} - int64_t CS_LDK_TxIn_new(int8_tArray witness, int8_tArray script_sig, int32_t sequence, int8_tArray previous_txid, int32_t previous_vout) { LDKWitness witness_ref; witness_ref.datalen = witness->arr_len; @@ -15581,6 +16720,51 @@ int64_t CS_LDK_TxIn_new(int8_tArray witness, int8_tArray script_sig, int32_t se return tag_ptr(ret_ref, true); } +int8_tArray CS_LDK_TxIn_get_witness(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + LDKWitness ret_var = TxIn_get_witness(txin_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + Witness_free(ret_var); + return ret_arr; +} + +int8_tArray CS_LDK_TxIn_get_script_sig(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + LDKu8slice ret_var = TxIn_get_script_sig(txin_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +int32_t CS_LDK_TxIn_get_sequence(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int32_t ret_conv = TxIn_get_sequence(txin_conv); + return ret_conv; +} + +int8_tArray CS_LDK_TxIn_get_previous_txid(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, TxIn_get_previous_txid(txin_conv).data, 32); + return ret_arr; +} + +int32_t CS_LDK_TxIn_get_previous_vout(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int32_t ret_conv = TxIn_get_previous_vout(txin_conv); + return ret_conv; +} + +void CS_LDK_TxIn_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKTxIn _res_conv = *(LDKTxIn*)(_res_ptr); + FREE(untag_ptr(_res)); + TxIn_free(_res_conv); +} + int64_t CS_LDK_TxOut_new(int8_tArray script_pubkey, int64_t value) { LDKCVec_u8Z script_pubkey_ref; script_pubkey_ref.datalen = script_pubkey->arr_len; @@ -15591,6 +16775,20 @@ int64_t CS_LDK_TxOut_new(int8_tArray script_pubkey, int64_t value) { return tag_ptr(ret_ref, true); } +int8_tArray CS_LDK_TxOut_get_script_pubkey(int64_t txout) { + LDKTxOut* txout_conv = (LDKTxOut*)untag_ptr(txout); + LDKu8slice ret_var = TxOut_get_script_pubkey(txout_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +int64_t CS_LDK_TxOut_get_value(int64_t txout) { + LDKTxOut* txout_conv = (LDKTxOut*)untag_ptr(txout); + int64_t ret_conv = TxOut_get_value(txout_conv); + return ret_conv; +} + void CS_LDK_TxOut_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); @@ -16568,89 +17766,89 @@ int64_t CS_LDK_COption_u32Z_clone(int64_t orig) { return ret_ref; } -static inline uint64_t C2Tuple_CVec_u8ZusizeZ_clone_ptr(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR arg) { - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_clone(arg); +static inline uint64_t C2Tuple_CVec_u8Zu64Z_clone_ptr(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR arg) { + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone_ptr(int64_t arg) { - LDKC2Tuple_CVec_u8ZusizeZ* arg_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_CVec_u8ZusizeZ_clone_ptr(arg_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_clone_ptr(int64_t arg) { + LDKC2Tuple_CVec_u8Zu64Z* arg_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_CVec_u8Zu64Z_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone(int64_t orig) { - LDKC2Tuple_CVec_u8ZusizeZ* orig_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(orig); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_clone(orig_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_clone(int64_t orig) { + LDKC2Tuple_CVec_u8Zu64Z* orig_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(orig); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_new(int8_tArray a, int64_t b) { LDKCVec_u8Z a_ref; a_ref.datalen = a->arr_len; a_ref.data = MALLOC(a_ref.datalen, "LDKCVec_u8Z Bytes"); memcpy(a_ref.data, a->elems, a_ref.datalen); FREE(a); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_new(a_ref, b); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_new(a_ref, b); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_CVec_u8ZusizeZ_free(int64_t _res) { +void CS_LDK_C2Tuple_CVec_u8Zu64Z_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_CVec_u8ZusizeZ _res_conv = *(LDKC2Tuple_CVec_u8ZusizeZ*)(_res_ptr); + LDKC2Tuple_CVec_u8Zu64Z _res_conv = *(LDKC2Tuple_CVec_u8Zu64Z*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_CVec_u8ZusizeZ_free(_res_conv); + C2Tuple_CVec_u8Zu64Z_free(_res_conv); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(int64_t o) { +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); - LDKC2Tuple_CVec_u8ZusizeZ o_conv = *(LDKC2Tuple_CVec_u8ZusizeZ*)(o_ptr); - o_conv = C2Tuple_CVec_u8ZusizeZ_clone((LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(o)); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(o_conv); + LDKC2Tuple_CVec_u8Zu64Z o_conv = *(LDKC2Tuple_CVec_u8Zu64Z*)(o_ptr); + o_conv = C2Tuple_CVec_u8Zu64Z_clone((LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(o)); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err() { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err(); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err() { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err(); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* o_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(int64_t o) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* o_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(int64_t _res) { +void CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ _res_conv = *(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)(_res_ptr); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ _res_conv = *(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(_res_conv); + CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(_res_conv); } -static inline uint64_t CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR arg) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(arg); +static inline uint64_t CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR arg) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* arg_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* arg_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(int64_t orig) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* orig_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(orig); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(orig_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(int64_t orig) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* orig_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(orig); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -16807,173 +18005,6 @@ int64_t CS_LDK_CResult_NoneNoneZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -void CS_LDK_CVec_ECDSASignatureZ_free(ptrArray _res) { - LDKCVec_ECDSASignatureZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); - else - _res_constr.data = NULL; - int8_tArray* _res_vals = (void*) _res->elems; - for (size_t i = 0; i < _res_constr.datalen; i++) { - int8_tArray _res_conv_8 = _res_vals[i]; - LDKECDSASignature _res_conv_8_ref; - CHECK(_res_conv_8->arr_len == 64); - memcpy(_res_conv_8_ref.compact_form, _res_conv_8->elems, 64); FREE(_res_conv_8); - _res_constr.data[i] = _res_conv_8_ref; - } - FREE(_res); - CVec_ECDSASignatureZ_free(_res_constr); -} - -static inline uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(int64_t arg) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* arg_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(int64_t orig) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* orig_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(orig); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(int8_tArray a, ptrArray b) { - LDKECDSASignature a_ref; - CHECK(a->arr_len == 64); - memcpy(a_ref.compact_form, a->elems, 64); FREE(a); - LDKCVec_ECDSASignatureZ b_constr; - b_constr.datalen = b->arr_len; - if (b_constr.datalen > 0) - b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); - else - b_constr.data = NULL; - int8_tArray* b_vals = (void*) b->elems; - for (size_t i = 0; i < b_constr.datalen; i++) { - int8_tArray b_conv_8 = b_vals[i]; - LDKECDSASignature b_conv_8_ref; - CHECK(b_conv_8->arr_len == 64); - memcpy(b_conv_8_ref.compact_form, b_conv_8->elems, 64); FREE(b_conv_8); - b_constr.data[i] = b_conv_8_ref; - } - FREE(b); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(a_ref, b_constr); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(_res_ptr); - FREE(untag_ptr(_res)); - C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(_res_conv); -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(int64_t o) { - void* o_ptr = untag_ptr(o); - CHECK_ACCESS(o_ptr); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(o_ptr); - o_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone((LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(o)); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(o_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err() { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* o_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* arg_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(int64_t orig) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* orig_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(orig); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_ok(int8_tArray o) { - LDKECDSASignature o_ref; - CHECK(o->arr_len == 64); - memcpy(o_ref.compact_form, o->elems, 64); FREE(o); - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_ok(o_ref); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_err() { - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_ECDSASignatureNoneZ_is_ok(int64_t o) { - LDKCResult_ECDSASignatureNoneZ* o_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_ECDSASignatureNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_ECDSASignatureNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_ECDSASignatureNoneZ _res_conv = *(LDKCResult_ECDSASignatureNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_ECDSASignatureNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg) { - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr(int64_t arg) { - LDKCResult_ECDSASignatureNoneZ* arg_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ECDSASignatureNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone(int64_t orig) { - LDKCResult_ECDSASignatureNoneZ* orig_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(orig); - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - int64_t CS_LDK_CResult_PublicKeyNoneZ_ok(int8_tArray o) { LDKPublicKey o_ref; CHECK(o->arr_len == 33); @@ -17182,6 +18213,54 @@ int64_t CS_LDK_CResult_SchnorrSignatureNoneZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_ok(int8_tArray o) { + LDKECDSASignature o_ref; + CHECK(o->arr_len == 64); + memcpy(o_ref.compact_form, o->elems, 64); FREE(o); + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_ok(o_ref); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_err() { + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_ECDSASignatureNoneZ_is_ok(int64_t o) { + LDKCResult_ECDSASignatureNoneZ* o_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_ECDSASignatureNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_ECDSASignatureNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_ECDSASignatureNoneZ _res_conv = *(LDKCResult_ECDSASignatureNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_ECDSASignatureNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg) { + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr(int64_t arg) { + LDKCResult_ECDSASignatureNoneZ* arg_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_ECDSASignatureNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone(int64_t orig) { + LDKCResult_ECDSASignatureNoneZ* orig_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(orig); + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_WriteableEcdsaChannelSignerDecodeErrorZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -17423,84 +18502,172 @@ int64_t CS_LDK_COption_boolZ_clone(int64_t orig) { return ret_ref; } -void CS_LDK_CVec_CVec_u8ZZ_free(ptrArray _res) { - LDKCVec_CVec_u8ZZ _res_constr; +int64_t CS_LDK_CResult_WitnessNoneZ_ok(int8_tArray o) { + LDKWitness o_ref; + o_ref.datalen = o->arr_len; + o_ref.data = MALLOC(o_ref.datalen, "LDKWitness Bytes"); + memcpy(o_ref.data, o->elems, o_ref.datalen); FREE(o); + o_ref.data_is_owned = true; + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_ok(o_ref); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_WitnessNoneZ_err() { + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_WitnessNoneZ_is_ok(int64_t o) { + LDKCResult_WitnessNoneZ* o_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_WitnessNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_WitnessNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_WitnessNoneZ _res_conv = *(LDKCResult_WitnessNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_WitnessNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_WitnessNoneZ_clone_ptr(LDKCResult_WitnessNoneZ *NONNULL_PTR arg) { + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_WitnessNoneZ_clone_ptr(int64_t arg) { + LDKCResult_WitnessNoneZ* arg_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_WitnessNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_WitnessNoneZ_clone(int64_t orig) { + LDKCResult_WitnessNoneZ* orig_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(orig); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_CVec_ECDSASignatureZ_free(ptrArray _res) { + LDKCVec_ECDSASignatureZ _res_constr; _res_constr.datalen = _res->arr_len; if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKCVec_u8Z), "LDKCVec_CVec_u8ZZ Elements"); + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); else _res_constr.data = NULL; int8_tArray* _res_vals = (void*) _res->elems; for (size_t i = 0; i < _res_constr.datalen; i++) { int8_tArray _res_conv_8 = _res_vals[i]; - LDKCVec_u8Z _res_conv_8_ref; - _res_conv_8_ref.datalen = _res_conv_8->arr_len; - _res_conv_8_ref.data = MALLOC(_res_conv_8_ref.datalen, "LDKCVec_u8Z Bytes"); - memcpy(_res_conv_8_ref.data, _res_conv_8->elems, _res_conv_8_ref.datalen); FREE(_res_conv_8); + LDKECDSASignature _res_conv_8_ref; + CHECK(_res_conv_8->arr_len == 64); + memcpy(_res_conv_8_ref.compact_form, _res_conv_8->elems, 64); FREE(_res_conv_8); _res_constr.data[i] = _res_conv_8_ref; } FREE(_res); - CVec_CVec_u8ZZ_free(_res_constr); + CVec_ECDSASignatureZ_free(_res_constr); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_ok(ptrArray o) { - LDKCVec_CVec_u8ZZ o_constr; - o_constr.datalen = o->arr_len; - if (o_constr.datalen > 0) - o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKCVec_u8Z), "LDKCVec_CVec_u8ZZ Elements"); +static inline uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(int64_t arg) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* arg_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(int64_t orig) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* orig_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(orig); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(int8_tArray a, ptrArray b) { + LDKECDSASignature a_ref; + CHECK(a->arr_len == 64); + memcpy(a_ref.compact_form, a->elems, 64); FREE(a); + LDKCVec_ECDSASignatureZ b_constr; + b_constr.datalen = b->arr_len; + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); else - o_constr.data = NULL; - int8_tArray* o_vals = (void*) o->elems; - for (size_t i = 0; i < o_constr.datalen; i++) { - int8_tArray o_conv_8 = o_vals[i]; - LDKCVec_u8Z o_conv_8_ref; - o_conv_8_ref.datalen = o_conv_8->arr_len; - o_conv_8_ref.data = MALLOC(o_conv_8_ref.datalen, "LDKCVec_u8Z Bytes"); - memcpy(o_conv_8_ref.data, o_conv_8->elems, o_conv_8_ref.datalen); FREE(o_conv_8); - o_constr.data[i] = o_conv_8_ref; + b_constr.data = NULL; + int8_tArray* b_vals = (void*) b->elems; + for (size_t i = 0; i < b_constr.datalen; i++) { + int8_tArray b_conv_8 = b_vals[i]; + LDKECDSASignature b_conv_8_ref; + CHECK(b_conv_8->arr_len == 64); + memcpy(b_conv_8_ref.compact_form, b_conv_8->elems, 64); FREE(b_conv_8); + b_constr.data[i] = b_conv_8_ref; } - FREE(o); - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_ok(o_constr); + FREE(b); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(a_ref, b_constr); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_err() { - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_err(); +void CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(_res_conv); +} + +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(o_ptr); + o_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone((LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(o)); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_is_ok(int64_t o) { - LDKCResult_CVec_CVec_u8ZZNoneZ* o_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_CVec_CVec_u8ZZNoneZ_is_ok(o_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err() { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(int64_t o) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* o_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_free(int64_t _res) { +void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_CVec_CVec_u8ZZNoneZ _res_conv = *(LDKCResult_CVec_CVec_u8ZZNoneZ*)(_res_ptr); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_CVec_CVec_u8ZZNoneZ_free(_res_conv); + CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(_res_conv); } -static inline uint64_t CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR arg) { - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone(arg); +static inline uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_CVec_CVec_u8ZZNoneZ* arg_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* arg_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone(int64_t orig) { - LDKCResult_CVec_CVec_u8ZZNoneZ* orig_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(orig); - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone(orig_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(int64_t orig) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* orig_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(orig); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -17759,6 +18926,261 @@ int64_t CS_LDK_CResult_RouteLightningErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +static inline uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(int64_t arg) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* arg_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone(int64_t orig) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* orig_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(orig); + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new(int64_t a, int64_t b) { + LDKBlindedPayInfo a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = BlindedPayInfo_clone(&a_conv); + LDKBlindedPath b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv = BlindedPath_clone(&b_conv); + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_new(a_conv, b_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_BlindedPayInfoBlindedPathZ_free(_res_conv); +} + +void CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(int64_tArray _res) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t l = 0; l < _res_constr.datalen; l++) { + int64_t _res_conv_37 = _res_vals[l]; + void* _res_conv_37_ptr = untag_ptr(_res_conv_37); + CHECK_ACCESS(_res_conv_37_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_conv_37_ptr); + FREE(untag_ptr(_res_conv_37)); + _res_constr.data[l] = _res_conv_37_conv; + } + FREE(_res); + CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(_res_constr); +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(int64_tArray o) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ o_constr; + o_constr.datalen = o->arr_len; + if (o_constr.datalen > 0) + o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); + else + o_constr.data = NULL; + int64_t* o_vals = o->elems; + for (size_t l = 0; l < o_constr.datalen; l++) { + int64_t o_conv_37 = o_vals[l]; + void* o_conv_37_ptr = untag_ptr(o_conv_37); + CHECK_ACCESS(o_conv_37_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ o_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(o_conv_37_ptr); + o_conv_37_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone((LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(o_conv_37)); + o_constr.data[l] = o_conv_37_conv; + } + FREE(o); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(o_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err() { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(int64_t o) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* o_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ _res_conv = *(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR arg) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* arg_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(int64_t orig) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* orig_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(orig); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_CVec_PublicKeyZ_free(ptrArray _res) { + LDKCVec_PublicKeyZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + _res_constr.data = NULL; + int8_tArray* _res_vals = (void*) _res->elems; + for (size_t i = 0; i < _res_constr.datalen; i++) { + int8_tArray _res_conv_8 = _res_vals[i]; + LDKPublicKey _res_conv_8_ref; + CHECK(_res_conv_8->arr_len == 33); + memcpy(_res_conv_8_ref.compressed_form, _res_conv_8->elems, 33); FREE(_res_conv_8); + _res_constr.data[i] = _res_conv_8_ref; + } + FREE(_res); + CVec_PublicKeyZ_free(_res_constr); +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_ok(int64_t o) { + LDKOnionMessagePath o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = OnionMessagePath_clone(&o_conv); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_err() { + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_OnionMessagePathNoneZ_is_ok(int64_t o) { + LDKCResult_OnionMessagePathNoneZ* o_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_OnionMessagePathNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_OnionMessagePathNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_OnionMessagePathNoneZ _res_conv = *(LDKCResult_OnionMessagePathNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_OnionMessagePathNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg) { + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr(int64_t arg) { + LDKCResult_OnionMessagePathNoneZ* arg_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_OnionMessagePathNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone(int64_t orig) { + LDKCResult_OnionMessagePathNoneZ* orig_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(orig); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_ok(int64_tArray o) { + LDKCVec_BlindedPathZ o_constr; + o_constr.datalen = o->arr_len; + if (o_constr.datalen > 0) + o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKBlindedPath), "LDKCVec_BlindedPathZ Elements"); + else + o_constr.data = NULL; + int64_t* o_vals = o->elems; + for (size_t n = 0; n < o_constr.datalen; n++) { + int64_t o_conv_13 = o_vals[n]; + LDKBlindedPath o_conv_13_conv; + o_conv_13_conv.inner = untag_ptr(o_conv_13); + o_conv_13_conv.is_owned = ptr_is_owned(o_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv_13_conv); + o_conv_13_conv = BlindedPath_clone(&o_conv_13_conv); + o_constr.data[n] = o_conv_13_conv; + } + FREE(o); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_ok(o_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_err() { + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_CVec_BlindedPathZNoneZ_is_ok(int64_t o) { + LDKCResult_CVec_BlindedPathZNoneZ* o_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_CVec_BlindedPathZNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_CVec_BlindedPathZNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_CVec_BlindedPathZNoneZ _res_conv = *(LDKCResult_CVec_BlindedPathZNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_CVec_BlindedPathZNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_CVec_BlindedPathZNoneZ_clone_ptr(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR arg) { + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_CVec_BlindedPathZNoneZ* arg_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_CVec_BlindedPathZNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone(int64_t orig) { + LDKCResult_CVec_BlindedPathZNoneZ* orig_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(orig); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_InFlightHtlcsDecodeErrorZ_ok(int64_t o) { LDKInFlightHtlcs o_conv; o_conv.inner = untag_ptr(o); @@ -18159,69 +19581,6 @@ int64_t CS_LDK_CResult_PaymentParametersDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -static inline uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(int64_t arg) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* arg_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone(int64_t orig) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* orig_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(orig); - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new(int64_t a, int64_t b) { - LDKBlindedPayInfo a_conv; - a_conv.inner = untag_ptr(a); - a_conv.is_owned = ptr_is_owned(a); - CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); - a_conv = BlindedPayInfo_clone(&a_conv); - LDKBlindedPath b_conv; - b_conv.inner = untag_ptr(b); - b_conv.is_owned = ptr_is_owned(b); - CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); - b_conv = BlindedPath_clone(&b_conv); - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_new(a_conv, b_conv); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_ptr); - FREE(untag_ptr(_res)); - C2Tuple_BlindedPayInfoBlindedPathZ_free(_res_conv); -} - -void CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(int64_tArray _res) { - LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); - else - _res_constr.data = NULL; - int64_t* _res_vals = _res->elems; - for (size_t l = 0; l < _res_constr.datalen; l++) { - int64_t _res_conv_37 = _res_vals[l]; - void* _res_conv_37_ptr = untag_ptr(_res_conv_37); - CHECK_ACCESS(_res_conv_37_ptr); - LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_conv_37_ptr); - FREE(untag_ptr(_res_conv_37)); - _res_constr.data[l] = _res_conv_37_conv; - } - FREE(_res); - CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(_res_constr); -} - void CS_LDK_CVec_RouteHintZ_free(int64_tArray _res) { LDKCVec_RouteHintZ _res_constr; _res_constr.datalen = _res->arr_len; @@ -18370,25 +19729,6 @@ int64_t CS_LDK_CResult_RouteHintHopDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -void CS_LDK_CVec_PublicKeyZ_free(ptrArray _res) { - LDKCVec_PublicKeyZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); - else - _res_constr.data = NULL; - int8_tArray* _res_vals = (void*) _res->elems; - for (size_t i = 0; i < _res_constr.datalen; i++) { - int8_tArray _res_conv_8 = _res_vals[i]; - LDKPublicKey _res_conv_8_ref; - CHECK(_res_conv_8->arr_len == 33); - memcpy(_res_conv_8_ref.compressed_form, _res_conv_8->elems, 33); FREE(_res_conv_8); - _res_constr.data[i] = _res_conv_8_ref; - } - FREE(_res); - CVec_PublicKeyZ_free(_res_constr); -} - int64_t CS_LDK_CResult_FixedPenaltyScorerDecodeErrorZ_ok(int64_t o) { LDKFixedPenaltyScorer o_conv; o_conv.inner = untag_ptr(o); @@ -18750,64 +20090,64 @@ void CS_LDK_CVec_C2Tuple_usizeTransactionZZ_free(int64_tArray _res) { CVec_C2Tuple_usizeTransactionZZ_free(_res_constr); } -static inline uint64_t C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR arg) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(arg); +static inline uint64_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR arg) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(int64_t arg) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* arg_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(int64_t arg) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* arg_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(int64_t orig) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* orig_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(orig); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(int64_t orig) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* orig_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(orig); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(int8_tArray a, int32_t b, int64_t c) { LDKThirtyTwoBytes a_ref; CHECK(a->arr_len == 32); memcpy(a_ref.data, a->elems, 32); FREE(a); - void* b_ptr = untag_ptr(b); - CHECK_ACCESS(b_ptr); - LDKCOption_ThirtyTwoBytesZ b_conv = *(LDKCOption_ThirtyTwoBytesZ*)(b_ptr); - b_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(b)); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(a_ref, b_conv); + void* c_ptr = untag_ptr(c); + CHECK_ACCESS(c_ptr); + LDKCOption_ThirtyTwoBytesZ c_conv = *(LDKCOption_ThirtyTwoBytesZ*)(c_ptr); + c_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(c)); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(a_ref, b, c_conv); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(int64_t _res) { +void CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ _res_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(_res_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ _res_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(_res_conv); + C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(_res_conv); } -void CS_LDK_CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(int64_tArray _res) { - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ _res_constr; +void CS_LDK_CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(int64_tArray _res) { + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ _res_constr; _res_constr.datalen = _res->arr_len; if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ Elements"); + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ Elements"); else _res_constr.data = NULL; int64_t* _res_vals = _res->elems; - for (size_t x = 0; x < _res_constr.datalen; x++) { - int64_t _res_conv_49 = _res_vals[x]; - void* _res_conv_49_ptr = untag_ptr(_res_conv_49); - CHECK_ACCESS(_res_conv_49_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ _res_conv_49_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(_res_conv_49_ptr); - FREE(untag_ptr(_res_conv_49)); - _res_constr.data[x] = _res_conv_49_conv; + for (size_t c = 0; c < _res_constr.datalen; c++) { + int64_t _res_conv_54 = _res_vals[c]; + void* _res_conv_54_ptr = untag_ptr(_res_conv_54); + CHECK_ACCESS(_res_conv_54_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ _res_conv_54_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(_res_conv_54_ptr); + FREE(untag_ptr(_res_conv_54)); + _res_constr.data[c] = _res_conv_54_conv; } FREE(_res); - CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(_res_constr); + CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(_res_constr); } int64_t CS_LDK_CResult_ChannelMonitorUpdateStatusNoneZ_ok(int32_t o) { @@ -20274,6 +21614,44 @@ int64_t CS_LDK_COption_CVec_SocketAddressZZ_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_ok(int64_t o) { + LDKPendingHTLCInfo o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = PendingHTLCInfo_clone(&o_conv); + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_err(int64_t e) { + LDKInboundHTLCErr e_conv; + e_conv.inner = untag_ptr(e); + e_conv.is_owned = ptr_is_owned(e); + CHECK_INNER_FIELD_ACCESS_OR_NULL(e_conv); + // WARNING: we need a move here but no clone is available for LDKInboundHTLCErr + + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* o_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCInfoInboundHTLCErrZ _res_conv = *(LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCInfoInboundHTLCErrZ_free(_res_conv); +} + void CS_LDK_CVec_HTLCOutputInCommitmentZ_free(int64_tArray _res) { LDKCVec_HTLCOutputInCommitmentZ _res_constr; _res_constr.datalen = _res->arr_len; @@ -21609,6 +22987,217 @@ int64_t CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_ok(int64_t o) { + LDKBlindedForward o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = BlindedForward_clone(&o_conv); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_BlindedForwardDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_BlindedForwardDecodeErrorZ* o_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_BlindedForwardDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_BlindedForwardDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_BlindedForwardDecodeErrorZ _res_conv = *(LDKCResult_BlindedForwardDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_BlindedForwardDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_BlindedForwardDecodeErrorZ_clone_ptr(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_BlindedForwardDecodeErrorZ* arg_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_BlindedForwardDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone(int64_t orig) { + LDKCResult_BlindedForwardDecodeErrorZ* orig_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(orig); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKPendingHTLCRouting o_conv = *(LDKPendingHTLCRouting*)(o_ptr); + o_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(o)); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* o_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCRoutingDecodeErrorZ _res_conv = *(LDKCResult_PendingHTLCRoutingDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCRoutingDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* arg_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone(int64_t orig) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* orig_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(orig); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_ok(int64_t o) { + LDKPendingHTLCInfo o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = PendingHTLCInfo_clone(&o_conv); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* o_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCInfoDecodeErrorZ _res_conv = *(LDKCResult_PendingHTLCInfoDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCInfoDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* arg_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone(int64_t orig) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* orig_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(orig); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_ok(int32_t o) { + LDKBlindedFailure o_conv = LDKBlindedFailure_from_cs(o); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_BlindedFailureDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_BlindedFailureDecodeErrorZ* o_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_BlindedFailureDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_BlindedFailureDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_BlindedFailureDecodeErrorZ _res_conv = *(LDKCResult_BlindedFailureDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_BlindedFailureDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_BlindedFailureDecodeErrorZ_clone_ptr(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_BlindedFailureDecodeErrorZ* arg_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_BlindedFailureDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone(int64_t orig) { + LDKCResult_BlindedFailureDecodeErrorZ* orig_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(orig); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_ChannelShutdownStateDecodeErrorZ_ok(int32_t o) { LDKChannelShutdownState o_conv = LDKChannelShutdownState_from_cs(o); LDKCResult_ChannelShutdownStateDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ChannelShutdownStateDecodeErrorZ), "LDKCResult_ChannelShutdownStateDecodeErrorZ"); @@ -22718,6 +24307,78 @@ void CS_LDK_CVec_C2Tuple_PublicKeyTypeZZ_free(int64_tArray _res) { CVec_C2Tuple_PublicKeyTypeZZ_free(_res_constr); } +static inline uint64_t C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR arg) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(int64_t arg) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* arg_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(int64_t orig) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* orig_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(orig); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_new(int8_tArray a, int64_tArray b) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKCVec_SocketAddressZ b_constr; + b_constr.datalen = b->arr_len; + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKSocketAddress), "LDKCVec_SocketAddressZ Elements"); + else + b_constr.data = NULL; + int64_t* b_vals = b->elems; + for (size_t p = 0; p < b_constr.datalen; p++) { + int64_t b_conv_15 = b_vals[p]; + void* b_conv_15_ptr = untag_ptr(b_conv_15); + CHECK_ACCESS(b_conv_15_ptr); + LDKSocketAddress b_conv_15_conv = *(LDKSocketAddress*)(b_conv_15_ptr); + b_conv_15_conv = SocketAddress_clone((LDKSocketAddress*)untag_ptr(b_conv_15)); + b_constr.data[p] = b_conv_15_conv; + } + FREE(b); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_new(a_ref, b_constr); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ _res_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_PublicKeyCVec_SocketAddressZZ_free(_res_conv); +} + +void CS_LDK_CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(int64_tArray _res) { + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t o = 0; o < _res_constr.datalen; o++) { + int64_t _res_conv_40 = _res_vals[o]; + void* _res_conv_40_ptr = untag_ptr(_res_conv_40); + CHECK_ACCESS(_res_conv_40_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ _res_conv_40_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(_res_conv_40_ptr); + FREE(untag_ptr(_res_conv_40)); + _res_constr.data[o] = _res_conv_40_conv; + } + FREE(_res); + CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(_res_constr); +} + int64_t CS_LDK_COption_OnionMessageContentsZ_some(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -24009,6 +25670,222 @@ int64_t CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_StfuDecodeErrorZ_ok(int64_t o) { + LDKStfu o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = Stfu_clone(&o_conv); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_StfuDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_StfuDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_StfuDecodeErrorZ* o_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_StfuDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_StfuDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_StfuDecodeErrorZ _res_conv = *(LDKCResult_StfuDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_StfuDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_StfuDecodeErrorZ_clone_ptr(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_StfuDecodeErrorZ* arg_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_StfuDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_StfuDecodeErrorZ_clone(int64_t orig) { + LDKCResult_StfuDecodeErrorZ* orig_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(orig); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_ok(int64_t o) { + LDKSplice o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = Splice_clone(&o_conv); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceDecodeErrorZ* o_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceDecodeErrorZ _res_conv = *(LDKCResult_SpliceDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceDecodeErrorZ_clone_ptr(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceDecodeErrorZ* arg_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceDecodeErrorZ* orig_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_ok(int64_t o) { + LDKSpliceAck o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = SpliceAck_clone(&o_conv); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceAckDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceAckDecodeErrorZ* o_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceAckDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceAckDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceAckDecodeErrorZ _res_conv = *(LDKCResult_SpliceAckDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceAckDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceAckDecodeErrorZ_clone_ptr(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceAckDecodeErrorZ* arg_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceAckDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceAckDecodeErrorZ* orig_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_ok(int64_t o) { + LDKSpliceLocked o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = SpliceLocked_clone(&o_conv); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceLockedDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceLockedDecodeErrorZ* o_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceLockedDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceLockedDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceLockedDecodeErrorZ _res_conv = *(LDKCResult_SpliceLockedDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceLockedDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceLockedDecodeErrorZ_clone_ptr(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceLockedDecodeErrorZ* arg_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceLockedDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceLockedDecodeErrorZ* orig_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_TxAddInputDecodeErrorZ_ok(int64_t o) { LDKTxAddInput o_conv; o_conv.inner = untag_ptr(o); @@ -25413,6 +27290,60 @@ int64_t CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_ok(int64_t o) { + LDKOnionPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = OnionPacket_clone(&o_conv); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_OnionPacketDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_OnionPacketDecodeErrorZ* o_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_OnionPacketDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_OnionPacketDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_OnionPacketDecodeErrorZ _res_conv = *(LDKCResult_OnionPacketDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_OnionPacketDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_OnionPacketDecodeErrorZ_clone_ptr(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_OnionPacketDecodeErrorZ* arg_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_OnionPacketDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_clone(int64_t orig) { + LDKCResult_OnionPacketDecodeErrorZ* orig_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(orig); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_UpdateAddHTLCDecodeErrorZ_ok(int64_t o) { LDKUpdateAddHTLC o_conv; o_conv.inner = untag_ptr(o); @@ -25521,6 +27452,60 @@ int64_t CS_LDK_CResult_OnionMessageDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_ok(int64_t o) { + LDKFinalOnionHopData o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = FinalOnionHopData_clone(&o_conv); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* o_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_FinalOnionHopDataDecodeErrorZ _res_conv = *(LDKCResult_FinalOnionHopDataDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_FinalOnionHopDataDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* arg_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone(int64_t orig) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* orig_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(orig); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_PingDecodeErrorZ_ok(int64_t o) { LDKPing o_conv; o_conv.inner = untag_ptr(o); @@ -28778,58 +30763,40 @@ int64_t CS_LDK_CResult_UntrustedStringDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_ok(int64_t o) { - LDKReceiveTlvs o_conv; - o_conv.inner = untag_ptr(o); - o_conv.is_owned = ptr_is_owned(o); - CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); - o_conv = ReceiveTlvs_clone(&o_conv); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_ok(o_conv); +static inline uint64_t C2Tuple__u832u16Z_clone_ptr(LDKC2Tuple__u832u16Z *NONNULL_PTR arg) { + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_clone(arg); return tag_ptr(ret_conv, true); } +int64_t CS_LDK_C2Tuple__u832u16Z_clone_ptr(int64_t arg) { + LDKC2Tuple__u832u16Z* arg_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(arg); + int64_t ret_conv = C2Tuple__u832u16Z_clone_ptr(arg_conv); + return ret_conv; +} -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); - e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_err(e_conv); +int64_t CS_LDK_C2Tuple__u832u16Z_clone(int64_t orig) { + LDKC2Tuple__u832u16Z* orig_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(orig); + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_clone(orig_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_is_ok(int64_t o) { - LDKCResult_ReceiveTlvsDecodeErrorZ* o_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_ReceiveTlvsDecodeErrorZ_is_ok(o_conv); - return ret_conv; +int64_t CS_LDK_C2Tuple__u832u16Z_new(int8_tArray a, int16_t b) { + LDKThirtyTwoBytes a_ref; + CHECK(a->arr_len == 32); + memcpy(a_ref.data, a->elems, 32); FREE(a); + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_new(a_ref, b); + return tag_ptr(ret_conv, true); } -void CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_free(int64_t _res) { +void CS_LDK_C2Tuple__u832u16Z_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_ReceiveTlvsDecodeErrorZ _res_conv = *(LDKCResult_ReceiveTlvsDecodeErrorZ*)(_res_ptr); + LDKC2Tuple__u832u16Z _res_conv = *(LDKC2Tuple__u832u16Z*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_ReceiveTlvsDecodeErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR arg) { - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(int64_t arg) { - LDKCResult_ReceiveTlvsDecodeErrorZ* arg_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone(int64_t orig) { - LDKCResult_ReceiveTlvsDecodeErrorZ* orig_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(orig); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone(orig_conv); - return tag_ptr(ret_conv, true); + C2Tuple__u832u16Z_free(_res_conv); } int64_t CS_LDK_CResult_PaymentRelayDecodeErrorZ_ok(int64_t o) { @@ -28940,169 +30907,98 @@ int64_t CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_ok(int8_tArray o) { - LDKThirtyTwoBytes o_ref; - CHECK(o->arr_len == 32); - memcpy(o_ref.data, o->elems, 32); FREE(o); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_ok(o_ref); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKPaymentError e_conv = *(LDKPaymentError*)(e_ptr); - e_conv = PaymentError_clone((LDKPaymentError*)untag_ptr(e)); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_err(e_conv); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(int64_t o) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* o_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_ThirtyTwoBytesPaymentErrorZ _res_conv = *(LDKCResult_ThirtyTwoBytesPaymentErrorZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_ThirtyTwoBytesPaymentErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR arg) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone(arg); +static inline uint64_t C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR arg) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(int64_t arg) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* arg_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(int64_t arg) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* arg_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone(int64_t orig) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* orig_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(orig); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(int64_t orig) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* orig_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(orig); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_NonePaymentErrorZ_ok() { - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_ok(); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_NonePaymentErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKPaymentError e_conv = *(LDKPaymentError*)(e_ptr); - e_conv = PaymentError_clone((LDKPaymentError*)untag_ptr(e)); - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_err(e_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(int8_tArray a, int64_t b, int64_t c) { + LDKThirtyTwoBytes a_ref; + CHECK(a->arr_len == 32); + memcpy(a_ref.data, a->elems, 32); FREE(a); + LDKRecipientOnionFields b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv = RecipientOnionFields_clone(&b_conv); + LDKRouteParameters c_conv; + c_conv.inner = untag_ptr(c); + c_conv.is_owned = ptr_is_owned(c); + CHECK_INNER_FIELD_ACCESS_OR_NULL(c_conv); + c_conv = RouteParameters_clone(&c_conv); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(a_ref, b_conv, c_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_NonePaymentErrorZ_is_ok(int64_t o) { - LDKCResult_NonePaymentErrorZ* o_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_NonePaymentErrorZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_NonePaymentErrorZ_free(int64_t _res) { +void CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_NonePaymentErrorZ _res_conv = *(LDKCResult_NonePaymentErrorZ*)(_res_ptr); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ _res_conv = *(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_NonePaymentErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_NonePaymentErrorZ_clone_ptr(LDKCResult_NonePaymentErrorZ *NONNULL_PTR arg) { - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_NonePaymentErrorZ_clone_ptr(int64_t arg) { - LDKCResult_NonePaymentErrorZ* arg_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_NonePaymentErrorZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_NonePaymentErrorZ_clone(int64_t orig) { - LDKCResult_NonePaymentErrorZ* orig_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(orig); - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_clone(orig_conv); - return tag_ptr(ret_conv, true); + C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(_res_conv); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(int64_tArray o) { - LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ o_constr; - o_constr.datalen = o->arr_len; - if (o_constr.datalen > 0) - o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ), "LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ Elements"); - else - o_constr.data = NULL; - int64_t* o_vals = o->elems; - for (size_t o = 0; o < o_constr.datalen; o++) { - int64_t o_conv_40 = o_vals[o]; - void* o_conv_40_ptr = untag_ptr(o_conv_40); - CHECK_ACCESS(o_conv_40_ptr); - LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ o_conv_40_conv = *(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ*)(o_conv_40_ptr); - o_conv_40_conv = C2Tuple_ThirtyTwoBytesThirtyTwoBytesZ_clone((LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ*)untag_ptr(o_conv_40)); - o_constr.data[o] = o_conv_40_conv; - } - FREE(o); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(o_constr); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ o_conv = *(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)(o_ptr); + o_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone((LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(o)); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKProbingError e_conv = *(LDKProbingError*)(e_ptr); - e_conv = ProbingError_clone((LDKProbingError*)untag_ptr(e)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(e_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err() { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err(); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(int64_t o) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* o_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(int64_t o) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* o_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(int64_t _res) { +void CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ _res_conv = *(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)(_res_ptr); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ _res_conv = *(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(_res_conv); + CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(_res_conv); } -static inline uint64_t CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR arg) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(arg); +static inline uint64_t CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR arg) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(int64_t arg) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* arg_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* arg_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(int64_t orig) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* orig_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(orig); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(orig_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(int64_t orig) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* orig_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(orig); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -29203,75 +31099,25 @@ int64_t CS_LDK_CResult_TxOutUtxoLookupErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_ok(int64_t o) { - LDKOnionMessagePath o_conv; - o_conv.inner = untag_ptr(o); - o_conv.is_owned = ptr_is_owned(o); - CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); - o_conv = OnionMessagePath_clone(&o_conv); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_ok(o_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_err() { - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_OnionMessagePathNoneZ_is_ok(int64_t o) { - LDKCResult_OnionMessagePathNoneZ* o_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_OnionMessagePathNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_OnionMessagePathNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_OnionMessagePathNoneZ _res_conv = *(LDKCResult_OnionMessagePathNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_OnionMessagePathNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg) { - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr(int64_t arg) { - LDKCResult_OnionMessagePathNoneZ* arg_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_OnionMessagePathNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone(int64_t orig) { - LDKCResult_OnionMessagePathNoneZ* orig_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(orig); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -static inline uint64_t C2Tuple_PublicKeyOnionMessageZ_clone_ptr(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR arg) { - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone(arg); +static inline uint64_t C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR arg) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone_ptr(int64_t arg) { - LDKC2Tuple_PublicKeyOnionMessageZ* arg_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(int64_t arg) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* arg_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone(int64_t orig) { - LDKC2Tuple_PublicKeyOnionMessageZ* orig_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(orig); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(int64_t orig) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* orig_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(orig); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(int8_tArray a, int64_t b, int64_t c) { LDKPublicKey a_ref; CHECK(a->arr_len == 33); memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); @@ -29280,53 +31126,57 @@ int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_new(int8_tArray a, int64_t b) { b_conv.is_owned = ptr_is_owned(b); CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); b_conv = OnionMessage_clone(&b_conv); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_new(a_ref, b_conv); + void* c_ptr = untag_ptr(c); + CHECK_ACCESS(c_ptr); + LDKCOption_CVec_SocketAddressZZ c_conv = *(LDKCOption_CVec_SocketAddressZZ*)(c_ptr); + c_conv = COption_CVec_SocketAddressZZ_clone((LDKCOption_CVec_SocketAddressZZ*)untag_ptr(c)); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(a_ref, b_conv, c_conv); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_PublicKeyOnionMessageZ_free(int64_t _res) { +void CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_PublicKeyOnionMessageZ _res_conv = *(LDKC2Tuple_PublicKeyOnionMessageZ*)(_res_ptr); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ _res_conv = *(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_PublicKeyOnionMessageZ_free(_res_conv); + C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(_res_conv); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(int64_t o) { +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); - LDKC2Tuple_PublicKeyOnionMessageZ o_conv = *(LDKC2Tuple_PublicKeyOnionMessageZ*)(o_ptr); - o_conv = C2Tuple_PublicKeyOnionMessageZ_clone((LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(o)); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(o_conv); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ o_conv = *(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)(o_ptr); + o_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone((LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(o)); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(int64_t e) { +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(int64_t e) { void* e_ptr = untag_ptr(e); CHECK_ACCESS(e_ptr); LDKSendError e_conv = *(LDKSendError*)(e_ptr); e_conv = SendError_clone((LDKSendError*)untag_ptr(e)); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(e_conv); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(e_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* o_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(int64_t o) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* o_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(int64_t _res) { +void CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ _res_conv = *(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)(_res_ptr); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ _res_conv = *(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(_res_conv); + CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(_res_conv); } int64_t CS_LDK_CResult_PeeledOnionNoneZ_ok(int64_t o) { @@ -29360,35 +31210,39 @@ void CS_LDK_CResult_PeeledOnionNoneZ_free(int64_t _res) { CResult_PeeledOnionNoneZ_free(_res_conv); } -int64_t CS_LDK_CResult_NoneSendErrorZ_ok() { - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = CResult_NoneSendErrorZ_ok(); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKSendSuccess o_conv = *(LDKSendSuccess*)(o_ptr); + o_conv = SendSuccess_clone((LDKSendSuccess*)untag_ptr(o)); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = CResult_SendSuccessSendErrorZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_NoneSendErrorZ_err(int64_t e) { +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_err(int64_t e) { void* e_ptr = untag_ptr(e); CHECK_ACCESS(e_ptr); LDKSendError e_conv = *(LDKSendError*)(e_ptr); e_conv = SendError_clone((LDKSendError*)untag_ptr(e)); - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = CResult_NoneSendErrorZ_err(e_conv); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = CResult_SendSuccessSendErrorZ_err(e_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_NoneSendErrorZ_is_ok(int64_t o) { - LDKCResult_NoneSendErrorZ* o_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_NoneSendErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_SendSuccessSendErrorZ_is_ok(int64_t o) { + LDKCResult_SendSuccessSendErrorZ* o_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SendSuccessSendErrorZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_NoneSendErrorZ_free(int64_t _res) { +void CS_LDK_CResult_SendSuccessSendErrorZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_NoneSendErrorZ _res_conv = *(LDKCResult_NoneSendErrorZ*)(_res_ptr); + LDKCResult_SendSuccessSendErrorZ _res_conv = *(LDKCResult_SendSuccessSendErrorZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_NoneSendErrorZ_free(_res_conv); + CResult_SendSuccessSendErrorZ_free(_res_conv); } int64_t CS_LDK_CResult_BlindedPathNoneZ_ok(int64_t o) { @@ -29490,6 +31344,26 @@ int64_t CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone(int64_t or return tag_ptr(ret_conv, true); } +void CS_LDK_CVec_ForwardNodeZ_free(int64_tArray _res) { + LDKCVec_ForwardNodeZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKForwardNode), "LDKCVec_ForwardNodeZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t n = 0; n < _res_constr.datalen; n++) { + int64_t _res_conv_13 = _res_vals[n]; + LDKForwardNode _res_conv_13_conv; + _res_conv_13_conv.inner = untag_ptr(_res_conv_13); + _res_conv_13_conv.is_owned = ptr_is_owned(_res_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(_res_conv_13_conv); + _res_constr.data[n] = _res_conv_13_conv; + } + FREE(_res); + CVec_ForwardNodeZ_free(_res_constr); +} + int64_t CS_LDK_CResult_BlindedPathDecodeErrorZ_ok(int64_t o) { LDKBlindedPath o_conv; o_conv.inner = untag_ptr(o); @@ -29652,6 +31526,330 @@ int64_t CS_LDK_CResult_InvoiceErrorDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_ok(int64_t o) { + LDKDelayedPaymentBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = DelayedPaymentBasepoint_clone(&o_conv); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* o_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ _res_conv = *(LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_DelayedPaymentBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* arg_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* orig_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_ok(int64_t o) { + LDKDelayedPaymentKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = DelayedPaymentKey_clone(&o_conv); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* o_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_DelayedPaymentKeyDecodeErrorZ _res_conv = *(LDKCResult_DelayedPaymentKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_DelayedPaymentKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* arg_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* orig_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_ok(int64_t o) { + LDKHtlcBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = HtlcBasepoint_clone(&o_conv); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_HtlcBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_HtlcBasepointDecodeErrorZ* o_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_HtlcBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_HtlcBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_HtlcBasepointDecodeErrorZ _res_conv = *(LDKCResult_HtlcBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_HtlcBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_HtlcBasepointDecodeErrorZ_clone_ptr(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_HtlcBasepointDecodeErrorZ* arg_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_HtlcBasepointDecodeErrorZ* orig_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_ok(int64_t o) { + LDKHtlcKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = HtlcKey_clone(&o_conv); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_HtlcKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_HtlcKeyDecodeErrorZ* o_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_HtlcKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_HtlcKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_HtlcKeyDecodeErrorZ _res_conv = *(LDKCResult_HtlcKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_HtlcKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_HtlcKeyDecodeErrorZ_clone_ptr(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_HtlcKeyDecodeErrorZ* arg_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_HtlcKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_HtlcKeyDecodeErrorZ* orig_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_ok(int64_t o) { + LDKRevocationBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = RevocationBasepoint_clone(&o_conv); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_RevocationBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_RevocationBasepointDecodeErrorZ* o_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_RevocationBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_RevocationBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_RevocationBasepointDecodeErrorZ _res_conv = *(LDKCResult_RevocationBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_RevocationBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_RevocationBasepointDecodeErrorZ_clone_ptr(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_RevocationBasepointDecodeErrorZ* arg_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_RevocationBasepointDecodeErrorZ* orig_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_ok(int64_t o) { + LDKRevocationKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = RevocationKey_clone(&o_conv); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_RevocationKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_RevocationKeyDecodeErrorZ* o_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_RevocationKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_RevocationKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_RevocationKeyDecodeErrorZ _res_conv = *(LDKCResult_RevocationKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_RevocationKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_RevocationKeyDecodeErrorZ_clone_ptr(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_RevocationKeyDecodeErrorZ* arg_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_RevocationKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_RevocationKeyDecodeErrorZ* orig_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_COption_FilterZ_some(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -30087,6 +32285,16 @@ int64_t CS_LDK_Hostname_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Hostname_hash(int64_t o) { + LDKHostname o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Hostname_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Hostname_eq(int64_t a, int64_t b) { LDKHostname a_conv; a_conv.inner = untag_ptr(a); @@ -30173,6 +32381,16 @@ int64_t CS_LDK_TransactionU16LenLimited_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TransactionU16LenLimited_hash(int64_t o) { + LDKTransactionU16LenLimited o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TransactionU16LenLimited_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TransactionU16LenLimited_eq(int64_t a, int64_t b) { LDKTransactionU16LenLimited a_conv; a_conv.inner = untag_ptr(a); @@ -30528,6 +32746,16 @@ jboolean CS_LDK_UntrustedString_eq(int64_t a, int64_t b) { return ret_conv; } +int64_t CS_LDK_UntrustedString_hash(int64_t o) { + LDKUntrustedString o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UntrustedString_hash(&o_conv); + return ret_conv; +} + int8_tArray CS_LDK_UntrustedString_write(int64_t obj) { LDKUntrustedString obj_conv; obj_conv.inner = untag_ptr(obj); @@ -30837,6 +33065,54 @@ void CS_LDK_Record_set_level(int64_t this_ptr, int32_t val) { Record_set_level(&this_ptr_conv, val_conv); } +int8_tArray CS_LDK_Record_get_peer_id(int64_t this_ptr) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, Record_get_peer_id(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_Record_set_peer_id(int64_t this_ptr, int8_tArray val) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + Record_set_peer_id(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Record_get_channel_id(int64_t this_ptr) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); + *ret_copy = Record_get_channel_id(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_Record_set_channel_id(int64_t this_ptr, int64_t val) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_ThirtyTwoBytesZ val_conv = *(LDKCOption_ThirtyTwoBytesZ*)(val_ptr); + val_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(val)); + Record_set_channel_id(&this_ptr_conv, val_conv); +} + jstring CS_LDK_Record_get_args(int64_t this_ptr) { LDKRecord this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); @@ -30922,6 +33198,25 @@ void CS_LDK_Record_set_line(int64_t this_ptr, int32_t val) { Record_set_line(&this_ptr_conv, val); } +int64_t CS_LDK_Record_new(int32_t level_arg, int8_tArray peer_id_arg, int64_t channel_id_arg, jstring args_arg, jstring module_path_arg, jstring file_arg, int32_t line_arg) { + LDKLevel level_arg_conv = LDKLevel_from_cs(level_arg); + LDKPublicKey peer_id_arg_ref; + CHECK(peer_id_arg->arr_len == 33); + memcpy(peer_id_arg_ref.compressed_form, peer_id_arg->elems, 33); FREE(peer_id_arg); + void* channel_id_arg_ptr = untag_ptr(channel_id_arg); + CHECK_ACCESS(channel_id_arg_ptr); + LDKCOption_ThirtyTwoBytesZ channel_id_arg_conv = *(LDKCOption_ThirtyTwoBytesZ*)(channel_id_arg_ptr); + channel_id_arg_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(channel_id_arg)); + LDKStr args_arg_conv = str_ref_to_owned_c(args_arg); + LDKStr module_path_arg_conv = str_ref_to_owned_c(module_path_arg); + LDKStr file_arg_conv = str_ref_to_owned_c(file_arg); + LDKRecord ret_var = Record_new(level_arg_conv, peer_id_arg_ref, channel_id_arg_conv, args_arg_conv, module_path_arg_conv, file_arg_conv, line_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline uint64_t Record_clone_ptr(LDKRecord *NONNULL_PTR arg) { LDKRecord ret_var = Record_clone(arg); int64_t ret_ref = 0; @@ -32386,9 +34681,10 @@ int8_tArray CS_LDK_WatchedOutput_get_script_pubkey(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = WatchedOutput_get_script_pubkey(&this_ptr_conv); + LDKCVec_u8Z ret_var = WatchedOutput_get_script_pubkey(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -32501,11 +34797,6 @@ int32_t CS_LDK_ConfirmationTarget_on_chain_sweep() { return ret_conv; } -int32_t CS_LDK_ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee() { - int32_t ret_conv = LDKConfirmationTarget_to_cs(ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee()); - return ret_conv; -} - int32_t CS_LDK_ConfirmationTarget_min_allowed_anchor_channel_remote_fee() { int32_t ret_conv = LDKConfirmationTarget_to_cs(ConfirmationTarget_min_allowed_anchor_channel_remote_fee()); return ret_conv; @@ -33346,7 +35637,7 @@ int64_tArray CS_LDK_ChannelMonitor_get_outputs_to_watch(int64_t this_arg) { return ret_arr; } -void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filter) { +void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filter, int64_t logger) { LDKChannelMonitor this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); @@ -33355,7 +35646,10 @@ void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filt void* filter_ptr = untag_ptr(filter); if (ptr_is_owned(filter)) { CHECK_ACCESS(filter_ptr); } LDKFilter* filter_conv = (LDKFilter*)filter_ptr; - ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv); + void* logger_ptr = untag_ptr(logger); + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; + ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv, logger_conv); } int64_tArray CS_LDK_ChannelMonitor_get_and_clear_pending_monitor_events(int64_t this_arg) { @@ -33524,12 +35818,8 @@ int64_tArray CS_LDK_ChannelMonitor_block_connected(int64_t this_arg, int8_tArra LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33569,12 +35859,8 @@ void CS_LDK_ChannelMonitor_block_disconnected(int64_t this_arg, int8_tArray hea LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_block_disconnected(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33619,12 +35905,8 @@ int64_tArray CS_LDK_ChannelMonitor_transactions_confirmed(int64_t this_arg, int LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_transactions_confirmed(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33664,12 +35946,8 @@ void CS_LDK_ChannelMonitor_transaction_unconfirmed(int64_t this_arg, int8_tArra LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_transaction_unconfirmed(&this_arg_conv, txid_ref, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33698,12 +35976,8 @@ int64_tArray CS_LDK_ChannelMonitor_best_block_updated(int64_t this_arg, int8_tA LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_best_block_updated(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33724,14 +35998,14 @@ int64_tArray CS_LDK_ChannelMonitor_get_relevant_txids(int64_t this_arg) { this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv.is_owned = false; - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_var = ChannelMonitor_get_relevant_txids(&this_arg_conv); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_var = ChannelMonitor_get_relevant_txids(&this_arg_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t x = 0; x < ret_var.datalen; x++) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv_49_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv_49_conv = ret_var.data[x]; - ret_arr_ptr[x] = tag_ptr(ret_conv_49_conv, true); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv_54_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv_54_conv = ret_var.data[c]; + ret_arr_ptr[c] = tag_ptr(ret_conv_54_conv, true); } FREE(ret_var.data); @@ -33772,12 +36046,8 @@ void CS_LDK_ChannelMonitor_rebroadcast_pending_claims(int64_t this_arg, int64_t LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_rebroadcast_pending_claims(&this_arg_conv, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33994,6 +36264,597 @@ int64_t CS_LDK_OutPoint_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +void CS_LDK_InboundHTLCErr_free(int64_t this_obj) { + LDKInboundHTLCErr this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + InboundHTLCErr_free(this_obj_conv); +} + +int16_t CS_LDK_InboundHTLCErr_get_err_code(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int16_t ret_conv = InboundHTLCErr_get_err_code(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_InboundHTLCErr_set_err_code(int64_t this_ptr, int16_t val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + InboundHTLCErr_set_err_code(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_InboundHTLCErr_get_err_data(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u8Z ret_var = InboundHTLCErr_get_err_data(&this_ptr_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +void CS_LDK_InboundHTLCErr_set_err_data(int64_t this_ptr, int8_tArray val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u8Z val_ref; + val_ref.datalen = val->arr_len; + val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(val_ref.data, val->elems, val_ref.datalen); FREE(val); + InboundHTLCErr_set_err_data(&this_ptr_conv, val_ref); +} + +jstring CS_LDK_InboundHTLCErr_get_msg(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKStr ret_str = InboundHTLCErr_get_msg(&this_ptr_conv); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + +void CS_LDK_InboundHTLCErr_set_msg(int64_t this_ptr, jstring val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKStr val_conv = str_ref_to_owned_c(val); + InboundHTLCErr_set_msg(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_InboundHTLCErr_new(int16_t err_code_arg, int8_tArray err_data_arg, jstring msg_arg) { + LDKCVec_u8Z err_data_arg_ref; + err_data_arg_ref.datalen = err_data_arg->arr_len; + err_data_arg_ref.data = MALLOC(err_data_arg_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(err_data_arg_ref.data, err_data_arg->elems, err_data_arg_ref.datalen); FREE(err_data_arg); + LDKStr msg_arg_conv = str_ref_to_owned_c(msg_arg); + LDKInboundHTLCErr ret_var = InboundHTLCErr_new(err_code_arg, err_data_arg_ref, msg_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_peel_payment_onion(int64_t msg, int64_t node_signer, int64_t logger, int32_t cur_height, jboolean accept_mpp_keysend, jboolean allow_skimmed_fees) { + LDKUpdateAddHTLC msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + void* node_signer_ptr = untag_ptr(node_signer); + if (ptr_is_owned(node_signer)) { CHECK_ACCESS(node_signer_ptr); } + LDKNodeSigner* node_signer_conv = (LDKNodeSigner*)node_signer_ptr; + void* logger_ptr = untag_ptr(logger); + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = peel_payment_onion(&msg_conv, node_signer_conv, logger_conv, cur_height, accept_mpp_keysend, allow_skimmed_fees); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_PendingHTLCRouting_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKPendingHTLCRouting this_ptr_conv = *(LDKPendingHTLCRouting*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + PendingHTLCRouting_free(this_ptr_conv); +} + +static inline uint64_t PendingHTLCRouting_clone_ptr(LDKPendingHTLCRouting *NONNULL_PTR arg) { + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_PendingHTLCRouting_clone_ptr(int64_t arg) { + LDKPendingHTLCRouting* arg_conv = (LDKPendingHTLCRouting*)untag_ptr(arg); + int64_t ret_conv = PendingHTLCRouting_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PendingHTLCRouting_clone(int64_t orig) { + LDKPendingHTLCRouting* orig_conv = (LDKPendingHTLCRouting*)untag_ptr(orig); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_forward(int64_t onion_packet, int64_t short_channel_id, int64_t blinded) { + LDKOnionPacket onion_packet_conv; + onion_packet_conv.inner = untag_ptr(onion_packet); + onion_packet_conv.is_owned = ptr_is_owned(onion_packet); + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_packet_conv); + onion_packet_conv = OnionPacket_clone(&onion_packet_conv); + LDKBlindedForward blinded_conv; + blinded_conv.inner = untag_ptr(blinded); + blinded_conv.is_owned = ptr_is_owned(blinded); + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_conv); + blinded_conv = BlindedForward_clone(&blinded_conv); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_forward(onion_packet_conv, short_channel_id, blinded_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_receive(int64_t payment_data, int64_t payment_metadata, int32_t incoming_cltv_expiry, int8_tArray phantom_shared_secret, int64_tArray custom_tlvs, jboolean requires_blinded_error) { + LDKFinalOnionHopData payment_data_conv; + payment_data_conv.inner = untag_ptr(payment_data); + payment_data_conv.is_owned = ptr_is_owned(payment_data); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_conv); + payment_data_conv = FinalOnionHopData_clone(&payment_data_conv); + void* payment_metadata_ptr = untag_ptr(payment_metadata); + CHECK_ACCESS(payment_metadata_ptr); + LDKCOption_CVec_u8ZZ payment_metadata_conv = *(LDKCOption_CVec_u8ZZ*)(payment_metadata_ptr); + payment_metadata_conv = COption_CVec_u8ZZ_clone((LDKCOption_CVec_u8ZZ*)untag_ptr(payment_metadata)); + LDKThirtyTwoBytes phantom_shared_secret_ref; + CHECK(phantom_shared_secret->arr_len == 32); + memcpy(phantom_shared_secret_ref.data, phantom_shared_secret->elems, 32); FREE(phantom_shared_secret); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_constr; + custom_tlvs_constr.datalen = custom_tlvs->arr_len; + if (custom_tlvs_constr.datalen > 0) + custom_tlvs_constr.data = MALLOC(custom_tlvs_constr.datalen * sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKCVec_C2Tuple_u64CVec_u8ZZZ Elements"); + else + custom_tlvs_constr.data = NULL; + int64_t* custom_tlvs_vals = custom_tlvs->elems; + for (size_t x = 0; x < custom_tlvs_constr.datalen; x++) { + int64_t custom_tlvs_conv_23 = custom_tlvs_vals[x]; + void* custom_tlvs_conv_23_ptr = untag_ptr(custom_tlvs_conv_23); + CHECK_ACCESS(custom_tlvs_conv_23_ptr); + LDKC2Tuple_u64CVec_u8ZZ custom_tlvs_conv_23_conv = *(LDKC2Tuple_u64CVec_u8ZZ*)(custom_tlvs_conv_23_ptr); + custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone((LDKC2Tuple_u64CVec_u8ZZ*)untag_ptr(custom_tlvs_conv_23)); + custom_tlvs_constr.data[x] = custom_tlvs_conv_23_conv; + } + FREE(custom_tlvs); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_receive(payment_data_conv, payment_metadata_conv, incoming_cltv_expiry, phantom_shared_secret_ref, custom_tlvs_constr, requires_blinded_error); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_receive_keysend(int64_t payment_data, int8_tArray payment_preimage, int64_t payment_metadata, int32_t incoming_cltv_expiry, int64_tArray custom_tlvs) { + LDKFinalOnionHopData payment_data_conv; + payment_data_conv.inner = untag_ptr(payment_data); + payment_data_conv.is_owned = ptr_is_owned(payment_data); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_conv); + payment_data_conv = FinalOnionHopData_clone(&payment_data_conv); + LDKThirtyTwoBytes payment_preimage_ref; + CHECK(payment_preimage->arr_len == 32); + memcpy(payment_preimage_ref.data, payment_preimage->elems, 32); FREE(payment_preimage); + void* payment_metadata_ptr = untag_ptr(payment_metadata); + CHECK_ACCESS(payment_metadata_ptr); + LDKCOption_CVec_u8ZZ payment_metadata_conv = *(LDKCOption_CVec_u8ZZ*)(payment_metadata_ptr); + payment_metadata_conv = COption_CVec_u8ZZ_clone((LDKCOption_CVec_u8ZZ*)untag_ptr(payment_metadata)); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_constr; + custom_tlvs_constr.datalen = custom_tlvs->arr_len; + if (custom_tlvs_constr.datalen > 0) + custom_tlvs_constr.data = MALLOC(custom_tlvs_constr.datalen * sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKCVec_C2Tuple_u64CVec_u8ZZZ Elements"); + else + custom_tlvs_constr.data = NULL; + int64_t* custom_tlvs_vals = custom_tlvs->elems; + for (size_t x = 0; x < custom_tlvs_constr.datalen; x++) { + int64_t custom_tlvs_conv_23 = custom_tlvs_vals[x]; + void* custom_tlvs_conv_23_ptr = untag_ptr(custom_tlvs_conv_23); + CHECK_ACCESS(custom_tlvs_conv_23_ptr); + LDKC2Tuple_u64CVec_u8ZZ custom_tlvs_conv_23_conv = *(LDKC2Tuple_u64CVec_u8ZZ*)(custom_tlvs_conv_23_ptr); + custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone((LDKC2Tuple_u64CVec_u8ZZ*)untag_ptr(custom_tlvs_conv_23)); + custom_tlvs_constr.data[x] = custom_tlvs_conv_23_conv; + } + FREE(custom_tlvs); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_receive_keysend(payment_data_conv, payment_preimage_ref, payment_metadata_conv, incoming_cltv_expiry, custom_tlvs_constr); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_BlindedForward_free(int64_t this_obj) { + LDKBlindedForward this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + BlindedForward_free(this_obj_conv); +} + +int8_tArray CS_LDK_BlindedForward_get_inbound_blinding_point(int64_t this_ptr) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, BlindedForward_get_inbound_blinding_point(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_BlindedForward_set_inbound_blinding_point(int64_t this_ptr, int8_tArray val) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + BlindedForward_set_inbound_blinding_point(&this_ptr_conv, val_ref); +} + +int32_t CS_LDK_BlindedForward_get_failure(int64_t this_ptr) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedForward_get_failure(&this_ptr_conv)); + return ret_conv; +} + +void CS_LDK_BlindedForward_set_failure(int64_t this_ptr, int32_t val) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKBlindedFailure val_conv = LDKBlindedFailure_from_cs(val); + BlindedForward_set_failure(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_BlindedForward_new(int8_tArray inbound_blinding_point_arg, int32_t failure_arg) { + LDKPublicKey inbound_blinding_point_arg_ref; + CHECK(inbound_blinding_point_arg->arr_len == 33); + memcpy(inbound_blinding_point_arg_ref.compressed_form, inbound_blinding_point_arg->elems, 33); FREE(inbound_blinding_point_arg); + LDKBlindedFailure failure_arg_conv = LDKBlindedFailure_from_cs(failure_arg); + LDKBlindedForward ret_var = BlindedForward_new(inbound_blinding_point_arg_ref, failure_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t BlindedForward_clone_ptr(LDKBlindedForward *NONNULL_PTR arg) { + LDKBlindedForward ret_var = BlindedForward_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_BlindedForward_clone_ptr(int64_t arg) { + LDKBlindedForward arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = BlindedForward_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedForward_clone(int64_t orig) { + LDKBlindedForward orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKBlindedForward ret_var = BlindedForward_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_BlindedForward_hash(int64_t o) { + LDKBlindedForward o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = BlindedForward_hash(&o_conv); + return ret_conv; +} + +jboolean CS_LDK_BlindedForward_eq(int64_t a, int64_t b) { + LDKBlindedForward a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKBlindedForward b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = BlindedForward_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_free(int64_t this_obj) { + LDKPendingHTLCInfo this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PendingHTLCInfo_free(this_obj_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_get_routing(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCInfo_get_routing(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_routing(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKPendingHTLCRouting val_conv = *(LDKPendingHTLCRouting*)(val_ptr); + val_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(val)); + PendingHTLCInfo_set_routing(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_PendingHTLCInfo_get_incoming_shared_secret(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *PendingHTLCInfo_get_incoming_shared_secret(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_PendingHTLCInfo_set_incoming_shared_secret(int64_t this_ptr, int8_tArray val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + PendingHTLCInfo_set_incoming_shared_secret(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_PendingHTLCInfo_get_payment_hash(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *PendingHTLCInfo_get_payment_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_PendingHTLCInfo_set_payment_hash(int64_t this_ptr, int8_tArray val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + PendingHTLCInfo_set_payment_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_PendingHTLCInfo_get_incoming_amt_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = PendingHTLCInfo_get_incoming_amt_msat(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_incoming_amt_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr); + val_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(val)); + PendingHTLCInfo_set_incoming_amt_msat(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_get_outgoing_amt_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = PendingHTLCInfo_get_outgoing_amt_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_set_outgoing_amt_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PendingHTLCInfo_set_outgoing_amt_msat(&this_ptr_conv, val); +} + +int32_t CS_LDK_PendingHTLCInfo_get_outgoing_cltv_value(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = PendingHTLCInfo_get_outgoing_cltv_value(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_set_outgoing_cltv_value(int64_t this_ptr, int32_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PendingHTLCInfo_set_outgoing_cltv_value(&this_ptr_conv, val); +} + +int64_t CS_LDK_PendingHTLCInfo_get_skimmed_fee_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = PendingHTLCInfo_get_skimmed_fee_msat(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_skimmed_fee_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr); + val_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(val)); + PendingHTLCInfo_set_skimmed_fee_msat(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_new(int64_t routing_arg, int8_tArray incoming_shared_secret_arg, int8_tArray payment_hash_arg, int64_t incoming_amt_msat_arg, int64_t outgoing_amt_msat_arg, int32_t outgoing_cltv_value_arg, int64_t skimmed_fee_msat_arg) { + void* routing_arg_ptr = untag_ptr(routing_arg); + CHECK_ACCESS(routing_arg_ptr); + LDKPendingHTLCRouting routing_arg_conv = *(LDKPendingHTLCRouting*)(routing_arg_ptr); + routing_arg_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(routing_arg)); + LDKThirtyTwoBytes incoming_shared_secret_arg_ref; + CHECK(incoming_shared_secret_arg->arr_len == 32); + memcpy(incoming_shared_secret_arg_ref.data, incoming_shared_secret_arg->elems, 32); FREE(incoming_shared_secret_arg); + LDKThirtyTwoBytes payment_hash_arg_ref; + CHECK(payment_hash_arg->arr_len == 32); + memcpy(payment_hash_arg_ref.data, payment_hash_arg->elems, 32); FREE(payment_hash_arg); + void* incoming_amt_msat_arg_ptr = untag_ptr(incoming_amt_msat_arg); + CHECK_ACCESS(incoming_amt_msat_arg_ptr); + LDKCOption_u64Z incoming_amt_msat_arg_conv = *(LDKCOption_u64Z*)(incoming_amt_msat_arg_ptr); + incoming_amt_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(incoming_amt_msat_arg)); + void* skimmed_fee_msat_arg_ptr = untag_ptr(skimmed_fee_msat_arg); + CHECK_ACCESS(skimmed_fee_msat_arg_ptr); + LDKCOption_u64Z skimmed_fee_msat_arg_conv = *(LDKCOption_u64Z*)(skimmed_fee_msat_arg_ptr); + skimmed_fee_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(skimmed_fee_msat_arg)); + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_new(routing_arg_conv, incoming_shared_secret_arg_ref, payment_hash_arg_ref, incoming_amt_msat_arg_conv, outgoing_amt_msat_arg, outgoing_cltv_value_arg, skimmed_fee_msat_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t PendingHTLCInfo_clone_ptr(LDKPendingHTLCInfo *NONNULL_PTR arg) { + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PendingHTLCInfo_clone_ptr(int64_t arg) { + LDKPendingHTLCInfo arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PendingHTLCInfo_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PendingHTLCInfo_clone(int64_t orig) { + LDKPendingHTLCInfo orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int32_t CS_LDK_BlindedFailure_clone(int64_t orig) { + LDKBlindedFailure* orig_conv = (LDKBlindedFailure*)untag_ptr(orig); + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_clone(orig_conv)); + return ret_conv; +} + +int32_t CS_LDK_BlindedFailure_from_introduction_node() { + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_from_introduction_node()); + return ret_conv; +} + +int32_t CS_LDK_BlindedFailure_from_blinded_node() { + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_from_blinded_node()); + return ret_conv; +} + +int64_t CS_LDK_BlindedFailure_hash(int64_t o) { + LDKBlindedFailure* o_conv = (LDKBlindedFailure*)untag_ptr(o); + int64_t ret_conv = BlindedFailure_hash(o_conv); + return ret_conv; +} + +jboolean CS_LDK_BlindedFailure_eq(int64_t a, int64_t b) { + LDKBlindedFailure* a_conv = (LDKBlindedFailure*)untag_ptr(a); + LDKBlindedFailure* b_conv = (LDKBlindedFailure*)untag_ptr(b); + jboolean ret_conv = BlindedFailure_eq(a_conv, b_conv); + return ret_conv; +} + void CS_LDK_FailureCode_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -35596,7 +38457,7 @@ int64_t CS_LDK_ChannelManager_get_current_default_configuration(int64_t this_ar return ret_ref; } -int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray their_network_key, int64_t channel_value_satoshis, int64_t push_msat, int8_tArray user_channel_id, int64_t override_config) { +int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray their_network_key, int64_t channel_value_satoshis, int64_t push_msat, int8_tArray user_channel_id, int64_t temporary_channel_id, int64_t override_config) { LDKChannelManager this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); @@ -35608,13 +38469,17 @@ int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray thei LDKU128 user_channel_id_ref; CHECK(user_channel_id->arr_len == 16); memcpy(user_channel_id_ref.le_bytes, user_channel_id->elems, 16); FREE(user_channel_id); + void* temporary_channel_id_ptr = untag_ptr(temporary_channel_id); + CHECK_ACCESS(temporary_channel_id_ptr); + LDKCOption_ThirtyTwoBytesZ temporary_channel_id_conv = *(LDKCOption_ThirtyTwoBytesZ*)(temporary_channel_id_ptr); + temporary_channel_id_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(temporary_channel_id)); LDKUserConfig override_config_conv; override_config_conv.inner = untag_ptr(override_config); override_config_conv.is_owned = ptr_is_owned(override_config); CHECK_INNER_FIELD_ACCESS_OR_NULL(override_config_conv); override_config_conv = UserConfig_clone(&override_config_conv); LDKCResult_ThirtyTwoBytesAPIErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesAPIErrorZ), "LDKCResult_ThirtyTwoBytesAPIErrorZ"); - *ret_conv = ChannelManager_create_channel(&this_arg_conv, their_network_key_ref, channel_value_satoshis, push_msat, user_channel_id_ref, override_config_conv); + *ret_conv = ChannelManager_create_channel(&this_arg_conv, their_network_key_ref, channel_value_satoshis, push_msat, user_channel_id_ref, temporary_channel_id_conv, override_config_conv); return tag_ptr(ret_conv, true); } @@ -36692,6 +39557,90 @@ int64_t CS_LDK_PhantomRouteHints_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_BlindedForward_write(int64_t obj) { + LDKBlindedForward obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = BlindedForward_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_BlindedForward_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = BlindedForward_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_PendingHTLCRouting_write(int64_t obj) { + LDKPendingHTLCRouting* obj_conv = (LDKPendingHTLCRouting*)untag_ptr(obj); + LDKCVec_u8Z ret_var = PendingHTLCRouting_write(obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_PendingHTLCRouting_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = PendingHTLCRouting_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_PendingHTLCInfo_write(int64_t obj) { + LDKPendingHTLCInfo obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = PendingHTLCInfo_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_PendingHTLCInfo_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = PendingHTLCInfo_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_BlindedFailure_write(int64_t obj) { + LDKBlindedFailure* obj_conv = (LDKBlindedFailure*)untag_ptr(obj); + LDKCVec_u8Z ret_var = BlindedFailure_write(obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_BlindedFailure_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = BlindedFailure_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_ChannelManager_write(int64_t obj) { LDKChannelManager obj_conv; obj_conv.inner = untag_ptr(obj); @@ -37077,6 +40026,844 @@ int64_t CS_LDK_C2Tuple_ThirtyTwoBytesChannelManagerZ_read(int8_tArray ser, int6 return tag_ptr(ret_conv, true); } +void CS_LDK_DelayedPaymentBasepoint_free(int64_t this_obj) { + LDKDelayedPaymentBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + DelayedPaymentBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_get_a(int64_t this_ptr) { + LDKDelayedPaymentBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_DelayedPaymentBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKDelayedPaymentBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + DelayedPaymentBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_DelayedPaymentBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_DelayedPaymentBasepoint_eq(int64_t a, int64_t b) { + LDKDelayedPaymentBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKDelayedPaymentBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = DelayedPaymentBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t DelayedPaymentBasepoint_clone_ptr(LDKDelayedPaymentBasepoint *NONNULL_PTR arg) { + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_DelayedPaymentBasepoint_clone_ptr(int64_t arg) { + LDKDelayedPaymentBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_clone(int64_t orig) { + LDKDelayedPaymentBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_hash(int64_t o) { + LDKDelayedPaymentBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_to_public_key(int64_t this_arg) { + LDKDelayedPaymentBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_write(int64_t obj) { + LDKDelayedPaymentBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = DelayedPaymentBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = DelayedPaymentBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_DelayedPaymentKey_free(int64_t this_obj) { + LDKDelayedPaymentKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + DelayedPaymentKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_DelayedPaymentKey_get_a(int64_t this_ptr) { + LDKDelayedPaymentKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_DelayedPaymentKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKDelayedPaymentKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + DelayedPaymentKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_DelayedPaymentKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_DelayedPaymentKey_eq(int64_t a, int64_t b) { + LDKDelayedPaymentKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKDelayedPaymentKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = DelayedPaymentKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t DelayedPaymentKey_clone_ptr(LDKDelayedPaymentKey *NONNULL_PTR arg) { + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_DelayedPaymentKey_clone_ptr(int64_t arg) { + LDKDelayedPaymentKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_DelayedPaymentKey_clone(int64_t orig) { + LDKDelayedPaymentKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKDelayedPaymentBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentKey_from_secret_key(int8_tArray sk) { + uint8_t sk_arr[32]; + CHECK(sk->arr_len == 32); + memcpy(sk_arr, sk->elems, 32); FREE(sk); + uint8_t (*sk_ref)[32] = &sk_arr; + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_from_secret_key(sk_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_DelayedPaymentKey_to_public_key(int64_t this_arg) { + LDKDelayedPaymentKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_DelayedPaymentKey_write(int64_t obj) { + LDKDelayedPaymentKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = DelayedPaymentKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_DelayedPaymentKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = DelayedPaymentKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_HtlcBasepoint_free(int64_t this_obj) { + LDKHtlcBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + HtlcBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_HtlcBasepoint_get_a(int64_t this_ptr) { + LDKHtlcBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_HtlcBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKHtlcBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + HtlcBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_HtlcBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKHtlcBasepoint ret_var = HtlcBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_HtlcBasepoint_eq(int64_t a, int64_t b) { + LDKHtlcBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKHtlcBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = HtlcBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t HtlcBasepoint_clone_ptr(LDKHtlcBasepoint *NONNULL_PTR arg) { + LDKHtlcBasepoint ret_var = HtlcBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_HtlcBasepoint_clone_ptr(int64_t arg) { + LDKHtlcBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = HtlcBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_HtlcBasepoint_clone(int64_t orig) { + LDKHtlcBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKHtlcBasepoint ret_var = HtlcBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcBasepoint_hash(int64_t o) { + LDKHtlcBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = HtlcBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_HtlcBasepoint_to_public_key(int64_t this_arg) { + LDKHtlcBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_HtlcBasepoint_write(int64_t obj) { + LDKHtlcBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = HtlcBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_HtlcBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = HtlcBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_HtlcKey_free(int64_t this_obj) { + LDKHtlcKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + HtlcKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_HtlcKey_get_a(int64_t this_ptr) { + LDKHtlcKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_HtlcKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKHtlcKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + HtlcKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_HtlcKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKHtlcKey ret_var = HtlcKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_HtlcKey_eq(int64_t a, int64_t b) { + LDKHtlcKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKHtlcKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = HtlcKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t HtlcKey_clone_ptr(LDKHtlcKey *NONNULL_PTR arg) { + LDKHtlcKey ret_var = HtlcKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_HtlcKey_clone_ptr(int64_t arg) { + LDKHtlcKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = HtlcKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_HtlcKey_clone(int64_t orig) { + LDKHtlcKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKHtlcKey ret_var = HtlcKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKHtlcBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKHtlcKey ret_var = HtlcKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcKey_from_secret_key(int8_tArray sk) { + uint8_t sk_arr[32]; + CHECK(sk->arr_len == 32); + memcpy(sk_arr, sk->elems, 32); FREE(sk); + uint8_t (*sk_ref)[32] = &sk_arr; + LDKHtlcKey ret_var = HtlcKey_from_secret_key(sk_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_HtlcKey_to_public_key(int64_t this_arg) { + LDKHtlcKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_HtlcKey_write(int64_t obj) { + LDKHtlcKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = HtlcKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_HtlcKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = HtlcKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_RevocationBasepoint_free(int64_t this_obj) { + LDKRevocationBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + RevocationBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_RevocationBasepoint_get_a(int64_t this_ptr) { + LDKRevocationBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_RevocationBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKRevocationBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + RevocationBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_RevocationBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKRevocationBasepoint ret_var = RevocationBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_RevocationBasepoint_eq(int64_t a, int64_t b) { + LDKRevocationBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKRevocationBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = RevocationBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t RevocationBasepoint_clone_ptr(LDKRevocationBasepoint *NONNULL_PTR arg) { + LDKRevocationBasepoint ret_var = RevocationBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_RevocationBasepoint_clone_ptr(int64_t arg) { + LDKRevocationBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = RevocationBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationBasepoint_clone(int64_t orig) { + LDKRevocationBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKRevocationBasepoint ret_var = RevocationBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_RevocationBasepoint_hash(int64_t o) { + LDKRevocationBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevocationBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_RevocationBasepoint_to_public_key(int64_t this_arg) { + LDKRevocationBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_RevocationBasepoint_write(int64_t obj) { + LDKRevocationBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = RevocationBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_RevocationBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = RevocationBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_RevocationKey_free(int64_t this_obj) { + LDKRevocationKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + RevocationKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_RevocationKey_get_a(int64_t this_ptr) { + LDKRevocationKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_RevocationKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKRevocationKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + RevocationKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_RevocationKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKRevocationKey ret_var = RevocationKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_RevocationKey_eq(int64_t a, int64_t b) { + LDKRevocationKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKRevocationKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = RevocationKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t RevocationKey_clone_ptr(LDKRevocationKey *NONNULL_PTR arg) { + LDKRevocationKey ret_var = RevocationKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_RevocationKey_clone_ptr(int64_t arg) { + LDKRevocationKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = RevocationKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationKey_clone(int64_t orig) { + LDKRevocationKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKRevocationKey ret_var = RevocationKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_RevocationKey_hash(int64_t o) { + LDKRevocationKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevocationKey_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKRevocationBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKRevocationKey ret_var = RevocationKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_RevocationKey_to_public_key(int64_t this_arg) { + LDKRevocationKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_RevocationKey_write(int64_t obj) { + LDKRevocationKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = RevocationKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_RevocationKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = RevocationKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + void CS_LDK_ExpandedKey_free(int64_t this_obj) { LDKExpandedKey this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -37220,6 +41007,12 @@ int64_t CS_LDK_DecodeError_unsupported_compression() { return ret_ref; } +int64_t CS_LDK_DecodeError_hash(int64_t o) { + LDKDecodeError* o_conv = (LDKDecodeError*)untag_ptr(o); + int64_t ret_conv = DecodeError_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_DecodeError_eq(int64_t a, int64_t b) { LDKDecodeError* a_conv = (LDKDecodeError*)untag_ptr(a); LDKDecodeError* b_conv = (LDKDecodeError*)untag_ptr(b); @@ -37362,6 +41155,16 @@ int64_t CS_LDK_Init_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Init_hash(int64_t o) { + LDKInit o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Init_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Init_eq(int64_t a, int64_t b) { LDKInit a_conv; a_conv.inner = untag_ptr(a); @@ -37472,6 +41275,16 @@ int64_t CS_LDK_ErrorMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ErrorMessage_hash(int64_t o) { + LDKErrorMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ErrorMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ErrorMessage_eq(int64_t a, int64_t b) { LDKErrorMessage a_conv; a_conv.inner = untag_ptr(a); @@ -37582,6 +41395,16 @@ int64_t CS_LDK_WarningMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_WarningMessage_hash(int64_t o) { + LDKWarningMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = WarningMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_WarningMessage_eq(int64_t a, int64_t b) { LDKWarningMessage a_conv; a_conv.inner = untag_ptr(a); @@ -37681,6 +41504,16 @@ int64_t CS_LDK_Ping_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Ping_hash(int64_t o) { + LDKPing o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Ping_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Ping_eq(int64_t a, int64_t b) { LDKPing a_conv; a_conv.inner = untag_ptr(a); @@ -37761,6 +41594,16 @@ int64_t CS_LDK_Pong_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Pong_hash(int64_t o) { + LDKPong o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Pong_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Pong_eq(int64_t a, int64_t b) { LDKPong a_conv; a_conv.inner = untag_ptr(a); @@ -38281,6 +42124,16 @@ int64_t CS_LDK_OpenChannel_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OpenChannel_hash(int64_t o) { + LDKOpenChannel o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OpenChannel_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OpenChannel_eq(int64_t a, int64_t b) { LDKOpenChannel a_conv; a_conv.inner = untag_ptr(a); @@ -38848,6 +42701,16 @@ int64_t CS_LDK_OpenChannelV2_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OpenChannelV2_hash(int64_t o) { + LDKOpenChannelV2 o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OpenChannelV2_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OpenChannelV2_eq(int64_t a, int64_t b) { LDKOpenChannelV2 a_conv; a_conv.inner = untag_ptr(a); @@ -39285,6 +43148,16 @@ int64_t CS_LDK_AcceptChannel_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AcceptChannel_hash(int64_t o) { + LDKAcceptChannel o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AcceptChannel_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AcceptChannel_eq(int64_t a, int64_t b) { LDKAcceptChannel a_conv; a_conv.inner = untag_ptr(a); @@ -39769,6 +43642,16 @@ int64_t CS_LDK_AcceptChannelV2_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AcceptChannelV2_hash(int64_t o) { + LDKAcceptChannelV2 o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AcceptChannelV2_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AcceptChannelV2_eq(int64_t a, int64_t b) { LDKAcceptChannelV2 a_conv; a_conv.inner = untag_ptr(a); @@ -39927,6 +43810,16 @@ int64_t CS_LDK_FundingCreated_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_FundingCreated_hash(int64_t o) { + LDKFundingCreated o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = FundingCreated_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_FundingCreated_eq(int64_t a, int64_t b) { LDKFundingCreated a_conv; a_conv.inner = untag_ptr(a); @@ -40040,6 +43933,16 @@ int64_t CS_LDK_FundingSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_FundingSigned_hash(int64_t o) { + LDKFundingSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = FundingSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_FundingSigned_eq(int64_t a, int64_t b) { LDKFundingSigned a_conv; a_conv.inner = untag_ptr(a); @@ -40182,6 +44085,16 @@ int64_t CS_LDK_ChannelReady_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelReady_hash(int64_t o) { + LDKChannelReady o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelReady_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelReady_eq(int64_t a, int64_t b) { LDKChannelReady a_conv; a_conv.inner = untag_ptr(a); @@ -40197,6 +44110,553 @@ jboolean CS_LDK_ChannelReady_eq(int64_t a, int64_t b) { return ret_conv; } +void CS_LDK_Stfu_free(int64_t this_obj) { + LDKStfu this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + Stfu_free(this_obj_conv); +} + +int8_tArray CS_LDK_Stfu_get_channel_id(int64_t this_ptr) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Stfu_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Stfu_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Stfu_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_t CS_LDK_Stfu_get_initiator(int64_t this_ptr) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_t ret_conv = Stfu_get_initiator(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Stfu_set_initiator(int64_t this_ptr, int8_t val) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Stfu_set_initiator(&this_ptr_conv, val); +} + +int64_t CS_LDK_Stfu_new(int8_tArray channel_id_arg, int8_t initiator_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKStfu ret_var = Stfu_new(channel_id_arg_ref, initiator_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t Stfu_clone_ptr(LDKStfu *NONNULL_PTR arg) { + LDKStfu ret_var = Stfu_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_Stfu_clone_ptr(int64_t arg) { + LDKStfu arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = Stfu_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_Stfu_clone(int64_t orig) { + LDKStfu orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKStfu ret_var = Stfu_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_Stfu_eq(int64_t a, int64_t b) { + LDKStfu a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKStfu b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = Stfu_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_Splice_free(int64_t this_obj) { + LDKSplice this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + Splice_free(this_obj_conv); +} + +int8_tArray CS_LDK_Splice_get_channel_id(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Splice_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Splice_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Splice_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_Splice_get_chain_hash(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Splice_get_chain_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Splice_set_chain_hash(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Splice_set_chain_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Splice_get_relative_satoshis(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = Splice_get_relative_satoshis(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_relative_satoshis(int64_t this_ptr, int64_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_relative_satoshis(&this_ptr_conv, val); +} + +int32_t CS_LDK_Splice_get_funding_feerate_perkw(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = Splice_get_funding_feerate_perkw(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_funding_feerate_perkw(int64_t this_ptr, int32_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_funding_feerate_perkw(&this_ptr_conv, val); +} + +int32_t CS_LDK_Splice_get_locktime(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = Splice_get_locktime(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_locktime(int64_t this_ptr, int32_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_locktime(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_Splice_get_funding_pubkey(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, Splice_get_funding_pubkey(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_Splice_set_funding_pubkey(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + Splice_set_funding_pubkey(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Splice_new(int8_tArray channel_id_arg, int8_tArray chain_hash_arg, int64_t relative_satoshis_arg, int32_t funding_feerate_perkw_arg, int32_t locktime_arg, int8_tArray funding_pubkey_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes chain_hash_arg_ref; + CHECK(chain_hash_arg->arr_len == 32); + memcpy(chain_hash_arg_ref.data, chain_hash_arg->elems, 32); FREE(chain_hash_arg); + LDKPublicKey funding_pubkey_arg_ref; + CHECK(funding_pubkey_arg->arr_len == 33); + memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); + LDKSplice ret_var = Splice_new(channel_id_arg_ref, chain_hash_arg_ref, relative_satoshis_arg, funding_feerate_perkw_arg, locktime_arg, funding_pubkey_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t Splice_clone_ptr(LDKSplice *NONNULL_PTR arg) { + LDKSplice ret_var = Splice_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_Splice_clone_ptr(int64_t arg) { + LDKSplice arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = Splice_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_Splice_clone(int64_t orig) { + LDKSplice orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSplice ret_var = Splice_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_Splice_eq(int64_t a, int64_t b) { + LDKSplice a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSplice b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = Splice_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_SpliceAck_free(int64_t this_obj) { + LDKSpliceAck this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + SpliceAck_free(this_obj_conv); +} + +int8_tArray CS_LDK_SpliceAck_get_channel_id(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceAck_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceAck_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_SpliceAck_get_chain_hash(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceAck_get_chain_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_chain_hash(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceAck_set_chain_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceAck_get_relative_satoshis(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = SpliceAck_get_relative_satoshis(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_SpliceAck_set_relative_satoshis(int64_t this_ptr, int64_t val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + SpliceAck_set_relative_satoshis(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_SpliceAck_get_funding_pubkey(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, SpliceAck_get_funding_pubkey(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_funding_pubkey(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + SpliceAck_set_funding_pubkey(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceAck_new(int8_tArray channel_id_arg, int8_tArray chain_hash_arg, int64_t relative_satoshis_arg, int8_tArray funding_pubkey_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes chain_hash_arg_ref; + CHECK(chain_hash_arg->arr_len == 32); + memcpy(chain_hash_arg_ref.data, chain_hash_arg->elems, 32); FREE(chain_hash_arg); + LDKPublicKey funding_pubkey_arg_ref; + CHECK(funding_pubkey_arg->arr_len == 33); + memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); + LDKSpliceAck ret_var = SpliceAck_new(channel_id_arg_ref, chain_hash_arg_ref, relative_satoshis_arg, funding_pubkey_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t SpliceAck_clone_ptr(LDKSpliceAck *NONNULL_PTR arg) { + LDKSpliceAck ret_var = SpliceAck_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_SpliceAck_clone_ptr(int64_t arg) { + LDKSpliceAck arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = SpliceAck_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SpliceAck_clone(int64_t orig) { + LDKSpliceAck orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSpliceAck ret_var = SpliceAck_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_SpliceAck_eq(int64_t a, int64_t b) { + LDKSpliceAck a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSpliceAck b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = SpliceAck_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_SpliceLocked_free(int64_t this_obj) { + LDKSpliceLocked this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + SpliceLocked_free(this_obj_conv); +} + +int8_tArray CS_LDK_SpliceLocked_get_channel_id(int64_t this_ptr) { + LDKSpliceLocked this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceLocked_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceLocked_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSpliceLocked this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceLocked_set_channel_id(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceLocked_new(int8_tArray channel_id_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKSpliceLocked ret_var = SpliceLocked_new(channel_id_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t SpliceLocked_clone_ptr(LDKSpliceLocked *NONNULL_PTR arg) { + LDKSpliceLocked ret_var = SpliceLocked_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_SpliceLocked_clone_ptr(int64_t arg) { + LDKSpliceLocked arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = SpliceLocked_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SpliceLocked_clone(int64_t orig) { + LDKSpliceLocked orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSpliceLocked ret_var = SpliceLocked_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_SpliceLocked_eq(int64_t a, int64_t b) { + LDKSpliceLocked a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSpliceLocked b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = SpliceLocked_eq(&a_conv, &b_conv); + return ret_conv; +} + void CS_LDK_TxAddInput_free(int64_t this_obj) { LDKTxAddInput this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -40358,6 +44818,16 @@ int64_t CS_LDK_TxAddInput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAddInput_hash(int64_t o) { + LDKTxAddInput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAddInput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAddInput_eq(int64_t a, int64_t b) { LDKTxAddInput a_conv; a_conv.inner = untag_ptr(a); @@ -40448,9 +44918,10 @@ int8_tArray CS_LDK_TxAddOutput_get_script(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = TxAddOutput_get_script(&this_ptr_conv); + LDKCVec_u8Z ret_var = TxAddOutput_get_script(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -40512,6 +44983,16 @@ int64_t CS_LDK_TxAddOutput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAddOutput_hash(int64_t o) { + LDKTxAddOutput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAddOutput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAddOutput_eq(int64_t a, int64_t b) { LDKTxAddOutput a_conv; a_conv.inner = untag_ptr(a); @@ -40618,6 +45099,16 @@ int64_t CS_LDK_TxRemoveInput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxRemoveInput_hash(int64_t o) { + LDKTxRemoveInput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxRemoveInput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxRemoveInput_eq(int64_t a, int64_t b) { LDKTxRemoveInput a_conv; a_conv.inner = untag_ptr(a); @@ -40724,6 +45215,16 @@ int64_t CS_LDK_TxRemoveOutput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxRemoveOutput_hash(int64_t o) { + LDKTxRemoveOutput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxRemoveOutput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxRemoveOutput_eq(int64_t a, int64_t b) { LDKTxRemoveOutput a_conv; a_conv.inner = untag_ptr(a); @@ -40811,6 +45312,16 @@ int64_t CS_LDK_TxComplete_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxComplete_hash(int64_t o) { + LDKTxComplete o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxComplete_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxComplete_eq(int64_t a, int64_t b) { LDKTxComplete a_conv; a_conv.inner = untag_ptr(a); @@ -40989,6 +45500,16 @@ int64_t CS_LDK_TxSignatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxSignatures_hash(int64_t o) { + LDKTxSignatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxSignatures_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxSignatures_eq(int64_t a, int64_t b) { LDKTxSignatures a_conv; a_conv.inner = untag_ptr(a); @@ -41143,6 +45664,16 @@ int64_t CS_LDK_TxInitRbf_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxInitRbf_hash(int64_t o) { + LDKTxInitRbf o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxInitRbf_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxInitRbf_eq(int64_t a, int64_t b) { LDKTxInitRbf a_conv; a_conv.inner = untag_ptr(a); @@ -41259,6 +45790,16 @@ int64_t CS_LDK_TxAckRbf_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAckRbf_hash(int64_t o) { + LDKTxAckRbf o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAckRbf_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAckRbf_eq(int64_t a, int64_t b) { LDKTxAckRbf a_conv; a_conv.inner = untag_ptr(a); @@ -41376,6 +45917,16 @@ int64_t CS_LDK_TxAbort_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAbort_hash(int64_t o) { + LDKTxAbort o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAbort_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAbort_eq(int64_t a, int64_t b) { LDKTxAbort a_conv; a_conv.inner = untag_ptr(a); @@ -41428,9 +45979,10 @@ int8_tArray CS_LDK_Shutdown_get_scriptpubkey(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = Shutdown_get_scriptpubkey(&this_ptr_conv); + LDKCVec_u8Z ret_var = Shutdown_get_scriptpubkey(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -41492,6 +46044,16 @@ int64_t CS_LDK_Shutdown_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Shutdown_hash(int64_t o) { + LDKShutdown o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Shutdown_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Shutdown_eq(int64_t a, int64_t b) { LDKShutdown a_conv; a_conv.inner = untag_ptr(a); @@ -41591,6 +46153,16 @@ int64_t CS_LDK_ClosingSignedFeeRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ClosingSignedFeeRange_hash(int64_t o) { + LDKClosingSignedFeeRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ClosingSignedFeeRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ClosingSignedFeeRange_eq(int64_t a, int64_t b) { LDKClosingSignedFeeRange a_conv; a_conv.inner = untag_ptr(a); @@ -41755,6 +46327,16 @@ int64_t CS_LDK_ClosingSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ClosingSigned_hash(int64_t o) { + LDKClosingSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ClosingSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ClosingSigned_eq(int64_t a, int64_t b) { LDKClosingSigned a_conv; a_conv.inner = untag_ptr(a); @@ -41906,6 +46488,82 @@ void CS_LDK_UpdateAddHTLC_set_skimmed_fee_msat(int64_t this_ptr, int64_t val) { UpdateAddHTLC_set_skimmed_fee_msat(&this_ptr_conv, val_conv); } +int64_t CS_LDK_UpdateAddHTLC_get_onion_routing_packet(int64_t this_ptr) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKOnionPacket ret_var = UpdateAddHTLC_get_onion_routing_packet(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_UpdateAddHTLC_set_onion_routing_packet(int64_t this_ptr, int64_t val) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKOnionPacket val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = OnionPacket_clone(&val_conv); + UpdateAddHTLC_set_onion_routing_packet(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_UpdateAddHTLC_get_blinding_point(int64_t this_ptr) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, UpdateAddHTLC_get_blinding_point(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_UpdateAddHTLC_set_blinding_point(int64_t this_ptr, int8_tArray val) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + UpdateAddHTLC_set_blinding_point(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_UpdateAddHTLC_new(int8_tArray channel_id_arg, int64_t htlc_id_arg, int64_t amount_msat_arg, int8_tArray payment_hash_arg, int32_t cltv_expiry_arg, int64_t skimmed_fee_msat_arg, int64_t onion_routing_packet_arg, int8_tArray blinding_point_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes payment_hash_arg_ref; + CHECK(payment_hash_arg->arr_len == 32); + memcpy(payment_hash_arg_ref.data, payment_hash_arg->elems, 32); FREE(payment_hash_arg); + void* skimmed_fee_msat_arg_ptr = untag_ptr(skimmed_fee_msat_arg); + CHECK_ACCESS(skimmed_fee_msat_arg_ptr); + LDKCOption_u64Z skimmed_fee_msat_arg_conv = *(LDKCOption_u64Z*)(skimmed_fee_msat_arg_ptr); + skimmed_fee_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(skimmed_fee_msat_arg)); + LDKOnionPacket onion_routing_packet_arg_conv; + onion_routing_packet_arg_conv.inner = untag_ptr(onion_routing_packet_arg); + onion_routing_packet_arg_conv.is_owned = ptr_is_owned(onion_routing_packet_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_routing_packet_arg_conv); + onion_routing_packet_arg_conv = OnionPacket_clone(&onion_routing_packet_arg_conv); + LDKPublicKey blinding_point_arg_ref; + CHECK(blinding_point_arg->arr_len == 33); + memcpy(blinding_point_arg_ref.compressed_form, blinding_point_arg->elems, 33); FREE(blinding_point_arg); + LDKUpdateAddHTLC ret_var = UpdateAddHTLC_new(channel_id_arg_ref, htlc_id_arg, amount_msat_arg, payment_hash_arg_ref, cltv_expiry_arg, skimmed_fee_msat_arg_conv, onion_routing_packet_arg_conv, blinding_point_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline uint64_t UpdateAddHTLC_clone_ptr(LDKUpdateAddHTLC *NONNULL_PTR arg) { LDKUpdateAddHTLC ret_var = UpdateAddHTLC_clone(arg); int64_t ret_ref = 0; @@ -41936,6 +46594,16 @@ int64_t CS_LDK_UpdateAddHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateAddHTLC_hash(int64_t o) { + LDKUpdateAddHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateAddHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateAddHTLC_eq(int64_t a, int64_t b) { LDKUpdateAddHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42055,6 +46723,16 @@ int64_t CS_LDK_OnionMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OnionMessage_hash(int64_t o) { + LDKOnionMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OnionMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OnionMessage_eq(int64_t a, int64_t b) { LDKOnionMessage a_conv; a_conv.inner = untag_ptr(a); @@ -42187,6 +46865,16 @@ int64_t CS_LDK_UpdateFulfillHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFulfillHTLC_hash(int64_t o) { + LDKUpdateFulfillHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFulfillHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFulfillHTLC_eq(int64_t a, int64_t b) { LDKUpdateFulfillHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42282,6 +46970,16 @@ int64_t CS_LDK_UpdateFailHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFailHTLC_hash(int64_t o) { + LDKUpdateFailHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFailHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFailHTLC_eq(int64_t a, int64_t b) { LDKUpdateFailHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42396,6 +47094,16 @@ int64_t CS_LDK_UpdateFailMalformedHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFailMalformedHTLC_hash(int64_t o) { + LDKUpdateFailMalformedHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFailMalformedHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFailMalformedHTLC_eq(int64_t a, int64_t b) { LDKUpdateFailMalformedHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42568,6 +47276,16 @@ int64_t CS_LDK_CommitmentSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CommitmentSigned_hash(int64_t o) { + LDKCommitmentSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = CommitmentSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_CommitmentSigned_eq(int64_t a, int64_t b) { LDKCommitmentSigned a_conv; a_conv.inner = untag_ptr(a); @@ -42707,6 +47425,16 @@ int64_t CS_LDK_RevokeAndACK_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_RevokeAndACK_hash(int64_t o) { + LDKRevokeAndACK o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevokeAndACK_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_RevokeAndACK_eq(int64_t a, int64_t b) { LDKRevokeAndACK a_conv; a_conv.inner = untag_ptr(a); @@ -42813,6 +47541,16 @@ int64_t CS_LDK_UpdateFee_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFee_hash(int64_t o) { + LDKUpdateFee o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFee_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFee_eq(int64_t a, int64_t b) { LDKUpdateFee a_conv; a_conv.inner = untag_ptr(a); @@ -43019,6 +47757,16 @@ int64_t CS_LDK_ChannelReestablish_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelReestablish_hash(int64_t o) { + LDKChannelReestablish o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelReestablish_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelReestablish_eq(int64_t a, int64_t b) { LDKChannelReestablish a_conv; a_conv.inner = untag_ptr(a); @@ -43177,6 +47925,16 @@ int64_t CS_LDK_AnnouncementSignatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AnnouncementSignatures_hash(int64_t o) { + LDKAnnouncementSignatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AnnouncementSignatures_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AnnouncementSignatures_eq(int64_t a, int64_t b) { LDKAnnouncementSignatures a_conv; a_conv.inner = untag_ptr(a); @@ -43273,6 +48031,12 @@ int64_t CS_LDK_SocketAddress_hostname(int64_t hostname, int16_t port) { return ret_ref; } +int64_t CS_LDK_SocketAddress_hash(int64_t o) { + LDKSocketAddress* o_conv = (LDKSocketAddress*)untag_ptr(o); + int64_t ret_conv = SocketAddress_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_SocketAddress_eq(int64_t a, int64_t b) { LDKSocketAddress* a_conv = (LDKSocketAddress*)untag_ptr(a); LDKSocketAddress* b_conv = (LDKSocketAddress*)untag_ptr(b); @@ -43325,6 +48089,12 @@ int32_t CS_LDK_SocketAddressParseError_invalid_onion_v3() { return ret_conv; } +int64_t CS_LDK_SocketAddressParseError_hash(int64_t o) { + LDKSocketAddressParseError* o_conv = (LDKSocketAddressParseError*)untag_ptr(o); + int64_t ret_conv = SocketAddressParseError_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_SocketAddressParseError_eq(int64_t a, int64_t b) { LDKSocketAddressParseError* a_conv = (LDKSocketAddressParseError*)untag_ptr(a); LDKSocketAddressParseError* b_conv = (LDKSocketAddressParseError*)untag_ptr(b); @@ -43635,6 +48405,16 @@ int64_t CS_LDK_UnsignedNodeAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedNodeAnnouncement_hash(int64_t o) { + LDKUnsignedNodeAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedNodeAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedNodeAnnouncement_eq(int64_t a, int64_t b) { LDKUnsignedNodeAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -43754,6 +48534,16 @@ int64_t CS_LDK_NodeAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_NodeAnnouncement_hash(int64_t o) { + LDKNodeAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_NodeAnnouncement_eq(int64_t a, int64_t b) { LDKNodeAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44050,6 +48840,16 @@ int64_t CS_LDK_UnsignedChannelAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedChannelAnnouncement_hash(int64_t o) { + LDKUnsignedChannelAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedChannelAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedChannelAnnouncement_eq(int64_t a, int64_t b) { LDKUnsignedChannelAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44247,6 +49047,16 @@ int64_t CS_LDK_ChannelAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelAnnouncement_hash(int64_t o) { + LDKChannelAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelAnnouncement_eq(int64_t a, int64_t b) { LDKChannelAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44516,6 +49326,16 @@ int64_t CS_LDK_UnsignedChannelUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedChannelUpdate_hash(int64_t o) { + LDKUnsignedChannelUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedChannelUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedChannelUpdate_eq(int64_t a, int64_t b) { LDKUnsignedChannelUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -44635,6 +49455,16 @@ int64_t CS_LDK_ChannelUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelUpdate_hash(int64_t o) { + LDKChannelUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelUpdate_eq(int64_t a, int64_t b) { LDKChannelUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -44760,6 +49590,16 @@ int64_t CS_LDK_QueryChannelRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_QueryChannelRange_hash(int64_t o) { + LDKQueryChannelRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = QueryChannelRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_QueryChannelRange_eq(int64_t a, int64_t b) { LDKQueryChannelRange a_conv; a_conv.inner = untag_ptr(a); @@ -44956,6 +49796,16 @@ int64_t CS_LDK_ReplyChannelRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ReplyChannelRange_hash(int64_t o) { + LDKReplyChannelRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ReplyChannelRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ReplyChannelRange_eq(int64_t a, int64_t b) { LDKReplyChannelRange a_conv; a_conv.inner = untag_ptr(a); @@ -45095,6 +49945,16 @@ int64_t CS_LDK_QueryShortChannelIds_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_QueryShortChannelIds_hash(int64_t o) { + LDKQueryShortChannelIds o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = QueryShortChannelIds_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_QueryShortChannelIds_eq(int64_t a, int64_t b) { LDKQueryShortChannelIds a_conv; a_conv.inner = untag_ptr(a); @@ -45201,6 +50061,16 @@ int64_t CS_LDK_ReplyShortChannelIdsEnd_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ReplyShortChannelIdsEnd_hash(int64_t o) { + LDKReplyShortChannelIdsEnd o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ReplyShortChannelIdsEnd_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ReplyShortChannelIdsEnd_eq(int64_t a, int64_t b) { LDKReplyShortChannelIdsEnd a_conv; a_conv.inner = untag_ptr(a); @@ -45326,6 +50196,16 @@ int64_t CS_LDK_GossipTimestampFilter_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_GossipTimestampFilter_hash(int64_t o) { + LDKGossipTimestampFilter o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = GossipTimestampFilter_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_GossipTimestampFilter_eq(int64_t a, int64_t b) { LDKGossipTimestampFilter a_conv; a_conv.inner = untag_ptr(a); @@ -45441,6 +50321,12 @@ int64_t CS_LDK_ErrorAction_send_warning_message(int64_t msg, int32_t log_level) return ret_ref; } +int64_t CS_LDK_ErrorAction_hash(int64_t o) { + LDKErrorAction* o_conv = (LDKErrorAction*)untag_ptr(o); + int64_t ret_conv = ErrorAction_hash(o_conv); + return ret_conv; +} + void CS_LDK_LightningError_free(int64_t this_obj) { LDKLightningError this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -45909,6 +50795,16 @@ int64_t CS_LDK_CommitmentUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CommitmentUpdate_hash(int64_t o) { + LDKCommitmentUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = CommitmentUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_CommitmentUpdate_eq(int64_t a, int64_t b) { LDKCommitmentUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -45951,6 +50847,226 @@ void CS_LDK_OnionMessageHandler_free(int64_t this_ptr) { OnionMessageHandler_free(this_ptr_conv); } +void CS_LDK_FinalOnionHopData_free(int64_t this_obj) { + LDKFinalOnionHopData this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + FinalOnionHopData_free(this_obj_conv); +} + +int8_tArray CS_LDK_FinalOnionHopData_get_payment_secret(int64_t this_ptr) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *FinalOnionHopData_get_payment_secret(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_FinalOnionHopData_set_payment_secret(int64_t this_ptr, int8_tArray val) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + FinalOnionHopData_set_payment_secret(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_FinalOnionHopData_get_total_msat(int64_t this_ptr) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = FinalOnionHopData_get_total_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_FinalOnionHopData_set_total_msat(int64_t this_ptr, int64_t val) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + FinalOnionHopData_set_total_msat(&this_ptr_conv, val); +} + +int64_t CS_LDK_FinalOnionHopData_new(int8_tArray payment_secret_arg, int64_t total_msat_arg) { + LDKThirtyTwoBytes payment_secret_arg_ref; + CHECK(payment_secret_arg->arr_len == 32); + memcpy(payment_secret_arg_ref.data, payment_secret_arg->elems, 32); FREE(payment_secret_arg); + LDKFinalOnionHopData ret_var = FinalOnionHopData_new(payment_secret_arg_ref, total_msat_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t FinalOnionHopData_clone_ptr(LDKFinalOnionHopData *NONNULL_PTR arg) { + LDKFinalOnionHopData ret_var = FinalOnionHopData_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_FinalOnionHopData_clone_ptr(int64_t arg) { + LDKFinalOnionHopData arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = FinalOnionHopData_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_FinalOnionHopData_clone(int64_t orig) { + LDKFinalOnionHopData orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKFinalOnionHopData ret_var = FinalOnionHopData_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_OnionPacket_free(int64_t this_obj) { + LDKOnionPacket this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + OnionPacket_free(this_obj_conv); +} + +int8_t CS_LDK_OnionPacket_get_version(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_t ret_conv = OnionPacket_get_version(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_OnionPacket_set_version(int64_t this_ptr, int8_t val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + OnionPacket_set_version(&this_ptr_conv, val); +} + +int64_t CS_LDK_OnionPacket_get_public_key(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCResult_PublicKeySecp256k1ErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PublicKeySecp256k1ErrorZ), "LDKCResult_PublicKeySecp256k1ErrorZ"); + *ret_conv = OnionPacket_get_public_key(&this_ptr_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_OnionPacket_set_public_key(int64_t this_ptr, int64_t val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCResult_PublicKeySecp256k1ErrorZ val_conv = *(LDKCResult_PublicKeySecp256k1ErrorZ*)(val_ptr); + val_conv = CResult_PublicKeySecp256k1ErrorZ_clone((LDKCResult_PublicKeySecp256k1ErrorZ*)untag_ptr(val)); + OnionPacket_set_public_key(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_OnionPacket_get_hmac(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *OnionPacket_get_hmac(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_OnionPacket_set_hmac(int64_t this_ptr, int8_tArray val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + OnionPacket_set_hmac(&this_ptr_conv, val_ref); +} + +static inline uint64_t OnionPacket_clone_ptr(LDKOnionPacket *NONNULL_PTR arg) { + LDKOnionPacket ret_var = OnionPacket_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_OnionPacket_clone_ptr(int64_t arg) { + LDKOnionPacket arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = OnionPacket_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_OnionPacket_clone(int64_t orig) { + LDKOnionPacket orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKOnionPacket ret_var = OnionPacket_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_OnionPacket_hash(int64_t o) { + LDKOnionPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OnionPacket_hash(&o_conv); + return ret_conv; +} + +jboolean CS_LDK_OnionPacket_eq(int64_t a, int64_t b) { + LDKOnionPacket a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKOnionPacket b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = OnionPacket_eq(&a_conv, &b_conv); + return ret_conv; +} + int8_tArray CS_LDK_AcceptChannel_write(int64_t obj) { LDKAcceptChannel obj_conv; obj_conv.inner = untag_ptr(obj); @@ -45997,6 +51113,98 @@ int64_t CS_LDK_AcceptChannelV2_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_Stfu_write(int64_t obj) { + LDKStfu obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = Stfu_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_Stfu_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = Stfu_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_Splice_write(int64_t obj) { + LDKSplice obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = Splice_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_Splice_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = Splice_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_SpliceAck_write(int64_t obj) { + LDKSpliceAck obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = SpliceAck_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_SpliceAck_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = SpliceAck_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_SpliceLocked_write(int64_t obj) { + LDKSpliceLocked obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = SpliceLocked_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_SpliceLocked_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = SpliceLocked_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_TxAddInput_write(int64_t obj) { LDKTxAddInput obj_conv; obj_conv.inner = untag_ptr(obj); @@ -46595,6 +51803,29 @@ int64_t CS_LDK_UpdateFulfillHTLC_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_OnionPacket_write(int64_t obj) { + LDKOnionPacket obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = OnionPacket_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_OnionPacket_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = OnionPacket_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_UpdateAddHTLC_write(int64_t obj) { LDKUpdateAddHTLC obj_conv; obj_conv.inner = untag_ptr(obj); @@ -46641,6 +51872,29 @@ int8_tArray CS_LDK_OnionMessage_write(int64_t obj) { return ret_arr; } +int8_tArray CS_LDK_FinalOnionHopData_write(int64_t obj) { + LDKFinalOnionHopData obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = FinalOnionHopData_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_FinalOnionHopData_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = FinalOnionHopData_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_Ping_write(int64_t obj) { LDKPing obj_conv; obj_conv.inner = untag_ptr(obj); @@ -47021,6 +52275,17 @@ int64_t CS_LDK_IgnoringMessageHandler_new() { return ret_ref; } +int64_t CS_LDK_IgnoringMessageHandler_as_EventsProvider(int64_t this_arg) { + LDKIgnoringMessageHandler this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKEventsProvider* ret_ret = MALLOC(sizeof(LDKEventsProvider), "LDKEventsProvider"); + *ret_ret = IgnoringMessageHandler_as_EventsProvider(&this_arg_conv); + return tag_ptr(ret_ret, true); +} + int64_t CS_LDK_IgnoringMessageHandler_as_MessageSendEventsProvider(int64_t this_arg) { LDKIgnoringMessageHandler this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -47801,18 +53066,6 @@ int8_tArray CS_LDK_derive_private_key(int8_tArray per_commitment_point, int8_tA return ret_arr; } -int8_tArray CS_LDK_derive_public_key(int8_tArray per_commitment_point, int8_tArray base_point) { - LDKPublicKey per_commitment_point_ref; - CHECK(per_commitment_point->arr_len == 33); - memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey base_point_ref; - CHECK(base_point->arr_len == 33); - memcpy(base_point_ref.compressed_form, base_point->elems, 33); FREE(base_point); - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, derive_public_key(per_commitment_point_ref, base_point_ref).compressed_form, 33); - return ret_arr; -} - int8_tArray CS_LDK_derive_private_revocation_key(int8_tArray per_commitment_secret, int8_tArray countersignatory_revocation_base_secret) { uint8_t per_commitment_secret_arr[32]; CHECK(per_commitment_secret->arr_len == 32); @@ -47827,18 +53080,6 @@ int8_tArray CS_LDK_derive_private_revocation_key(int8_tArray per_commitment_sec return ret_arr; } -int8_tArray CS_LDK_derive_public_revocation_key(int8_tArray per_commitment_point, int8_tArray countersignatory_revocation_base_point) { - LDKPublicKey per_commitment_point_ref; - CHECK(per_commitment_point->arr_len == 33); - memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey countersignatory_revocation_base_point_ref; - CHECK(countersignatory_revocation_base_point->arr_len == 33); - memcpy(countersignatory_revocation_base_point_ref.compressed_form, countersignatory_revocation_base_point->elems, 33); FREE(countersignatory_revocation_base_point); - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, derive_public_revocation_key(per_commitment_point_ref, countersignatory_revocation_base_point_ref).compressed_form, 33); - return ret_arr; -} - void CS_LDK_TxCreationKeys_free(int64_t this_obj) { LDKTxCreationKeys this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -47870,115 +53111,139 @@ void CS_LDK_TxCreationKeys_set_per_commitment_point(int64_t this_ptr, int8_tArr TxCreationKeys_set_per_commitment_point(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_TxCreationKeys_get_revocation_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_revocation_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_revocation_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationKey ret_var = TxCreationKeys_get_revocation_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_revocation_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_revocation_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_revocation_key(&this_ptr_conv, val_ref); + LDKRevocationKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationKey_clone(&val_conv); + TxCreationKeys_set_revocation_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_broadcaster_htlc_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_broadcaster_htlc_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_broadcaster_htlc_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcKey ret_var = TxCreationKeys_get_broadcaster_htlc_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_broadcaster_htlc_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_broadcaster_htlc_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_broadcaster_htlc_key(&this_ptr_conv, val_ref); + LDKHtlcKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcKey_clone(&val_conv); + TxCreationKeys_set_broadcaster_htlc_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_countersignatory_htlc_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_countersignatory_htlc_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_countersignatory_htlc_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcKey ret_var = TxCreationKeys_get_countersignatory_htlc_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_countersignatory_htlc_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_countersignatory_htlc_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_countersignatory_htlc_key(&this_ptr_conv, val_ref); + LDKHtlcKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcKey_clone(&val_conv); + TxCreationKeys_set_countersignatory_htlc_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_broadcaster_delayed_payment_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_broadcaster_delayed_payment_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_broadcaster_delayed_payment_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKDelayedPaymentKey ret_var = TxCreationKeys_get_broadcaster_delayed_payment_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_broadcaster_delayed_payment_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_broadcaster_delayed_payment_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_broadcaster_delayed_payment_key(&this_ptr_conv, val_ref); + LDKDelayedPaymentKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = DelayedPaymentKey_clone(&val_conv); + TxCreationKeys_set_broadcaster_delayed_payment_key(&this_ptr_conv, val_conv); } -int64_t CS_LDK_TxCreationKeys_new(int8_tArray per_commitment_point_arg, int8_tArray revocation_key_arg, int8_tArray broadcaster_htlc_key_arg, int8_tArray countersignatory_htlc_key_arg, int8_tArray broadcaster_delayed_payment_key_arg) { +int64_t CS_LDK_TxCreationKeys_new(int8_tArray per_commitment_point_arg, int64_t revocation_key_arg, int64_t broadcaster_htlc_key_arg, int64_t countersignatory_htlc_key_arg, int64_t broadcaster_delayed_payment_key_arg) { LDKPublicKey per_commitment_point_arg_ref; CHECK(per_commitment_point_arg->arr_len == 33); memcpy(per_commitment_point_arg_ref.compressed_form, per_commitment_point_arg->elems, 33); FREE(per_commitment_point_arg); - LDKPublicKey revocation_key_arg_ref; - CHECK(revocation_key_arg->arr_len == 33); - memcpy(revocation_key_arg_ref.compressed_form, revocation_key_arg->elems, 33); FREE(revocation_key_arg); - LDKPublicKey broadcaster_htlc_key_arg_ref; - CHECK(broadcaster_htlc_key_arg->arr_len == 33); - memcpy(broadcaster_htlc_key_arg_ref.compressed_form, broadcaster_htlc_key_arg->elems, 33); FREE(broadcaster_htlc_key_arg); - LDKPublicKey countersignatory_htlc_key_arg_ref; - CHECK(countersignatory_htlc_key_arg->arr_len == 33); - memcpy(countersignatory_htlc_key_arg_ref.compressed_form, countersignatory_htlc_key_arg->elems, 33); FREE(countersignatory_htlc_key_arg); - LDKPublicKey broadcaster_delayed_payment_key_arg_ref; - CHECK(broadcaster_delayed_payment_key_arg->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_arg_ref.compressed_form, broadcaster_delayed_payment_key_arg->elems, 33); FREE(broadcaster_delayed_payment_key_arg); - LDKTxCreationKeys ret_var = TxCreationKeys_new(per_commitment_point_arg_ref, revocation_key_arg_ref, broadcaster_htlc_key_arg_ref, countersignatory_htlc_key_arg_ref, broadcaster_delayed_payment_key_arg_ref); + LDKRevocationKey revocation_key_arg_conv; + revocation_key_arg_conv.inner = untag_ptr(revocation_key_arg); + revocation_key_arg_conv.is_owned = ptr_is_owned(revocation_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_arg_conv); + revocation_key_arg_conv = RevocationKey_clone(&revocation_key_arg_conv); + LDKHtlcKey broadcaster_htlc_key_arg_conv; + broadcaster_htlc_key_arg_conv.inner = untag_ptr(broadcaster_htlc_key_arg); + broadcaster_htlc_key_arg_conv.is_owned = ptr_is_owned(broadcaster_htlc_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_htlc_key_arg_conv); + broadcaster_htlc_key_arg_conv = HtlcKey_clone(&broadcaster_htlc_key_arg_conv); + LDKHtlcKey countersignatory_htlc_key_arg_conv; + countersignatory_htlc_key_arg_conv.inner = untag_ptr(countersignatory_htlc_key_arg); + countersignatory_htlc_key_arg_conv.is_owned = ptr_is_owned(countersignatory_htlc_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_htlc_key_arg_conv); + countersignatory_htlc_key_arg_conv = HtlcKey_clone(&countersignatory_htlc_key_arg_conv); + LDKDelayedPaymentKey broadcaster_delayed_payment_key_arg_conv; + broadcaster_delayed_payment_key_arg_conv.inner = untag_ptr(broadcaster_delayed_payment_key_arg); + broadcaster_delayed_payment_key_arg_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_arg_conv); + broadcaster_delayed_payment_key_arg_conv = DelayedPaymentKey_clone(&broadcaster_delayed_payment_key_arg_conv); + LDKTxCreationKeys ret_var = TxCreationKeys_new(per_commitment_point_arg_ref, revocation_key_arg_conv, broadcaster_htlc_key_arg_conv, countersignatory_htlc_key_arg_conv, broadcaster_delayed_payment_key_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48084,27 +53349,31 @@ void CS_LDK_ChannelPublicKeys_set_funding_pubkey(int64_t this_ptr, int8_tArray ChannelPublicKeys_set_funding_pubkey(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_ChannelPublicKeys_get_revocation_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_revocation_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_revocation_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationBasepoint ret_var = ChannelPublicKeys_get_revocation_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_revocation_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_revocation_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_revocation_basepoint(&this_ptr_conv, val_ref); + LDKRevocationBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationBasepoint_clone(&val_conv); + ChannelPublicKeys_set_revocation_basepoint(&this_ptr_conv, val_conv); } int8_tArray CS_LDK_ChannelPublicKeys_get_payment_point(int64_t this_ptr) { @@ -48130,69 +53399,83 @@ void CS_LDK_ChannelPublicKeys_set_payment_point(int64_t this_ptr, int8_tArray v ChannelPublicKeys_set_payment_point(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_ChannelPublicKeys_get_delayed_payment_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_delayed_payment_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_delayed_payment_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKDelayedPaymentBasepoint ret_var = ChannelPublicKeys_get_delayed_payment_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_delayed_payment_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_delayed_payment_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_delayed_payment_basepoint(&this_ptr_conv, val_ref); + LDKDelayedPaymentBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = DelayedPaymentBasepoint_clone(&val_conv); + ChannelPublicKeys_set_delayed_payment_basepoint(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_ChannelPublicKeys_get_htlc_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_htlc_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_htlc_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcBasepoint ret_var = ChannelPublicKeys_get_htlc_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_htlc_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_htlc_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_htlc_basepoint(&this_ptr_conv, val_ref); + LDKHtlcBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcBasepoint_clone(&val_conv); + ChannelPublicKeys_set_htlc_basepoint(&this_ptr_conv, val_conv); } -int64_t CS_LDK_ChannelPublicKeys_new(int8_tArray funding_pubkey_arg, int8_tArray revocation_basepoint_arg, int8_tArray payment_point_arg, int8_tArray delayed_payment_basepoint_arg, int8_tArray htlc_basepoint_arg) { +int64_t CS_LDK_ChannelPublicKeys_new(int8_tArray funding_pubkey_arg, int64_t revocation_basepoint_arg, int8_tArray payment_point_arg, int64_t delayed_payment_basepoint_arg, int64_t htlc_basepoint_arg) { LDKPublicKey funding_pubkey_arg_ref; CHECK(funding_pubkey_arg->arr_len == 33); memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); - LDKPublicKey revocation_basepoint_arg_ref; - CHECK(revocation_basepoint_arg->arr_len == 33); - memcpy(revocation_basepoint_arg_ref.compressed_form, revocation_basepoint_arg->elems, 33); FREE(revocation_basepoint_arg); + LDKRevocationBasepoint revocation_basepoint_arg_conv; + revocation_basepoint_arg_conv.inner = untag_ptr(revocation_basepoint_arg); + revocation_basepoint_arg_conv.is_owned = ptr_is_owned(revocation_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_basepoint_arg_conv); + revocation_basepoint_arg_conv = RevocationBasepoint_clone(&revocation_basepoint_arg_conv); LDKPublicKey payment_point_arg_ref; CHECK(payment_point_arg->arr_len == 33); memcpy(payment_point_arg_ref.compressed_form, payment_point_arg->elems, 33); FREE(payment_point_arg); - LDKPublicKey delayed_payment_basepoint_arg_ref; - CHECK(delayed_payment_basepoint_arg->arr_len == 33); - memcpy(delayed_payment_basepoint_arg_ref.compressed_form, delayed_payment_basepoint_arg->elems, 33); FREE(delayed_payment_basepoint_arg); - LDKPublicKey htlc_basepoint_arg_ref; - CHECK(htlc_basepoint_arg->arr_len == 33); - memcpy(htlc_basepoint_arg_ref.compressed_form, htlc_basepoint_arg->elems, 33); FREE(htlc_basepoint_arg); - LDKChannelPublicKeys ret_var = ChannelPublicKeys_new(funding_pubkey_arg_ref, revocation_basepoint_arg_ref, payment_point_arg_ref, delayed_payment_basepoint_arg_ref, htlc_basepoint_arg_ref); + LDKDelayedPaymentBasepoint delayed_payment_basepoint_arg_conv; + delayed_payment_basepoint_arg_conv.inner = untag_ptr(delayed_payment_basepoint_arg); + delayed_payment_basepoint_arg_conv.is_owned = ptr_is_owned(delayed_payment_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(delayed_payment_basepoint_arg_conv); + delayed_payment_basepoint_arg_conv = DelayedPaymentBasepoint_clone(&delayed_payment_basepoint_arg_conv); + LDKHtlcBasepoint htlc_basepoint_arg_conv; + htlc_basepoint_arg_conv.inner = untag_ptr(htlc_basepoint_arg); + htlc_basepoint_arg_conv.is_owned = ptr_is_owned(htlc_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(htlc_basepoint_arg_conv); + htlc_basepoint_arg_conv = HtlcBasepoint_clone(&htlc_basepoint_arg_conv); + LDKChannelPublicKeys ret_var = ChannelPublicKeys_new(funding_pubkey_arg_ref, revocation_basepoint_arg_conv, payment_point_arg_ref, delayed_payment_basepoint_arg_conv, htlc_basepoint_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48277,23 +53560,31 @@ int64_t CS_LDK_ChannelPublicKeys_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_TxCreationKeys_derive_new(int8_tArray per_commitment_point, int8_tArray broadcaster_delayed_payment_base, int8_tArray broadcaster_htlc_base, int8_tArray countersignatory_revocation_base, int8_tArray countersignatory_htlc_base) { +int64_t CS_LDK_TxCreationKeys_derive_new(int8_tArray per_commitment_point, int64_t broadcaster_delayed_payment_base, int64_t broadcaster_htlc_base, int64_t countersignatory_revocation_base, int64_t countersignatory_htlc_base) { LDKPublicKey per_commitment_point_ref; CHECK(per_commitment_point->arr_len == 33); memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey broadcaster_delayed_payment_base_ref; - CHECK(broadcaster_delayed_payment_base->arr_len == 33); - memcpy(broadcaster_delayed_payment_base_ref.compressed_form, broadcaster_delayed_payment_base->elems, 33); FREE(broadcaster_delayed_payment_base); - LDKPublicKey broadcaster_htlc_base_ref; - CHECK(broadcaster_htlc_base->arr_len == 33); - memcpy(broadcaster_htlc_base_ref.compressed_form, broadcaster_htlc_base->elems, 33); FREE(broadcaster_htlc_base); - LDKPublicKey countersignatory_revocation_base_ref; - CHECK(countersignatory_revocation_base->arr_len == 33); - memcpy(countersignatory_revocation_base_ref.compressed_form, countersignatory_revocation_base->elems, 33); FREE(countersignatory_revocation_base); - LDKPublicKey countersignatory_htlc_base_ref; - CHECK(countersignatory_htlc_base->arr_len == 33); - memcpy(countersignatory_htlc_base_ref.compressed_form, countersignatory_htlc_base->elems, 33); FREE(countersignatory_htlc_base); - LDKTxCreationKeys ret_var = TxCreationKeys_derive_new(per_commitment_point_ref, broadcaster_delayed_payment_base_ref, broadcaster_htlc_base_ref, countersignatory_revocation_base_ref, countersignatory_htlc_base_ref); + LDKDelayedPaymentBasepoint broadcaster_delayed_payment_base_conv; + broadcaster_delayed_payment_base_conv.inner = untag_ptr(broadcaster_delayed_payment_base); + broadcaster_delayed_payment_base_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_base_conv); + broadcaster_delayed_payment_base_conv.is_owned = false; + LDKHtlcBasepoint broadcaster_htlc_base_conv; + broadcaster_htlc_base_conv.inner = untag_ptr(broadcaster_htlc_base); + broadcaster_htlc_base_conv.is_owned = ptr_is_owned(broadcaster_htlc_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_htlc_base_conv); + broadcaster_htlc_base_conv.is_owned = false; + LDKRevocationBasepoint countersignatory_revocation_base_conv; + countersignatory_revocation_base_conv.inner = untag_ptr(countersignatory_revocation_base); + countersignatory_revocation_base_conv.is_owned = ptr_is_owned(countersignatory_revocation_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_revocation_base_conv); + countersignatory_revocation_base_conv.is_owned = false; + LDKHtlcBasepoint countersignatory_htlc_base_conv; + countersignatory_htlc_base_conv.inner = untag_ptr(countersignatory_htlc_base); + countersignatory_htlc_base_conv.is_owned = ptr_is_owned(countersignatory_htlc_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_htlc_base_conv); + countersignatory_htlc_base_conv.is_owned = false; + LDKTxCreationKeys ret_var = TxCreationKeys_derive_new(per_commitment_point_ref, &broadcaster_delayed_payment_base_conv, &broadcaster_htlc_base_conv, &countersignatory_revocation_base_conv, &countersignatory_htlc_base_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48321,14 +53612,18 @@ int64_t CS_LDK_TxCreationKeys_from_channel_static_keys(int8_tArray per_commitme return ret_ref; } -int8_tArray CS_LDK_get_revokeable_redeemscript(int8_tArray revocation_key, int16_t contest_delay, int8_tArray broadcaster_delayed_payment_key) { - LDKPublicKey revocation_key_ref; - CHECK(revocation_key->arr_len == 33); - memcpy(revocation_key_ref.compressed_form, revocation_key->elems, 33); FREE(revocation_key); - LDKPublicKey broadcaster_delayed_payment_key_ref; - CHECK(broadcaster_delayed_payment_key->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_ref.compressed_form, broadcaster_delayed_payment_key->elems, 33); FREE(broadcaster_delayed_payment_key); - LDKCVec_u8Z ret_var = get_revokeable_redeemscript(revocation_key_ref, contest_delay, broadcaster_delayed_payment_key_ref); +int8_tArray CS_LDK_get_revokeable_redeemscript(int64_t revocation_key, int16_t contest_delay, int64_t broadcaster_delayed_payment_key) { + LDKRevocationKey revocation_key_conv; + revocation_key_conv.inner = untag_ptr(revocation_key); + revocation_key_conv.is_owned = ptr_is_owned(revocation_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_conv); + revocation_key_conv.is_owned = false; + LDKDelayedPaymentKey broadcaster_delayed_payment_key_conv; + broadcaster_delayed_payment_key_conv.inner = untag_ptr(broadcaster_delayed_payment_key); + broadcaster_delayed_payment_key_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_conv); + broadcaster_delayed_payment_key_conv.is_owned = false; + LDKCVec_u8Z ret_var = get_revokeable_redeemscript(&revocation_key_conv, contest_delay, &broadcaster_delayed_payment_key_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); CVec_u8Z_free(ret_var); @@ -48584,7 +53879,7 @@ int8_tArray CS_LDK_make_funding_redeemscript(int8_tArray broadcaster, int8_tArr return ret_arr; } -int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t feerate_per_kw, int16_t contest_delay, int64_t htlc, int64_t channel_type_features, int8_tArray broadcaster_delayed_payment_key, int8_tArray revocation_key) { +int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t feerate_per_kw, int16_t contest_delay, int64_t htlc, int64_t channel_type_features, int64_t broadcaster_delayed_payment_key, int64_t revocation_key) { uint8_t commitment_txid_arr[32]; CHECK(commitment_txid->arr_len == 32); memcpy(commitment_txid_arr, commitment_txid->elems, 32); FREE(commitment_txid); @@ -48599,13 +53894,17 @@ int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t channel_type_features_conv.is_owned = ptr_is_owned(channel_type_features); CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_type_features_conv); channel_type_features_conv.is_owned = false; - LDKPublicKey broadcaster_delayed_payment_key_ref; - CHECK(broadcaster_delayed_payment_key->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_ref.compressed_form, broadcaster_delayed_payment_key->elems, 33); FREE(broadcaster_delayed_payment_key); - LDKPublicKey revocation_key_ref; - CHECK(revocation_key->arr_len == 33); - memcpy(revocation_key_ref.compressed_form, revocation_key->elems, 33); FREE(revocation_key); - LDKTransaction ret_var = build_htlc_transaction(commitment_txid_ref, feerate_per_kw, contest_delay, &htlc_conv, &channel_type_features_conv, broadcaster_delayed_payment_key_ref, revocation_key_ref); + LDKDelayedPaymentKey broadcaster_delayed_payment_key_conv; + broadcaster_delayed_payment_key_conv.inner = untag_ptr(broadcaster_delayed_payment_key); + broadcaster_delayed_payment_key_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_conv); + broadcaster_delayed_payment_key_conv.is_owned = false; + LDKRevocationKey revocation_key_conv; + revocation_key_conv.inner = untag_ptr(revocation_key); + revocation_key_conv.is_owned = ptr_is_owned(revocation_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_conv); + revocation_key_conv.is_owned = false; + LDKTransaction ret_var = build_htlc_transaction(commitment_txid_ref, feerate_per_kw, contest_delay, &htlc_conv, &channel_type_features_conv, &broadcaster_delayed_payment_key_conv, &revocation_key_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); Transaction_free(ret_var); @@ -50431,6 +55730,96 @@ int64_t CS_LDK_ChannelTypeFeatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_InitFeatures_hash(int64_t o) { + LDKInitFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = InitFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_NodeFeatures_hash(int64_t o) { + LDKNodeFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_ChannelFeatures_hash(int64_t o) { + LDKChannelFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_Bolt11InvoiceFeatures_hash(int64_t o) { + LDKBolt11InvoiceFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Bolt11InvoiceFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_OfferFeatures_hash(int64_t o) { + LDKOfferFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OfferFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_InvoiceRequestFeatures_hash(int64_t o) { + LDKInvoiceRequestFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = InvoiceRequestFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_Bolt12InvoiceFeatures_hash(int64_t o) { + LDKBolt12InvoiceFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Bolt12InvoiceFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedHopFeatures_hash(int64_t o) { + LDKBlindedHopFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = BlindedHopFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_ChannelTypeFeatures_hash(int64_t o) { + LDKChannelTypeFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelTypeFeatures_hash(&o_conv); + return ret_conv; +} + void CS_LDK_InitFeatures_free(int64_t this_obj) { LDKInitFeatures this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -52411,6 +57800,82 @@ jboolean CS_LDK_ChannelTypeFeatures_requires_anchors_zero_fee_htlc_tx(int64_t t return ret_conv; } +void CS_LDK_InitFeatures_set_route_blinding_optional(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + InitFeatures_set_route_blinding_optional(&this_arg_conv); +} + +void CS_LDK_InitFeatures_set_route_blinding_required(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + InitFeatures_set_route_blinding_required(&this_arg_conv); +} + +jboolean CS_LDK_InitFeatures_supports_route_blinding(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = InitFeatures_supports_route_blinding(&this_arg_conv); + return ret_conv; +} + +void CS_LDK_NodeFeatures_set_route_blinding_optional(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + NodeFeatures_set_route_blinding_optional(&this_arg_conv); +} + +void CS_LDK_NodeFeatures_set_route_blinding_required(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + NodeFeatures_set_route_blinding_required(&this_arg_conv); +} + +jboolean CS_LDK_NodeFeatures_supports_route_blinding(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = NodeFeatures_supports_route_blinding(&this_arg_conv); + return ret_conv; +} + +jboolean CS_LDK_InitFeatures_requires_route_blinding(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = InitFeatures_requires_route_blinding(&this_arg_conv); + return ret_conv; +} + +jboolean CS_LDK_NodeFeatures_requires_route_blinding(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = NodeFeatures_requires_route_blinding(&this_arg_conv); + return ret_conv; +} + void CS_LDK_InitFeatures_set_shutdown_any_segwit_optional(int64_t this_arg) { LDKInitFeatures this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -53124,9 +58589,10 @@ int8_tArray CS_LDK_InvalidShutdownScript_get_script(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = InvalidShutdownScript_get_script(&this_ptr_conv); + LDKCVec_u8Z ret_var = InvalidShutdownScript_get_script(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -53232,14 +58698,13 @@ int64_t CS_LDK_ShutdownScript_new_p2wsh(int8_tArray script_hash) { return ret_ref; } -int64_t CS_LDK_ShutdownScript_new_witness_program(int8_t version, int8_tArray program) { - - LDKu8slice program_ref; - program_ref.datalen = program->arr_len; - program_ref.data = program->elems; +int64_t CS_LDK_ShutdownScript_new_witness_program(int64_t witness_program) { + void* witness_program_ptr = untag_ptr(witness_program); + CHECK_ACCESS(witness_program_ptr); + LDKWitnessProgram witness_program_conv = *(LDKWitnessProgram*)(witness_program_ptr); + witness_program_conv = WitnessProgram_clone((LDKWitnessProgram*)untag_ptr(witness_program)); LDKCResult_ShutdownScriptInvalidShutdownScriptZ* ret_conv = MALLOC(sizeof(LDKCResult_ShutdownScriptInvalidShutdownScriptZ), "LDKCResult_ShutdownScriptInvalidShutdownScriptZ"); - *ret_conv = ShutdownScript_new_witness_program((LDKWitnessVersion){ ._0 = version }, program_ref); - FREE(program); + *ret_conv = ShutdownScript_new_witness_program(witness_program_conv); return tag_ptr(ret_conv, true); } @@ -54004,6 +59469,16 @@ jboolean CS_LDK_Offer_is_expired(int64_t this_arg) { return ret_conv; } +jboolean CS_LDK_Offer_is_expired_no_std(int64_t this_arg, int64_t duration_since_epoch) { + LDKOffer this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = Offer_is_expired_no_std(&this_arg_conv, duration_since_epoch); + return ret_conv; +} + jboolean CS_LDK_Offer_is_valid_quantity(int64_t this_arg, int64_t quantity) { LDKOffer this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -56101,6 +61576,70 @@ void CS_LDK_TaggedHash_free(int64_t this_obj) { TaggedHash_free(this_obj_conv); } +static inline uint64_t TaggedHash_clone_ptr(LDKTaggedHash *NONNULL_PTR arg) { + LDKTaggedHash ret_var = TaggedHash_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_TaggedHash_clone_ptr(int64_t arg) { + LDKTaggedHash arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = TaggedHash_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_TaggedHash_clone(int64_t orig) { + LDKTaggedHash orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKTaggedHash ret_var = TaggedHash_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_TaggedHash_as_digest(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *TaggedHash_as_digest(&this_arg_conv), 32); + return ret_arr; +} + +jstring CS_LDK_TaggedHash_tag(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKStr ret_str = TaggedHash_tag(&this_arg_conv); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + +int8_tArray CS_LDK_TaggedHash_merkle_root(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, TaggedHash_merkle_root(&this_arg_conv).data, 32); + return ret_arr; +} + void CS_LDK_Bolt12ParseError_free(int64_t this_obj) { LDKBolt12ParseError this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -56353,6 +61892,16 @@ jboolean CS_LDK_Refund_is_expired(int64_t this_arg) { return ret_conv; } +jboolean CS_LDK_Refund_is_expired_no_std(int64_t this_arg, int64_t duration_since_epoch) { + LDKRefund this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = Refund_is_expired_no_std(&this_arg_conv, duration_since_epoch); + return ret_conv; +} + int64_t CS_LDK_Refund_issuer(int64_t this_arg) { LDKRefund this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -56713,6 +62262,17 @@ int8_tArray CS_LDK_NodeId_as_slice(int64_t this_arg) { return ret_arr; } +int8_tArray CS_LDK_NodeId_as_array(int64_t this_arg) { + LDKNodeId this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, *NodeId_as_array(&this_arg_conv), 33); + return ret_arr; +} + int64_t CS_LDK_NodeId_as_pubkey(int64_t this_arg) { LDKNodeId this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -57551,16 +63111,6 @@ int64_t CS_LDK_DirectedChannelInfo_channel(int64_t this_arg) { return ret_ref; } -int64_t CS_LDK_DirectedChannelInfo_htlc_maximum_msat(int64_t this_arg) { - LDKDirectedChannelInfo this_arg_conv; - this_arg_conv.inner = untag_ptr(this_arg); - this_arg_conv.is_owned = ptr_is_owned(this_arg); - CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); - this_arg_conv.is_owned = false; - int64_t ret_conv = DirectedChannelInfo_htlc_maximum_msat(&this_arg_conv); - return ret_conv; -} - int64_t CS_LDK_DirectedChannelInfo_effective_capacity(int64_t this_arg) { LDKDirectedChannelInfo this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -58100,6 +63650,16 @@ int64_t CS_LDK_NodeAlias_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_NodeAlias_hash(int64_t o) { + LDKNodeAlias o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeAlias_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_NodeAlias_eq(int64_t a, int64_t b) { LDKNodeAlias a_conv; a_conv.inner = untag_ptr(a); @@ -58692,7 +64252,7 @@ void CS_LDK_DefaultRouter_free(int64_t this_obj) { DefaultRouter_free(this_obj_conv); } -int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tArray random_seed_bytes, int64_t scorer, int64_t score_params) { +int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int64_t entropy_source, int64_t scorer, int64_t score_params) { LDKNetworkGraph network_graph_conv; network_graph_conv.inner = untag_ptr(network_graph); network_graph_conv.is_owned = ptr_is_owned(network_graph); @@ -58705,9 +64265,13 @@ int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tA // If this_arg is a JCalls struct, then we need to increment the refcnt in it. LDKLogger_JCalls_cloned(&logger_conv); } - LDKThirtyTwoBytes random_seed_bytes_ref; - CHECK(random_seed_bytes->arr_len == 32); - memcpy(random_seed_bytes_ref.data, random_seed_bytes->elems, 32); FREE(random_seed_bytes); + void* entropy_source_ptr = untag_ptr(entropy_source); + CHECK_ACCESS(entropy_source_ptr); + LDKEntropySource entropy_source_conv = *(LDKEntropySource*)(entropy_source_ptr); + if (entropy_source_conv.free == LDKEntropySource_JCalls_free) { + // If this_arg is a JCalls struct, then we need to increment the refcnt in it. + LDKEntropySource_JCalls_cloned(&entropy_source_conv); + } void* scorer_ptr = untag_ptr(scorer); CHECK_ACCESS(scorer_ptr); LDKLockableScore scorer_conv = *(LDKLockableScore*)(scorer_ptr); @@ -58720,7 +64284,7 @@ int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tA score_params_conv.is_owned = ptr_is_owned(score_params); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_conv); score_params_conv = ProbabilisticScoringFeeParameters_clone(&score_params_conv); - LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv, random_seed_bytes_ref, scorer_conv, score_params_conv); + LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv, entropy_source_conv, scorer_conv, score_params_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -58738,6 +64302,17 @@ int64_t CS_LDK_DefaultRouter_as_Router(int64_t this_arg) { return tag_ptr(ret_ret, true); } +int64_t CS_LDK_DefaultRouter_as_MessageRouter(int64_t this_arg) { + LDKDefaultRouter this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKMessageRouter* ret_ret = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); + *ret_ret = DefaultRouter_as_MessageRouter(&this_arg_conv); + return tag_ptr(ret_ret, true); +} + void CS_LDK_Router_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -60149,7 +65724,47 @@ void CS_LDK_PaymentParameters_set_previously_failed_channels(int64_t this_ptr, PaymentParameters_set_previously_failed_channels(&this_ptr_conv, val_constr); } -int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg, int32_t max_total_cltv_expiry_delta_arg, int8_t max_path_count_arg, int8_t max_channel_saturation_power_of_half_arg, int64_tArray previously_failed_channels_arg) { +int64_tArray CS_LDK_PaymentParameters_get_previously_failed_blinded_path_idxs(int64_t this_ptr) { + LDKPaymentParameters this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u64Z ret_var = PaymentParameters_get_previously_failed_blinded_path_idxs(&this_ptr_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t g = 0; g < ret_var.datalen; g++) { + int64_t ret_conv_6_conv = ret_var.data[g]; + ret_arr_ptr[g] = ret_conv_6_conv; + } + + FREE(ret_var.data); + return ret_arr; +} + +void CS_LDK_PaymentParameters_set_previously_failed_blinded_path_idxs(int64_t this_ptr, int64_tArray val) { + LDKPaymentParameters this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u64Z val_constr; + val_constr.datalen = val->arr_len; + if (val_constr.datalen > 0) + val_constr.data = MALLOC(val_constr.datalen * sizeof(int64_t), "LDKCVec_u64Z Elements"); + else + val_constr.data = NULL; + int64_t* val_vals = val->elems; + for (size_t g = 0; g < val_constr.datalen; g++) { + int64_t val_conv_6 = val_vals[g]; + val_constr.data[g] = val_conv_6; + } + FREE(val); + PaymentParameters_set_previously_failed_blinded_path_idxs(&this_ptr_conv, val_constr); +} + +int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg, int32_t max_total_cltv_expiry_delta_arg, int8_t max_path_count_arg, int8_t max_channel_saturation_power_of_half_arg, int64_tArray previously_failed_channels_arg, int64_tArray previously_failed_blinded_path_idxs_arg) { void* payee_arg_ptr = untag_ptr(payee_arg); CHECK_ACCESS(payee_arg_ptr); LDKPayee payee_arg_conv = *(LDKPayee*)(payee_arg_ptr); @@ -60170,7 +65785,19 @@ int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg previously_failed_channels_arg_constr.data[g] = previously_failed_channels_arg_conv_6; } FREE(previously_failed_channels_arg); - LDKPaymentParameters ret_var = PaymentParameters_new(payee_arg_conv, expiry_time_arg_conv, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, previously_failed_channels_arg_constr); + LDKCVec_u64Z previously_failed_blinded_path_idxs_arg_constr; + previously_failed_blinded_path_idxs_arg_constr.datalen = previously_failed_blinded_path_idxs_arg->arr_len; + if (previously_failed_blinded_path_idxs_arg_constr.datalen > 0) + previously_failed_blinded_path_idxs_arg_constr.data = MALLOC(previously_failed_blinded_path_idxs_arg_constr.datalen * sizeof(int64_t), "LDKCVec_u64Z Elements"); + else + previously_failed_blinded_path_idxs_arg_constr.data = NULL; + int64_t* previously_failed_blinded_path_idxs_arg_vals = previously_failed_blinded_path_idxs_arg->elems; + for (size_t g = 0; g < previously_failed_blinded_path_idxs_arg_constr.datalen; g++) { + int64_t previously_failed_blinded_path_idxs_arg_conv_6 = previously_failed_blinded_path_idxs_arg_vals[g]; + previously_failed_blinded_path_idxs_arg_constr.data[g] = previously_failed_blinded_path_idxs_arg_conv_6; + } + FREE(previously_failed_blinded_path_idxs_arg); + LDKPaymentParameters ret_var = PaymentParameters_new(payee_arg_conv, expiry_time_arg_conv, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, previously_failed_channels_arg_constr, previously_failed_blinded_path_idxs_arg_constr); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -60823,6 +66450,351 @@ int64_t CS_LDK_RouteHintHop_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +void CS_LDK_FirstHopCandidate_free(int64_t this_obj) { + LDKFirstHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + FirstHopCandidate_free(this_obj_conv); +} + +static inline uint64_t FirstHopCandidate_clone_ptr(LDKFirstHopCandidate *NONNULL_PTR arg) { + LDKFirstHopCandidate ret_var = FirstHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_FirstHopCandidate_clone_ptr(int64_t arg) { + LDKFirstHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = FirstHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_FirstHopCandidate_clone(int64_t orig) { + LDKFirstHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKFirstHopCandidate ret_var = FirstHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_PublicHopCandidate_free(int64_t this_obj) { + LDKPublicHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PublicHopCandidate_free(this_obj_conv); +} + +int64_t CS_LDK_PublicHopCandidate_get_short_channel_id(int64_t this_ptr) { + LDKPublicHopCandidate this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = PublicHopCandidate_get_short_channel_id(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PublicHopCandidate_set_short_channel_id(int64_t this_ptr, int64_t val) { + LDKPublicHopCandidate this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PublicHopCandidate_set_short_channel_id(&this_ptr_conv, val); +} + +static inline uint64_t PublicHopCandidate_clone_ptr(LDKPublicHopCandidate *NONNULL_PTR arg) { + LDKPublicHopCandidate ret_var = PublicHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PublicHopCandidate_clone_ptr(int64_t arg) { + LDKPublicHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PublicHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PublicHopCandidate_clone(int64_t orig) { + LDKPublicHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPublicHopCandidate ret_var = PublicHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_PrivateHopCandidate_free(int64_t this_obj) { + LDKPrivateHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PrivateHopCandidate_free(this_obj_conv); +} + +static inline uint64_t PrivateHopCandidate_clone_ptr(LDKPrivateHopCandidate *NONNULL_PTR arg) { + LDKPrivateHopCandidate ret_var = PrivateHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PrivateHopCandidate_clone_ptr(int64_t arg) { + LDKPrivateHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PrivateHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PrivateHopCandidate_clone(int64_t orig) { + LDKPrivateHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPrivateHopCandidate ret_var = PrivateHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_BlindedPathCandidate_free(int64_t this_obj) { + LDKBlindedPathCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + BlindedPathCandidate_free(this_obj_conv); +} + +static inline uint64_t BlindedPathCandidate_clone_ptr(LDKBlindedPathCandidate *NONNULL_PTR arg) { + LDKBlindedPathCandidate ret_var = BlindedPathCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_BlindedPathCandidate_clone_ptr(int64_t arg) { + LDKBlindedPathCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = BlindedPathCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedPathCandidate_clone(int64_t orig) { + LDKBlindedPathCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKBlindedPathCandidate ret_var = BlindedPathCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_OneHopBlindedPathCandidate_free(int64_t this_obj) { + LDKOneHopBlindedPathCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + OneHopBlindedPathCandidate_free(this_obj_conv); +} + +static inline uint64_t OneHopBlindedPathCandidate_clone_ptr(LDKOneHopBlindedPathCandidate *NONNULL_PTR arg) { + LDKOneHopBlindedPathCandidate ret_var = OneHopBlindedPathCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_OneHopBlindedPathCandidate_clone_ptr(int64_t arg) { + LDKOneHopBlindedPathCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = OneHopBlindedPathCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_OneHopBlindedPathCandidate_clone(int64_t orig) { + LDKOneHopBlindedPathCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKOneHopBlindedPathCandidate ret_var = OneHopBlindedPathCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_CandidateRouteHop_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKCandidateRouteHop this_ptr_conv = *(LDKCandidateRouteHop*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + CandidateRouteHop_free(this_ptr_conv); +} + +static inline uint64_t CandidateRouteHop_clone_ptr(LDKCandidateRouteHop *NONNULL_PTR arg) { + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_CandidateRouteHop_clone_ptr(int64_t arg) { + LDKCandidateRouteHop* arg_conv = (LDKCandidateRouteHop*)untag_ptr(arg); + int64_t ret_conv = CandidateRouteHop_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_clone(int64_t orig) { + LDKCandidateRouteHop* orig_conv = (LDKCandidateRouteHop*)untag_ptr(orig); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_first_hop(int64_t a) { + LDKFirstHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = FirstHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_first_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_public_hop(int64_t a) { + LDKPublicHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = PublicHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_public_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_private_hop(int64_t a) { + LDKPrivateHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = PrivateHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_private_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_blinded(int64_t a) { + LDKBlindedPathCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = BlindedPathCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_blinded(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_one_hop_blinded(int64_t a) { + LDKOneHopBlindedPathCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = OneHopBlindedPathCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_one_hop_blinded(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_globally_unique_short_channel_id(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = CandidateRouteHop_globally_unique_short_channel_id(this_arg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int32_t CS_LDK_CandidateRouteHop_cltv_expiry_delta(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + int32_t ret_conv = CandidateRouteHop_cltv_expiry_delta(this_arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_htlc_minimum_msat(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + int64_t ret_conv = CandidateRouteHop_htlc_minimum_msat(this_arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_fees(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKRoutingFees ret_var = CandidateRouteHop_fees(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_source(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKNodeId ret_var = CandidateRouteHop_source(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_target(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKNodeId ret_var = CandidateRouteHop_target(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + int64_t CS_LDK_find_route(int8_tArray our_node_pubkey, int64_t route_params, int64_t network_graph, int64_tArray first_hops, int64_t logger, int64_t scorer, int64_t score_params, int8_tArray random_seed_bytes) { LDKPublicKey our_node_pubkey_ref; CHECK(our_node_pubkey->arr_len == 33); @@ -61958,27 +67930,31 @@ void CS_LDK_DelayedPaymentOutputDescriptor_set_output(int64_t this_ptr, int64_t DelayedPaymentOutputDescriptor_set_output(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_DelayedPaymentOutputDescriptor_get_revocation_pubkey(int64_t this_ptr) { +int64_t CS_LDK_DelayedPaymentOutputDescriptor_get_revocation_pubkey(int64_t this_ptr) { LDKDelayedPaymentOutputDescriptor this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, DelayedPaymentOutputDescriptor_get_revocation_pubkey(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationKey ret_var = DelayedPaymentOutputDescriptor_get_revocation_pubkey(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_DelayedPaymentOutputDescriptor_set_revocation_pubkey(int64_t this_ptr, int8_tArray val) { +void CS_LDK_DelayedPaymentOutputDescriptor_set_revocation_pubkey(int64_t this_ptr, int64_t val) { LDKDelayedPaymentOutputDescriptor this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - DelayedPaymentOutputDescriptor_set_revocation_pubkey(&this_ptr_conv, val_ref); + LDKRevocationKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationKey_clone(&val_conv); + DelayedPaymentOutputDescriptor_set_revocation_pubkey(&this_ptr_conv, val_conv); } int8_tArray CS_LDK_DelayedPaymentOutputDescriptor_get_channel_keys_id(int64_t this_ptr) { @@ -62023,7 +67999,7 @@ void CS_LDK_DelayedPaymentOutputDescriptor_set_channel_value_satoshis(int64_t t DelayedPaymentOutputDescriptor_set_channel_value_satoshis(&this_ptr_conv, val); } -int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tArray per_commitment_point_arg, int16_t to_self_delay_arg, int64_t output_arg, int8_tArray revocation_pubkey_arg, int8_tArray channel_keys_id_arg, int64_t channel_value_satoshis_arg) { +int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tArray per_commitment_point_arg, int16_t to_self_delay_arg, int64_t output_arg, int64_t revocation_pubkey_arg, int8_tArray channel_keys_id_arg, int64_t channel_value_satoshis_arg) { LDKOutPoint outpoint_arg_conv; outpoint_arg_conv.inner = untag_ptr(outpoint_arg); outpoint_arg_conv.is_owned = ptr_is_owned(outpoint_arg); @@ -62036,13 +68012,15 @@ int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tA CHECK_ACCESS(output_arg_ptr); LDKTxOut output_arg_conv = *(LDKTxOut*)(output_arg_ptr); output_arg_conv = TxOut_clone((LDKTxOut*)untag_ptr(output_arg)); - LDKPublicKey revocation_pubkey_arg_ref; - CHECK(revocation_pubkey_arg->arr_len == 33); - memcpy(revocation_pubkey_arg_ref.compressed_form, revocation_pubkey_arg->elems, 33); FREE(revocation_pubkey_arg); + LDKRevocationKey revocation_pubkey_arg_conv; + revocation_pubkey_arg_conv.inner = untag_ptr(revocation_pubkey_arg); + revocation_pubkey_arg_conv.is_owned = ptr_is_owned(revocation_pubkey_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_pubkey_arg_conv); + revocation_pubkey_arg_conv = RevocationKey_clone(&revocation_pubkey_arg_conv); LDKThirtyTwoBytes channel_keys_id_arg_ref; CHECK(channel_keys_id_arg->arr_len == 32); memcpy(channel_keys_id_arg_ref.data, channel_keys_id_arg->elems, 32); FREE(channel_keys_id_arg); - LDKDelayedPaymentOutputDescriptor ret_var = DelayedPaymentOutputDescriptor_new(outpoint_arg_conv, per_commitment_point_arg_ref, to_self_delay_arg, output_arg_conv, revocation_pubkey_arg_ref, channel_keys_id_arg_ref, channel_value_satoshis_arg); + LDKDelayedPaymentOutputDescriptor ret_var = DelayedPaymentOutputDescriptor_new(outpoint_arg_conv, per_commitment_point_arg_ref, to_self_delay_arg, output_arg_conv, revocation_pubkey_arg_conv, channel_keys_id_arg_ref, channel_value_satoshis_arg); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -62409,7 +68387,7 @@ int64_t CS_LDK_SpendableOutputDescriptor_clone(int64_t orig) { return ret_ref; } -int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_t output) { +int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_t output, int8_tArray channel_keys_id) { LDKOutPoint outpoint_conv; outpoint_conv.inner = untag_ptr(outpoint); outpoint_conv.is_owned = ptr_is_owned(outpoint); @@ -62419,8 +68397,11 @@ int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_ CHECK_ACCESS(output_ptr); LDKTxOut output_conv = *(LDKTxOut*)(output_ptr); output_conv = TxOut_clone((LDKTxOut*)untag_ptr(output)); + LDKThirtyTwoBytes channel_keys_id_ref; + CHECK(channel_keys_id->arr_len == 32); + memcpy(channel_keys_id_ref.data, channel_keys_id->elems, 32); FREE(channel_keys_id); LDKSpendableOutputDescriptor *ret_copy = MALLOC(sizeof(LDKSpendableOutputDescriptor), "LDKSpendableOutputDescriptor"); - *ret_copy = SpendableOutputDescriptor_static_output(outpoint_conv, output_conv); + *ret_copy = SpendableOutputDescriptor_static_output(outpoint_conv, output_conv, channel_keys_id_ref); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -62522,7 +68503,7 @@ int64_t CS_LDK_SpendableOutputDescriptor_create_spendable_outputs_psbt(int64_tA CHECK_ACCESS(locktime_ptr); LDKCOption_u32Z locktime_conv = *(LDKCOption_u32Z*)(locktime_ptr); locktime_conv = COption_u32Z_clone((LDKCOption_u32Z*)untag_ptr(locktime)); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); *ret_conv = SpendableOutputDescriptor_create_spendable_outputs_psbt(descriptors_constr, outputs_constr, change_destination_script_ref, feerate_sat_per_1000_weight, locktime_conv); return tag_ptr(ret_conv, true); } @@ -63029,46 +69010,6 @@ void CS_LDK_ChannelSigner_free(int64_t this_ptr) { ChannelSigner_free(this_ptr_conv); } -void CS_LDK_EcdsaChannelSigner_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKEcdsaChannelSigner this_ptr_conv = *(LDKEcdsaChannelSigner*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - EcdsaChannelSigner_free(this_ptr_conv); -} - -static inline uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg) { - LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); - *ret_ret = WriteableEcdsaChannelSigner_clone(arg); - return tag_ptr(ret_ret, true); -} -int64_t CS_LDK_WriteableEcdsaChannelSigner_clone_ptr(int64_t arg) { - void* arg_ptr = untag_ptr(arg); - if (ptr_is_owned(arg)) { CHECK_ACCESS(arg_ptr); } - LDKWriteableEcdsaChannelSigner* arg_conv = (LDKWriteableEcdsaChannelSigner*)arg_ptr; - int64_t ret_conv = WriteableEcdsaChannelSigner_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_WriteableEcdsaChannelSigner_clone(int64_t orig) { - void* orig_ptr = untag_ptr(orig); - if (ptr_is_owned(orig)) { CHECK_ACCESS(orig_ptr); } - LDKWriteableEcdsaChannelSigner* orig_conv = (LDKWriteableEcdsaChannelSigner*)orig_ptr; - LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); - *ret_ret = WriteableEcdsaChannelSigner_clone(orig_conv); - return tag_ptr(ret_ret, true); -} - -void CS_LDK_WriteableEcdsaChannelSigner_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKWriteableEcdsaChannelSigner this_ptr_conv = *(LDKWriteableEcdsaChannelSigner*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - WriteableEcdsaChannelSigner_free(this_ptr_conv); -} - int32_t CS_LDK_Recipient_clone(int64_t orig) { LDKRecipient* orig_conv = (LDKRecipient*)untag_ptr(orig); int32_t ret_conv = LDKRecipient_to_cs(Recipient_clone(orig_conv)); @@ -63424,7 +69365,7 @@ int64_t CS_LDK_InMemorySigner_sign_counterparty_payment_input(int64_t this_arg, descriptor_conv.is_owned = ptr_is_owned(descriptor); CHECK_INNER_FIELD_ACCESS_OR_NULL(descriptor_conv); descriptor_conv.is_owned = false; - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); *ret_conv = InMemorySigner_sign_counterparty_payment_input(&this_arg_conv, spend_tx_ref, input_idx, &descriptor_conv); return tag_ptr(ret_conv, true); } @@ -63445,7 +69386,7 @@ int64_t CS_LDK_InMemorySigner_sign_dynamic_p2wsh_input(int64_t this_arg, int8_t descriptor_conv.is_owned = ptr_is_owned(descriptor); CHECK_INNER_FIELD_ACCESS_OR_NULL(descriptor_conv); descriptor_conv.is_owned = false; - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); *ret_conv = InMemorySigner_sign_dynamic_p2wsh_input(&this_arg_conv, spend_tx_ref, input_idx, &descriptor_conv); return tag_ptr(ret_conv, true); } @@ -63834,6 +69775,46 @@ int8_tArray CS_LDK_PhantomKeysManager_get_phantom_node_secret_key(int64_t this_ return ret_arr; } +void CS_LDK_EcdsaChannelSigner_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKEcdsaChannelSigner this_ptr_conv = *(LDKEcdsaChannelSigner*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + EcdsaChannelSigner_free(this_ptr_conv); +} + +static inline uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg) { + LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); + *ret_ret = WriteableEcdsaChannelSigner_clone(arg); + return tag_ptr(ret_ret, true); +} +int64_t CS_LDK_WriteableEcdsaChannelSigner_clone_ptr(int64_t arg) { + void* arg_ptr = untag_ptr(arg); + if (ptr_is_owned(arg)) { CHECK_ACCESS(arg_ptr); } + LDKWriteableEcdsaChannelSigner* arg_conv = (LDKWriteableEcdsaChannelSigner*)arg_ptr; + int64_t ret_conv = WriteableEcdsaChannelSigner_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_WriteableEcdsaChannelSigner_clone(int64_t orig) { + void* orig_ptr = untag_ptr(orig); + if (ptr_is_owned(orig)) { CHECK_ACCESS(orig_ptr); } + LDKWriteableEcdsaChannelSigner* orig_conv = (LDKWriteableEcdsaChannelSigner*)orig_ptr; + LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); + *ret_ret = WriteableEcdsaChannelSigner_clone(orig_conv); + return tag_ptr(ret_ret, true); +} + +void CS_LDK_WriteableEcdsaChannelSigner_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKWriteableEcdsaChannelSigner this_ptr_conv = *(LDKWriteableEcdsaChannelSigner*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + WriteableEcdsaChannelSigner_free(this_ptr_conv); +} + void CS_LDK_OnionMessenger_free(int64_t this_obj) { LDKOnionMessenger this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -63859,8 +69840,20 @@ void CS_LDK_DefaultMessageRouter_free(int64_t this_obj) { DefaultMessageRouter_free(this_obj_conv); } -int64_t CS_LDK_DefaultMessageRouter_new() { - LDKDefaultMessageRouter ret_var = DefaultMessageRouter_new(); +int64_t CS_LDK_DefaultMessageRouter_new(int64_t network_graph, int64_t entropy_source) { + LDKNetworkGraph network_graph_conv; + network_graph_conv.inner = untag_ptr(network_graph); + network_graph_conv.is_owned = ptr_is_owned(network_graph); + CHECK_INNER_FIELD_ACCESS_OR_NULL(network_graph_conv); + network_graph_conv.is_owned = false; + void* entropy_source_ptr = untag_ptr(entropy_source); + CHECK_ACCESS(entropy_source_ptr); + LDKEntropySource entropy_source_conv = *(LDKEntropySource*)(entropy_source_ptr); + if (entropy_source_conv.free == LDKEntropySource_JCalls_free) { + // If this_arg is a JCalls struct, then we need to increment the refcnt in it. + LDKEntropySource_JCalls_cloned(&entropy_source_conv); + } + LDKDefaultMessageRouter ret_var = DefaultMessageRouter_new(&network_graph_conv, entropy_source_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -63955,7 +69948,32 @@ void CS_LDK_OnionMessagePath_set_destination(int64_t this_ptr, int64_t val) { OnionMessagePath_set_destination(&this_ptr_conv, val_conv); } -int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t destination_arg) { +int64_t CS_LDK_OnionMessagePath_get_first_node_addresses(int64_t this_ptr) { + LDKOnionMessagePath this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_CVec_SocketAddressZZ *ret_copy = MALLOC(sizeof(LDKCOption_CVec_SocketAddressZZ), "LDKCOption_CVec_SocketAddressZZ"); + *ret_copy = OnionMessagePath_get_first_node_addresses(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_OnionMessagePath_set_first_node_addresses(int64_t this_ptr, int64_t val) { + LDKOnionMessagePath this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_CVec_SocketAddressZZ val_conv = *(LDKCOption_CVec_SocketAddressZZ*)(val_ptr); + val_conv = COption_CVec_SocketAddressZZ_clone((LDKCOption_CVec_SocketAddressZZ*)untag_ptr(val)); + OnionMessagePath_set_first_node_addresses(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t destination_arg, int64_t first_node_addresses_arg) { LDKCVec_PublicKeyZ intermediate_nodes_arg_constr; intermediate_nodes_arg_constr.datalen = intermediate_nodes_arg->arr_len; if (intermediate_nodes_arg_constr.datalen > 0) @@ -63975,7 +69993,10 @@ int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t de CHECK_ACCESS(destination_arg_ptr); LDKDestination destination_arg_conv = *(LDKDestination*)(destination_arg_ptr); destination_arg_conv = Destination_clone((LDKDestination*)untag_ptr(destination_arg)); - LDKOnionMessagePath ret_var = OnionMessagePath_new(intermediate_nodes_arg_constr, destination_arg_conv); + void* first_node_addresses_arg_ptr = untag_ptr(first_node_addresses_arg); + CHECK_ACCESS(first_node_addresses_arg_ptr); + LDKCOption_CVec_SocketAddressZZ first_node_addresses_arg_conv = *(LDKCOption_CVec_SocketAddressZZ*)(first_node_addresses_arg_ptr); + LDKOnionMessagePath ret_var = OnionMessagePath_new(intermediate_nodes_arg_constr, destination_arg_conv, first_node_addresses_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -64012,6 +70033,17 @@ int64_t CS_LDK_OnionMessagePath_clone(int64_t orig) { return ret_ref; } +int8_tArray CS_LDK_OnionMessagePath_first_node(int64_t this_arg) { + LDKOnionMessagePath this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, OnionMessagePath_first_node(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + void CS_LDK_Destination_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -64063,6 +70095,59 @@ int64_t CS_LDK_Destination_blinded_path(int64_t a) { return ret_ref; } +void CS_LDK_SendSuccess_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKSendSuccess this_ptr_conv = *(LDKSendSuccess*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + SendSuccess_free(this_ptr_conv); +} + +static inline uint64_t SendSuccess_clone_ptr(LDKSendSuccess *NONNULL_PTR arg) { + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_SendSuccess_clone_ptr(int64_t arg) { + LDKSendSuccess* arg_conv = (LDKSendSuccess*)untag_ptr(arg); + int64_t ret_conv = SendSuccess_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SendSuccess_clone(int64_t orig) { + LDKSendSuccess* orig_conv = (LDKSendSuccess*)untag_ptr(orig); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendSuccess_buffered() { + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_buffered(); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendSuccess_buffered_awaiting_connection(int8_tArray a) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_buffered_awaiting_connection(a_ref); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +jboolean CS_LDK_SendSuccess_eq(int64_t a, int64_t b) { + LDKSendSuccess* a_conv = (LDKSendSuccess*)untag_ptr(a); + LDKSendSuccess* b_conv = (LDKSendSuccess*)untag_ptr(b); + jboolean ret_conv = SendSuccess_eq(a_conv, b_conv); + return ret_conv; +} + void CS_LDK_SendError_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -64114,9 +70199,19 @@ int64_t CS_LDK_SendError_too_few_blinded_hops() { return ret_ref; } -int64_t CS_LDK_SendError_invalid_first_hop() { +int64_t CS_LDK_SendError_invalid_first_hop(int8_tArray a) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); + *ret_copy = SendError_invalid_first_hop(a_ref); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendError_path_not_found() { LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = SendError_invalid_first_hop(); + *ret_copy = SendError_path_not_found(); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -64252,7 +70347,7 @@ int64_t CS_LDK_create_onion_message(int64_t entropy_source, int64_t node_signer reply_path_conv.is_owned = ptr_is_owned(reply_path); CHECK_INNER_FIELD_ACCESS_OR_NULL(reply_path_conv); reply_path_conv = BlindedPath_clone(&reply_path_conv); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); *ret_conv = create_onion_message(entropy_source_conv, node_signer_conv, path_conv, contents_conv, reply_path_conv); return tag_ptr(ret_conv, true); } @@ -64339,17 +70434,12 @@ int64_t CS_LDK_OnionMessenger_new(int64_t entropy_source, int64_t node_signer, return ret_ref; } -int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t path, int64_t contents, int64_t reply_path) { +int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t contents, int64_t destination, int64_t reply_path) { LDKOnionMessenger this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv.is_owned = false; - LDKOnionMessagePath path_conv; - path_conv.inner = untag_ptr(path); - path_conv.is_owned = ptr_is_owned(path); - CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); - path_conv = OnionMessagePath_clone(&path_conv); void* contents_ptr = untag_ptr(contents); CHECK_ACCESS(contents_ptr); LDKOnionMessageContents contents_conv = *(LDKOnionMessageContents*)(contents_ptr); @@ -64357,13 +70447,17 @@ int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t path // If this_arg is a JCalls struct, then we need to increment the refcnt in it. LDKOnionMessageContents_JCalls_cloned(&contents_conv); } + void* destination_ptr = untag_ptr(destination); + CHECK_ACCESS(destination_ptr); + LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); + destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); LDKBlindedPath reply_path_conv; reply_path_conv.inner = untag_ptr(reply_path); reply_path_conv.is_owned = ptr_is_owned(reply_path); CHECK_INNER_FIELD_ACCESS_OR_NULL(reply_path_conv); reply_path_conv = BlindedPath_clone(&reply_path_conv); - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = OnionMessenger_send_onion_message(&this_arg_conv, path_conv, contents_conv, reply_path_conv); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = OnionMessenger_send_onion_message(&this_arg_conv, contents_conv, destination_conv, reply_path_conv); return tag_ptr(ret_conv, true); } @@ -64457,6 +70551,13 @@ jboolean CS_LDK_OffersMessage_is_known_type(int64_t tlv_type) { return ret_conv; } +int64_t CS_LDK_OffersMessage_as_OnionMessageContents(int64_t this_arg) { + LDKOffersMessage* this_arg_conv = (LDKOffersMessage*)untag_ptr(this_arg); + LDKOnionMessageContents* ret_ret = MALLOC(sizeof(LDKOnionMessageContents), "LDKOnionMessageContents"); + *ret_ret = OffersMessage_as_OnionMessageContents(this_arg_conv); + return tag_ptr(ret_ret, true); +} + int8_tArray CS_LDK_OffersMessage_write(int64_t obj) { LDKOffersMessage* obj_conv = (LDKOffersMessage*)untag_ptr(obj); LDKCVec_u8Z ret_var = OffersMessage_write(obj_conv); @@ -64626,6 +70727,16 @@ int64_t CS_LDK_Packet_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Packet_hash(int64_t o) { + LDKPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Packet_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Packet_eq(int64_t a, int64_t b) { LDKPacket a_conv; a_conv.inner = untag_ptr(a); @@ -65123,6 +71234,40 @@ int64_t CS_LDK_BlindedPath_one_hop_for_payment(int8_tArray payee_node_id, int64 return tag_ptr(ret_conv, true); } +int64_t CS_LDK_BlindedPath_new_for_payment(int64_tArray intermediate_nodes, int8_tArray payee_node_id, int64_t payee_tlvs, int64_t htlc_maximum_msat, int64_t entropy_source) { + LDKCVec_ForwardNodeZ intermediate_nodes_constr; + intermediate_nodes_constr.datalen = intermediate_nodes->arr_len; + if (intermediate_nodes_constr.datalen > 0) + intermediate_nodes_constr.data = MALLOC(intermediate_nodes_constr.datalen * sizeof(LDKForwardNode), "LDKCVec_ForwardNodeZ Elements"); + else + intermediate_nodes_constr.data = NULL; + int64_t* intermediate_nodes_vals = intermediate_nodes->elems; + for (size_t n = 0; n < intermediate_nodes_constr.datalen; n++) { + int64_t intermediate_nodes_conv_13 = intermediate_nodes_vals[n]; + LDKForwardNode intermediate_nodes_conv_13_conv; + intermediate_nodes_conv_13_conv.inner = untag_ptr(intermediate_nodes_conv_13); + intermediate_nodes_conv_13_conv.is_owned = ptr_is_owned(intermediate_nodes_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(intermediate_nodes_conv_13_conv); + intermediate_nodes_conv_13_conv = ForwardNode_clone(&intermediate_nodes_conv_13_conv); + intermediate_nodes_constr.data[n] = intermediate_nodes_conv_13_conv; + } + FREE(intermediate_nodes); + LDKPublicKey payee_node_id_ref; + CHECK(payee_node_id->arr_len == 33); + memcpy(payee_node_id_ref.compressed_form, payee_node_id->elems, 33); FREE(payee_node_id); + LDKReceiveTlvs payee_tlvs_conv; + payee_tlvs_conv.inner = untag_ptr(payee_tlvs); + payee_tlvs_conv.is_owned = ptr_is_owned(payee_tlvs); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payee_tlvs_conv); + payee_tlvs_conv = ReceiveTlvs_clone(&payee_tlvs_conv); + void* entropy_source_ptr = untag_ptr(entropy_source); + if (ptr_is_owned(entropy_source)) { CHECK_ACCESS(entropy_source_ptr); } + LDKEntropySource* entropy_source_conv = (LDKEntropySource*)entropy_source_ptr; + LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ), "LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ"); + *ret_conv = BlindedPath_new_for_payment(intermediate_nodes_constr, payee_node_id_ref, payee_tlvs_conv, htlc_maximum_msat, entropy_source_conv); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_BlindedPath_write(int64_t obj) { LDKBlindedPath obj_conv; obj_conv.inner = untag_ptr(obj); @@ -65770,16 +71915,6 @@ int8_tArray CS_LDK_ReceiveTlvs_write(int64_t obj) { return ret_arr; } -int64_t CS_LDK_ReceiveTlvs_read(int8_tArray ser) { - LDKu8slice ser_ref; - ser_ref.datalen = ser->arr_len; - ser_ref.data = ser->elems; - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = ReceiveTlvs_read(ser_ref); - FREE(ser); - return tag_ptr(ret_conv, true); -} - int8_tArray CS_LDK_PaymentRelay_write(int64_t obj) { LDKPaymentRelay obj_conv; obj_conv.inner = untag_ptr(obj); @@ -65886,6 +72021,14 @@ jboolean CS_LDK_PaymentPurpose_eq(int64_t a, int64_t b) { return ret_conv; } +int64_t CS_LDK_PaymentPurpose_preimage(int64_t this_arg) { + LDKPaymentPurpose* this_arg_conv = (LDKPaymentPurpose*)untag_ptr(this_arg); + LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); + *ret_copy = PaymentPurpose_preimage(this_arg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int8_tArray CS_LDK_PaymentPurpose_write(int64_t obj) { LDKPaymentPurpose* obj_conv = (LDKPaymentPurpose*)untag_ptr(obj); LDKCVec_u8Z ret_var = PaymentPurpose_write(obj_conv); @@ -65997,14 +72140,33 @@ void CS_LDK_ClaimedHTLC_set_value_msat(int64_t this_ptr, int64_t val) { ClaimedHTLC_set_value_msat(&this_ptr_conv, val); } -int64_t CS_LDK_ClaimedHTLC_new(int8_tArray channel_id_arg, int8_tArray user_channel_id_arg, int32_t cltv_expiry_arg, int64_t value_msat_arg) { +int64_t CS_LDK_ClaimedHTLC_get_counterparty_skimmed_fee_msat(int64_t this_ptr) { + LDKClaimedHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = ClaimedHTLC_get_counterparty_skimmed_fee_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_ClaimedHTLC_set_counterparty_skimmed_fee_msat(int64_t this_ptr, int64_t val) { + LDKClaimedHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + ClaimedHTLC_set_counterparty_skimmed_fee_msat(&this_ptr_conv, val); +} + +int64_t CS_LDK_ClaimedHTLC_new(int8_tArray channel_id_arg, int8_tArray user_channel_id_arg, int32_t cltv_expiry_arg, int64_t value_msat_arg, int64_t counterparty_skimmed_fee_msat_arg) { LDKThirtyTwoBytes channel_id_arg_ref; CHECK(channel_id_arg->arr_len == 32); memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); LDKU128 user_channel_id_arg_ref; CHECK(user_channel_id_arg->arr_len == 16); memcpy(user_channel_id_arg_ref.le_bytes, user_channel_id_arg->elems, 16); FREE(user_channel_id_arg); - LDKClaimedHTLC ret_var = ClaimedHTLC_new(channel_id_arg_ref, user_channel_id_arg_ref, cltv_expiry_arg, value_msat_arg); + LDKClaimedHTLC ret_var = ClaimedHTLC_new(channel_id_arg_ref, user_channel_id_arg_ref, cltv_expiry_arg, value_msat_arg, counterparty_skimmed_fee_msat_arg); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -66562,6 +72724,31 @@ int64_t CS_LDK_Event_payment_claimed(int8_tArray receiver_node_id, int8_tArray return ret_ref; } +int64_t CS_LDK_Event_connection_needed(int8_tArray node_id, int64_tArray addresses) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKCVec_SocketAddressZ addresses_constr; + addresses_constr.datalen = addresses->arr_len; + if (addresses_constr.datalen > 0) + addresses_constr.data = MALLOC(addresses_constr.datalen * sizeof(LDKSocketAddress), "LDKCVec_SocketAddressZ Elements"); + else + addresses_constr.data = NULL; + int64_t* addresses_vals = addresses->elems; + for (size_t p = 0; p < addresses_constr.datalen; p++) { + int64_t addresses_conv_15 = addresses_vals[p]; + void* addresses_conv_15_ptr = untag_ptr(addresses_conv_15); + CHECK_ACCESS(addresses_conv_15_ptr); + LDKSocketAddress addresses_conv_15_conv = *(LDKSocketAddress*)(addresses_conv_15_ptr); + addresses_constr.data[p] = addresses_conv_15_conv; + } + FREE(addresses); + LDKEvent *ret_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); + *ret_copy = Event_connection_needed(node_id_ref, addresses_constr); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int64_t CS_LDK_Event_invoice_request_failed(int8_tArray payment_id) { LDKThirtyTwoBytes payment_id_ref; CHECK(payment_id->arr_len == 32); @@ -66812,7 +72999,7 @@ int64_t CS_LDK_Event_channel_ready(int8_tArray channel_id, int8_tArray user_cha return ret_ref; } -int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_channel_id, int64_t reason, int8_tArray counterparty_node_id, int64_t channel_capacity_sats) { +int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_channel_id, int64_t reason, int8_tArray counterparty_node_id, int64_t channel_capacity_sats, int64_t channel_funding_txo) { LDKThirtyTwoBytes channel_id_ref; CHECK(channel_id->arr_len == 32); memcpy(channel_id_ref.data, channel_id->elems, 32); FREE(channel_id); @@ -66830,8 +73017,13 @@ int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_ch CHECK_ACCESS(channel_capacity_sats_ptr); LDKCOption_u64Z channel_capacity_sats_conv = *(LDKCOption_u64Z*)(channel_capacity_sats_ptr); channel_capacity_sats_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(channel_capacity_sats)); + LDKOutPoint channel_funding_txo_conv; + channel_funding_txo_conv.inner = untag_ptr(channel_funding_txo); + channel_funding_txo_conv.is_owned = ptr_is_owned(channel_funding_txo); + CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_funding_txo_conv); + channel_funding_txo_conv = OutPoint_clone(&channel_funding_txo_conv); LDKEvent *ret_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); - *ret_copy = Event_channel_closed(channel_id_ref, user_channel_id_ref, reason_conv, counterparty_node_id_ref, channel_capacity_sats_conv); + *ret_copy = Event_channel_closed(channel_id_ref, user_channel_id_ref, reason_conv, counterparty_node_id_ref, channel_capacity_sats_conv, channel_funding_txo_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -67039,6 +73231,66 @@ int64_t CS_LDK_MessageSendEvent_send_funding_signed(int8_tArray node_id, int64_ return ret_ref; } +int64_t CS_LDK_MessageSendEvent_send_stfu(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKStfu msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = Stfu_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_stfu(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSplice msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = Splice_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice_ack(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSpliceAck msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = SpliceAck_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice_ack(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice_locked(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSpliceLocked msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = SpliceLocked_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice_locked(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int64_t CS_LDK_MessageSendEvent_send_tx_add_input(int8_tArray node_id, int64_t msg) { LDKPublicKey node_id_ref; CHECK(node_id->arr_len == 33); @@ -70346,13 +76598,26 @@ int64_t CS_LDK_Description_new(jstring description) { return tag_ptr(ret_conv, true); } -jstring CS_LDK_Description_into_inner(int64_t this_arg) { +int64_t CS_LDK_Description_into_inner(int64_t this_arg) { LDKDescription this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv = Description_clone(&this_arg_conv); - LDKStr ret_str = Description_into_inner(this_arg_conv); + LDKUntrustedString ret_var = Description_into_inner(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jstring CS_LDK_Description_to_str(int64_t o) { + LDKDescription o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + LDKStr ret_str = Description_to_str(&o_conv); jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); Str_free(ret_str); return ret_conv; @@ -70599,239 +76864,28 @@ jstring CS_LDK_SignOrCreationError_to_str(int64_t o) { return ret_conv; } -int64_t CS_LDK_pay_invoice(int64_t invoice, int64_t retry_strategy, int64_t channelmanager) { +int64_t CS_LDK_payment_parameters_from_zero_amount_invoice(int64_t invoice, int64_t amount_msat) { LDKBolt11Invoice invoice_conv; invoice_conv.inner = untag_ptr(invoice); invoice_conv.is_owned = ptr_is_owned(invoice); CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); invoice_conv.is_owned = false; - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = pay_invoice(&invoice_conv, retry_strategy_conv, &channelmanager_conv); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = payment_parameters_from_zero_amount_invoice(&invoice_conv, amount_msat); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_pay_invoice_with_id(int64_t invoice, int8_tArray payment_id, int64_t retry_strategy, int64_t channelmanager) { +int64_t CS_LDK_payment_parameters_from_invoice(int64_t invoice) { LDKBolt11Invoice invoice_conv; invoice_conv.inner = untag_ptr(invoice); invoice_conv.is_owned = ptr_is_owned(invoice); CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); invoice_conv.is_owned = false; - LDKThirtyTwoBytes payment_id_ref; - CHECK(payment_id->arr_len == 32); - memcpy(payment_id_ref.data, payment_id->elems, 32); FREE(payment_id); - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = pay_invoice_with_id(&invoice_conv, payment_id_ref, retry_strategy_conv, &channelmanager_conv); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = payment_parameters_from_invoice(&invoice_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_pay_zero_value_invoice(int64_t invoice, int64_t amount_msats, int64_t retry_strategy, int64_t channelmanager) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = pay_zero_value_invoice(&invoice_conv, amount_msats, retry_strategy_conv, &channelmanager_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_pay_zero_value_invoice_with_id(int64_t invoice, int64_t amount_msats, int8_tArray payment_id, int64_t retry_strategy, int64_t channelmanager) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKThirtyTwoBytes payment_id_ref; - CHECK(payment_id->arr_len == 32); - memcpy(payment_id_ref.data, payment_id->elems, 32); FREE(payment_id); - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = pay_zero_value_invoice_with_id(&invoice_conv, amount_msats, payment_id_ref, retry_strategy_conv, &channelmanager_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_preflight_probe_invoice(int64_t invoice, int64_t channelmanager, int64_t liquidity_limit_multiplier) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - void* liquidity_limit_multiplier_ptr = untag_ptr(liquidity_limit_multiplier); - CHECK_ACCESS(liquidity_limit_multiplier_ptr); - LDKCOption_u64Z liquidity_limit_multiplier_conv = *(LDKCOption_u64Z*)(liquidity_limit_multiplier_ptr); - liquidity_limit_multiplier_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(liquidity_limit_multiplier)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = preflight_probe_invoice(&invoice_conv, &channelmanager_conv, liquidity_limit_multiplier_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_preflight_probe_zero_value_invoice(int64_t invoice, int64_t amount_msat, int64_t channelmanager, int64_t liquidity_limit_multiplier) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - void* liquidity_limit_multiplier_ptr = untag_ptr(liquidity_limit_multiplier); - CHECK_ACCESS(liquidity_limit_multiplier_ptr); - LDKCOption_u64Z liquidity_limit_multiplier_conv = *(LDKCOption_u64Z*)(liquidity_limit_multiplier_ptr); - liquidity_limit_multiplier_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(liquidity_limit_multiplier)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = preflight_probe_zero_value_invoice(&invoice_conv, amount_msat, &channelmanager_conv, liquidity_limit_multiplier_conv); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_PaymentError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKPaymentError this_ptr_conv = *(LDKPaymentError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - PaymentError_free(this_ptr_conv); -} - -static inline uint64_t PaymentError_clone_ptr(LDKPaymentError *NONNULL_PTR arg) { - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_PaymentError_clone_ptr(int64_t arg) { - LDKPaymentError* arg_conv = (LDKPaymentError*)untag_ptr(arg); - int64_t ret_conv = PaymentError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_PaymentError_clone(int64_t orig) { - LDKPaymentError* orig_conv = (LDKPaymentError*)untag_ptr(orig); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_PaymentError_invoice(jstring a) { - LDKStr a_conv = str_ref_to_owned_c(a); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_invoice(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_PaymentError_sending(int32_t a) { - LDKRetryableSendFailure a_conv = LDKRetryableSendFailure_from_cs(a); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_sending(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -jboolean CS_LDK_PaymentError_eq(int64_t a, int64_t b) { - LDKPaymentError* a_conv = (LDKPaymentError*)untag_ptr(a); - LDKPaymentError* b_conv = (LDKPaymentError*)untag_ptr(b); - jboolean ret_conv = PaymentError_eq(a_conv, b_conv); - return ret_conv; -} - -void CS_LDK_ProbingError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKProbingError this_ptr_conv = *(LDKProbingError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - ProbingError_free(this_ptr_conv); -} - -static inline uint64_t ProbingError_clone_ptr(LDKProbingError *NONNULL_PTR arg) { - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_ProbingError_clone_ptr(int64_t arg) { - LDKProbingError* arg_conv = (LDKProbingError*)untag_ptr(arg); - int64_t ret_conv = ProbingError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_ProbingError_clone(int64_t orig) { - LDKProbingError* orig_conv = (LDKProbingError*)untag_ptr(orig); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_ProbingError_invoice(jstring a) { - LDKStr a_conv = str_ref_to_owned_c(a); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_invoice(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_ProbingError_sending(int64_t a) { - void* a_ptr = untag_ptr(a); - CHECK_ACCESS(a_ptr); - LDKProbeSendFailure a_conv = *(LDKProbeSendFailure*)(a_ptr); - a_conv = ProbeSendFailure_clone((LDKProbeSendFailure*)untag_ptr(a)); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_sending(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -jboolean CS_LDK_ProbingError_eq(int64_t a, int64_t b) { - LDKProbingError* a_conv = (LDKProbingError*)untag_ptr(a); - LDKProbingError* b_conv = (LDKProbingError*)untag_ptr(b); - jboolean ret_conv = ProbingError_eq(a_conv, b_conv); - return ret_conv; -} - int64_t CS_LDK_create_phantom_invoice(int64_t amt_msat, int64_t payment_hash, jstring description, int32_t invoice_expiry_delta_secs, int64_tArray phantom_route_hints, int64_t entropy_source, int64_t node_signer, int64_t logger, int32_t network, int64_t min_final_cltv_expiry_delta, int64_t duration_since_epoch) { void* amt_msat_ptr = untag_ptr(amt_msat); CHECK_ACCESS(amt_msat_ptr); @@ -71215,6 +77269,58 @@ jstring CS_LDK_SiPrefix_to_str(int64_t o) { return ret_conv; } +void CS_LDK_GraphSyncError_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKGraphSyncError this_ptr_conv = *(LDKGraphSyncError*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + GraphSyncError_free(this_ptr_conv); +} + +static inline uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg) { + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_GraphSyncError_clone_ptr(int64_t arg) { + LDKGraphSyncError* arg_conv = (LDKGraphSyncError*)untag_ptr(arg); + int64_t ret_conv = GraphSyncError_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_GraphSyncError_clone(int64_t orig) { + LDKGraphSyncError* orig_conv = (LDKGraphSyncError*)untag_ptr(orig); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_GraphSyncError_decode_error(int64_t a) { + void* a_ptr = untag_ptr(a); + CHECK_ACCESS(a_ptr); + LDKDecodeError a_conv = *(LDKDecodeError*)(a_ptr); + a_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(a)); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_decode_error(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_GraphSyncError_lightning_error(int64_t a) { + LDKLightningError a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = LightningError_clone(&a_conv); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_lightning_error(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + void CS_LDK_RapidGossipSync_free(int64_t this_obj) { LDKRapidGossipSync this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -71299,55 +77405,3 @@ jboolean CS_LDK_RapidGossipSync_is_initial_sync_complete(int64_t this_arg) { return ret_conv; } -void CS_LDK_GraphSyncError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKGraphSyncError this_ptr_conv = *(LDKGraphSyncError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - GraphSyncError_free(this_ptr_conv); -} - -static inline uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg) { - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_GraphSyncError_clone_ptr(int64_t arg) { - LDKGraphSyncError* arg_conv = (LDKGraphSyncError*)untag_ptr(arg); - int64_t ret_conv = GraphSyncError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_GraphSyncError_clone(int64_t orig) { - LDKGraphSyncError* orig_conv = (LDKGraphSyncError*)untag_ptr(orig); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_GraphSyncError_decode_error(int64_t a) { - void* a_ptr = untag_ptr(a); - CHECK_ACCESS(a_ptr); - LDKDecodeError a_conv = *(LDKDecodeError*)(a_ptr); - a_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(a)); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_decode_error(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_GraphSyncError_lightning_error(int64_t a) { - LDKLightningError a_conv; - a_conv.inner = untag_ptr(a); - a_conv.is_owned = ptr_is_owned(a); - CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); - a_conv = LightningError_clone(&a_conv); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_lightning_error(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - diff --git a/c_sharp/bindings.c.body b/c_sharp/bindings.c.body index b595907e..6eea9029 100644 --- a/c_sharp/bindings.c.body +++ b/c_sharp/bindings.c.body @@ -27,6 +27,18 @@ _Static_assert(offsetof(LDKCVec_u8Z, datalen) == offsetof(LDKu8slice, datalen), _Static_assert(sizeof(void*) <= 8, "Pointers must fit into 64 bits"); +// Int types across Windows/Linux are different, so make sure we're using the right headers. +_Static_assert(sizeof(void*) == sizeof(uintptr_t), "stdints must be correct"); +_Static_assert(sizeof(void*) == sizeof(intptr_t), "stdints must be correct"); +_Static_assert(sizeof(uint64_t) == 8, "stdints must be correct"); +_Static_assert(sizeof(int64_t) == 8, "stdints must be correct"); +_Static_assert(sizeof(uint32_t) == 4, "stdints must be correct"); +_Static_assert(sizeof(int32_t) == 4, "stdints must be correct"); +_Static_assert(sizeof(uint16_t) == 2, "stdints must be correct"); +_Static_assert(sizeof(int16_t) == 2, "stdints must be correct"); +_Static_assert(sizeof(uint8_t) == 1, "stdints must be correct"); +_Static_assert(sizeof(int8_t) == 1, "stdints must be correct"); + #define DECL_ARR_TYPE(ty, name) \ struct name##array { \ uint64_t arr_len; /* uint32_t would suffice but we want to align uint64_ts as well */ \ @@ -111,6 +123,13 @@ int CS_LDK_register_void_l_invoker(invoker_void_l invoker) { return 0; } +typedef int64_t (*invoker_l_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); +static invoker_l_lll js_invoke_function_l_lll; +int CS_LDK_register_l_lll_invoker(invoker_l_lll invoker) { + js_invoke_function_l_lll = invoker; + return 0; +} + typedef int64_t (*invoker_l_llll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c, int64_t d); static invoker_l_llll js_invoke_function_l_llll; int CS_LDK_register_l_llll_invoker(invoker_l_llll invoker) { @@ -125,10 +144,10 @@ int CS_LDK_register_l_lllll_invoker(invoker_l_lllll invoker) { return 0; } -typedef int64_t (*invoker_l_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); -static invoker_l_lll js_invoke_function_l_lll; -int CS_LDK_register_l_lll_invoker(invoker_l_lll invoker) { - js_invoke_function_l_lll = invoker; +typedef void (*invoker_void_lll)(int obj_ptr, int fn_id, int64_t a, int64_t b, int64_t c); +static invoker_void_lll js_invoke_function_void_lll; +int CS_LDK_register_void_lll_invoker(invoker_void_lll invoker) { + js_invoke_function_void_lll = invoker; return 0; } @@ -335,6 +354,20 @@ static inline uint64_t tag_ptr(const void* ptr, bool is_owned) { } } +static inline LDKBlindedFailure LDKBlindedFailure_from_cs(int32_t ord) { + switch (ord) { + case 0: return LDKBlindedFailure_FromIntroductionNode; + case 1: return LDKBlindedFailure_FromBlindedNode; + default: abort(); + } +} +static inline int32_t LDKBlindedFailure_to_cs(LDKBlindedFailure val) { + switch (val) { + case LDKBlindedFailure_FromIntroductionNode: return 0; + case LDKBlindedFailure_FromBlindedNode: return 1; + default: abort(); + } +} static inline LDKBolt11SemanticError LDKBolt11SemanticError_from_cs(int32_t ord) { switch (ord) { case 0: return LDKBolt11SemanticError_NoPaymentHash; @@ -482,24 +515,22 @@ static inline int32_t LDKChannelShutdownState_to_cs(LDKChannelShutdownState val) static inline LDKConfirmationTarget LDKConfirmationTarget_from_cs(int32_t ord) { switch (ord) { case 0: return LDKConfirmationTarget_OnChainSweep; - case 1: return LDKConfirmationTarget_MaxAllowedNonAnchorChannelRemoteFee; - case 2: return LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee; - case 3: return LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee; - case 4: return LDKConfirmationTarget_AnchorChannelFee; - case 5: return LDKConfirmationTarget_NonAnchorChannelFee; - case 6: return LDKConfirmationTarget_ChannelCloseMinimum; + case 1: return LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee; + case 2: return LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee; + case 3: return LDKConfirmationTarget_AnchorChannelFee; + case 4: return LDKConfirmationTarget_NonAnchorChannelFee; + case 5: return LDKConfirmationTarget_ChannelCloseMinimum; default: abort(); } } static inline int32_t LDKConfirmationTarget_to_cs(LDKConfirmationTarget val) { switch (val) { case LDKConfirmationTarget_OnChainSweep: return 0; - case LDKConfirmationTarget_MaxAllowedNonAnchorChannelRemoteFee: return 1; - case LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee: return 2; - case LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee: return 3; - case LDKConfirmationTarget_AnchorChannelFee: return 4; - case LDKConfirmationTarget_NonAnchorChannelFee: return 5; - case LDKConfirmationTarget_ChannelCloseMinimum: return 6; + case LDKConfirmationTarget_MinAllowedAnchorChannelRemoteFee: return 1; + case LDKConfirmationTarget_MinAllowedNonAnchorChannelRemoteFee: return 2; + case LDKConfirmationTarget_AnchorChannelFee: return 3; + case LDKConfirmationTarget_NonAnchorChannelFee: return 4; + case LDKConfirmationTarget_ChannelCloseMinimum: return 5; default: abort(); } } @@ -785,6 +816,11 @@ static inline int32_t LDKUtxoLookupError_to_cs(LDKUtxoLookupError val) { default: abort(); } } +static inline LDKCVec_u8Z CVec_u8Z_clone(const LDKCVec_u8Z *orig) { + LDKCVec_u8Z ret = { .data = MALLOC(sizeof(int8_t) * orig->datalen, "LDKCVec_u8Z clone bytes"), .datalen = orig->datalen }; + memcpy(ret.data, orig->data, sizeof(int8_t) * ret.datalen); + return ret; +} struct LDKThirtyTwoBytes BigEndianScalar_get_bytes (struct LDKBigEndianScalar* thing) { LDKThirtyTwoBytes ret = { .data = *thing->big_endian_bytes }; return ret; @@ -831,63 +867,6 @@ int8_t CS_LDK_LDKBech32Error_InvalidData_get_invalid_data(int64_t ptr) { int8_t invalid_data_conv = obj->invalid_data; return invalid_data_conv; } -static inline LDKCVec_u8Z CVec_u8Z_clone(const LDKCVec_u8Z *orig) { - LDKCVec_u8Z ret = { .data = MALLOC(sizeof(int8_t) * orig->datalen, "LDKCVec_u8Z clone bytes"), .datalen = orig->datalen }; - memcpy(ret.data, orig->data, sizeof(int8_t) * ret.datalen); - return ret; -} -struct LDKWitness TxIn_get_witness (struct LDKTxIn* thing) { return Witness_clone(&thing->witness);}int8_tArray CS_LDK_TxIn_get_witness(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - LDKWitness ret_var = TxIn_get_witness(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - Witness_free(ret_var); - return ret_arr; -} - -struct LDKCVec_u8Z TxIn_get_script_sig (struct LDKTxIn* thing) { return CVec_u8Z_clone(&thing->script_sig);}int8_tArray CS_LDK_TxIn_get_script_sig(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - LDKCVec_u8Z ret_var = TxIn_get_script_sig(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - CVec_u8Z_free(ret_var); - return ret_arr; -} - -LDKThirtyTwoBytes TxIn_get_previous_txid (struct LDKTxIn* thing) { return thing->previous_txid;}int8_tArray CS_LDK_TxIn_get_previous_txid(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, TxIn_get_previous_txid(thing_conv).data, 32); - return ret_arr; -} - -uint32_t TxIn_get_previous_vout (struct LDKTxIn* thing) { return thing->previous_vout;}int32_t CS_LDK_TxIn_get_previous_vout(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int32_t ret_conv = TxIn_get_previous_vout(thing_conv); - return ret_conv; -} - -uint32_t TxIn_get_sequence (struct LDKTxIn* thing) { return thing->sequence;}int32_t CS_LDK_TxIn_get_sequence(int64_t thing) { - LDKTxIn* thing_conv = (LDKTxIn*)untag_ptr(thing); - int32_t ret_conv = TxIn_get_sequence(thing_conv); - return ret_conv; -} - -struct LDKCVec_u8Z TxOut_get_script_pubkey (struct LDKTxOut* thing) { return CVec_u8Z_clone(&thing->script_pubkey);}int8_tArray CS_LDK_TxOut_get_script_pubkey(int64_t thing) { - LDKTxOut* thing_conv = (LDKTxOut*)untag_ptr(thing); - LDKCVec_u8Z ret_var = TxOut_get_script_pubkey(thing_conv); - int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); - memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); - CVec_u8Z_free(ret_var); - return ret_arr; -} - -uint64_t TxOut_get_value (struct LDKTxOut* thing) { return thing->value;}int64_t CS_LDK_TxOut_get_value(int64_t thing) { - LDKTxOut* thing_conv = (LDKTxOut*)untag_ptr(thing); - int64_t ret_conv = TxOut_get_value(thing_conv); - return ret_conv; -} - uint32_t CS_LDK_LDKCOption_u64Z_ty_from_ptr(int64_t ptr) { LDKCOption_u64Z *obj = (LDKCOption_u64Z*)untag_ptr(ptr); switch(obj->tag) { @@ -1350,6 +1329,13 @@ int64_t CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_output(int64_t ptr) LDKTxOut* output_ref = &obj->static_output.output; return tag_ptr(output_ref, false); } +int8_tArray CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_channel_keys_id(int64_t ptr) { + LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)untag_ptr(ptr); + CHECK(obj->tag == LDKSpendableOutputDescriptor_StaticOutput); + int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); + memcpy(channel_keys_id_arr->elems, obj->static_output.channel_keys_id.data, 32); + return channel_keys_id_arr; +} int64_t CS_LDK_LDKSpendableOutputDescriptor_DelayedPaymentOutput_get_delayed_payment_output(int64_t ptr) { LDKSpendableOutputDescriptor *obj = (LDKSpendableOutputDescriptor*)untag_ptr(ptr); CHECK(obj->tag == LDKSpendableOutputDescriptor_DelayedPaymentOutput); @@ -1420,45 +1406,45 @@ int32_t CS_LDK_LDKCOption_u32Z_Some_get_some(int64_t ptr) { int32_t some_conv = obj->some; return some_conv; } -static inline struct LDKCVec_u8Z C2Tuple_CVec_u8ZusizeZ_get_a(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner){ +static inline struct LDKCVec_u8Z C2Tuple_CVec_u8Zu64Z_get_a(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner){ return CVec_u8Z_clone(&owner->a); } -int8_tArray CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_a(int64_t owner) { - LDKC2Tuple_CVec_u8ZusizeZ* owner_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(owner); - LDKCVec_u8Z ret_var = C2Tuple_CVec_u8ZusizeZ_get_a(owner_conv); +int8_tArray CS_LDK_C2Tuple_CVec_u8Zu64Z_get_a(int64_t owner) { + LDKC2Tuple_CVec_u8Zu64Z* owner_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(owner); + LDKCVec_u8Z ret_var = C2Tuple_CVec_u8Zu64Z_get_a(owner_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); CVec_u8Z_free(ret_var); return ret_arr; } -static inline uintptr_t C2Tuple_CVec_u8ZusizeZ_get_b(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner){ +static inline uint64_t C2Tuple_CVec_u8Zu64Z_get_b(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner){ return owner->b; } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_b(int64_t owner) { - LDKC2Tuple_CVec_u8ZusizeZ* owner_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(owner); - int64_t ret_conv = C2Tuple_CVec_u8ZusizeZ_get_b(owner_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_get_b(int64_t owner) { + LDKC2Tuple_CVec_u8Zu64Z* owner_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(owner); + int64_t ret_conv = C2Tuple_CVec_u8Zu64Z_get_b(owner_conv); return ret_conv; } -static inline struct LDKC2Tuple_CVec_u8ZusizeZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner){ +static inline struct LDKC2Tuple_CVec_u8Zu64Z CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return C2Tuple_CVec_u8ZusizeZ_clone(&*owner->contents.result); + return C2Tuple_CVec_u8Zu64Z_clone(&*owner->contents.result); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(owner); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(int64_t owner) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(owner); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(owner_conv); return tag_ptr(ret_conv, true); } -static inline void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner){ +static inline void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return *owner->contents.err; } -void CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(owner); - CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(owner_conv); +void CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(int64_t owner) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* owner_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(owner); + CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(owner_conv); } static inline struct LDKChannelDerivationParameters CResult_ChannelDerivationParametersDecodeErrorZ_get_ok(LDKCResult_ChannelDerivationParametersDecodeErrorZ *NONNULL_PTR owner){ @@ -1531,74 +1517,6 @@ void CS_LDK_CResult_NoneNoneZ_get_err(int64_t owner) { CResult_NoneNoneZ_get_err(owner_conv); } -static inline struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ - return owner->a; -} -int8_tArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(int64_t owner) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); - int8_tArray ret_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_arr->elems, C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(owner_conv).compact_form, 64); - return ret_arr; -} - -static inline struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ - return owner->b; -} -ptrArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(int64_t owner) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); - LDKCVec_ECDSASignatureZ ret_var = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(owner_conv); - ptrArray ret_arr = NULL; - ret_arr = init_ptrArray(ret_var.datalen, __LINE__); - int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); - for (size_t i = 0; i < ret_var.datalen; i++) { - int8_tArray ret_conv_8_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_conv_8_arr->elems, ret_var.data[i].compact_form, 64); - ret_arr_ptr[i] = ret_conv_8_arr; - } - - return ret_arr; -} - -static inline struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(&*owner->contents.result); -} -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(owner_conv); - return tag_ptr(ret_conv, true); -} - -static inline void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); - CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(owner_conv); -} - -static inline struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return *owner->contents.result; -} -int8_tArray CS_LDK_CResult_ECDSASignatureNoneZ_get_ok(int64_t owner) { - LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); - int8_tArray ret_arr = init_int8_tArray(64, __LINE__); - memcpy(ret_arr->elems, CResult_ECDSASignatureNoneZ_get_ok(owner_conv).compact_form, 64); - return ret_arr; -} - -static inline void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_ECDSASignatureNoneZ_get_err(int64_t owner) { - LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); - CResult_ECDSASignatureNoneZ_get_err(owner_conv); -} - static inline struct LDKPublicKey CResult_PublicKeyNoneZ_get_ok(LDKCResult_PublicKeyNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); return *owner->contents.result; @@ -1673,6 +1591,74 @@ void CS_LDK_CResult_SchnorrSignatureNoneZ_get_err(int64_t owner) { CResult_SchnorrSignatureNoneZ_get_err(owner_conv); } +static inline struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return *owner->contents.result; +} +int8_tArray CS_LDK_CResult_ECDSASignatureNoneZ_get_ok(int64_t owner) { + LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_arr->elems, CResult_ECDSASignatureNoneZ_get_ok(owner_conv).compact_form, 64); + return ret_arr; +} + +static inline void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_ECDSASignatureNoneZ_get_err(int64_t owner) { + LDKCResult_ECDSASignatureNoneZ* owner_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(owner); + CResult_ECDSASignatureNoneZ_get_err(owner_conv); +} + +static inline struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ + return owner->a; +} +int8_tArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(int64_t owner) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_arr->elems, C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(owner_conv).compact_form, 64); + return ret_arr; +} + +static inline struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner){ + return owner->b; +} +ptrArray CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(int64_t owner) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* owner_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(owner); + LDKCVec_ECDSASignatureZ ret_var = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(owner_conv); + ptrArray ret_arr = NULL; + ret_arr = init_ptrArray(ret_var.datalen, __LINE__); + int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); + for (size_t i = 0; i < ret_var.datalen; i++) { + int8_tArray ret_conv_8_arr = init_int8_tArray(64, __LINE__); + memcpy(ret_conv_8_arr->elems, ret_var.data[i].compact_form, 64); + ret_arr_ptr[i] = ret_conv_8_arr; + } + + return ret_arr; +} + +static inline struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(&*owner->contents.result); +} +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(int64_t owner) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(owner_conv); + return tag_ptr(ret_conv, true); +} + +static inline void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(int64_t owner) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* owner_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(owner); + CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(owner_conv); +} + typedef struct LDKChannelSigner_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -1701,25 +1687,37 @@ LDKThirtyTwoBytes release_commitment_secret_LDKChannelSigner_jcall(const void* t memcpy(ret_ref.data, ret->elems, 32); FREE(ret); return ret_ref; } -LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * holder_tx, LDKCVec_ThirtyTwoBytesZ preimages) { +LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * holder_tx, LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; LDKHolderCommitmentTransaction holder_tx_var = *holder_tx; int64_t holder_tx_ref = 0; holder_tx_var = HolderCommitmentTransaction_clone(&holder_tx_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(holder_tx_var); holder_tx_ref = tag_ptr(holder_tx_var.inner, holder_tx_var.is_owned); - LDKCVec_ThirtyTwoBytesZ preimages_var = preimages; - ptrArray preimages_arr = NULL; - preimages_arr = init_ptrArray(preimages_var.datalen, __LINE__); - int8_tArray *preimages_arr_ptr = (int8_tArray*)(((uint8_t*)preimages_arr) + 8); - for (size_t i = 0; i < preimages_var.datalen; i++) { - int8_tArray preimages_conv_8_arr = init_int8_tArray(32, __LINE__); - memcpy(preimages_conv_8_arr->elems, preimages_var.data[i].data, 32); - preimages_arr_ptr[i] = preimages_conv_8_arr; + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_var = outbound_htlc_preimages; + ptrArray outbound_htlc_preimages_arr = NULL; + outbound_htlc_preimages_arr = init_ptrArray(outbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *outbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)outbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < outbound_htlc_preimages_var.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(outbound_htlc_preimages_conv_8_arr->elems, outbound_htlc_preimages_var.data[i].data, 32); + outbound_htlc_preimages_arr_ptr[i] = outbound_htlc_preimages_conv_8_arr; } - FREE(preimages_var.data); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 2, holder_tx_ref, (int64_t)preimages_arr); + FREE(outbound_htlc_preimages_var.data); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 2, holder_tx_ref, (int64_t)outbound_htlc_preimages_arr); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +LDKCResult_NoneNoneZ validate_counterparty_revocation_LDKChannelSigner_jcall(const void* this_arg, uint64_t idx, const uint8_t (* secret)[32]) { + LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; + int64_t idx_conv = idx; + int8_tArray secret_arr = init_int8_tArray(32, __LINE__); + memcpy(secret_arr->elems, *secret, 32); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 3, idx_conv, (int64_t)secret_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -1728,7 +1726,7 @@ LDKCResult_NoneNoneZ validate_holder_commitment_LDKChannelSigner_jcall(const voi } LDKThirtyTwoBytes channel_keys_id_LDKChannelSigner_jcall(const void* this_arg) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 3); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 4); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -1741,7 +1739,7 @@ void provide_channel_parameters_LDKChannelSigner_jcall(void* this_arg, const LDK channel_parameters_var = ChannelTransactionParameters_clone(&channel_parameters_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_parameters_var); channel_parameters_ref = tag_ptr(channel_parameters_var.inner, channel_parameters_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 4, channel_parameters_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 5, channel_parameters_ref); } static void LDKChannelSigner_JCalls_cloned(LDKChannelSigner* new_obj) { LDKChannelSigner_JCalls *j_calls = (LDKChannelSigner_JCalls*) new_obj->this_arg; @@ -1762,6 +1760,7 @@ static inline LDKChannelSigner LDKChannelSigner_init (int64_t o, int64_t pubkeys .get_per_commitment_point = get_per_commitment_point_LDKChannelSigner_jcall, .release_commitment_secret = release_commitment_secret_LDKChannelSigner_jcall, .validate_holder_commitment = validate_holder_commitment_LDKChannelSigner_jcall, + .validate_counterparty_revocation = validate_counterparty_revocation_LDKChannelSigner_jcall, .channel_keys_id = channel_keys_id_LDKChannelSigner_jcall, .provide_channel_parameters = provide_channel_parameters_LDKChannelSigner_jcall, .free = LDKChannelSigner_JCalls_free, @@ -1793,7 +1792,7 @@ int8_tArray CS_LDK_ChannelSigner_release_commitment_secret(int64_t this_arg, in return ret_arr; } -int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64_t holder_tx, ptrArray preimages) { +int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64_t holder_tx, ptrArray outbound_htlc_preimages) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKChannelSigner* this_arg_conv = (LDKChannelSigner*)this_arg_ptr; @@ -1802,23 +1801,36 @@ int64_t CS_LDK_ChannelSigner_validate_holder_commitment(int64_t this_arg, int64 holder_tx_conv.is_owned = ptr_is_owned(holder_tx); CHECK_INNER_FIELD_ACCESS_OR_NULL(holder_tx_conv); holder_tx_conv.is_owned = false; - LDKCVec_ThirtyTwoBytesZ preimages_constr; - preimages_constr.datalen = preimages->arr_len; - if (preimages_constr.datalen > 0) - preimages_constr.data = MALLOC(preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_constr; + outbound_htlc_preimages_constr.datalen = outbound_htlc_preimages->arr_len; + if (outbound_htlc_preimages_constr.datalen > 0) + outbound_htlc_preimages_constr.data = MALLOC(outbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); else - preimages_constr.data = NULL; - int8_tArray* preimages_vals = (void*) preimages->elems; - for (size_t i = 0; i < preimages_constr.datalen; i++) { - int8_tArray preimages_conv_8 = preimages_vals[i]; - LDKThirtyTwoBytes preimages_conv_8_ref; - CHECK(preimages_conv_8->arr_len == 32); - memcpy(preimages_conv_8_ref.data, preimages_conv_8->elems, 32); FREE(preimages_conv_8); - preimages_constr.data[i] = preimages_conv_8_ref; - } - FREE(preimages); + outbound_htlc_preimages_constr.data = NULL; + int8_tArray* outbound_htlc_preimages_vals = (void*) outbound_htlc_preimages->elems; + for (size_t i = 0; i < outbound_htlc_preimages_constr.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8 = outbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes outbound_htlc_preimages_conv_8_ref; + CHECK(outbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(outbound_htlc_preimages_conv_8_ref.data, outbound_htlc_preimages_conv_8->elems, 32); FREE(outbound_htlc_preimages_conv_8); + outbound_htlc_preimages_constr.data[i] = outbound_htlc_preimages_conv_8_ref; + } + FREE(outbound_htlc_preimages); LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); - *ret_conv = (this_arg_conv->validate_holder_commitment)(this_arg_conv->this_arg, &holder_tx_conv, preimages_constr); + *ret_conv = (this_arg_conv->validate_holder_commitment)(this_arg_conv->this_arg, &holder_tx_conv, outbound_htlc_preimages_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_ChannelSigner_validate_counterparty_revocation(int64_t this_arg, int64_t idx, int8_tArray secret) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelSigner* this_arg_conv = (LDKChannelSigner*)this_arg_ptr; + uint8_t secret_arr[32]; + CHECK(secret->arr_len == 32); + memcpy(secret_arr, secret->elems, 32); FREE(secret); + uint8_t (*secret_ref)[32] = &secret_arr; + LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); + *ret_conv = (this_arg_conv->validate_counterparty_revocation)(this_arg_conv->this_arg, idx, secret_ref); return tag_ptr(ret_conv, true); } @@ -1870,43 +1882,42 @@ static void LDKEcdsaChannelSigner_JCalls_free(void* this_arg) { FREE(j_calls); } } -LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx, LDKCVec_ThirtyTwoBytesZ preimages) { +LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKCommitmentTransaction * commitment_tx, LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages, LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages) { LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; LDKCommitmentTransaction commitment_tx_var = *commitment_tx; int64_t commitment_tx_ref = 0; commitment_tx_var = CommitmentTransaction_clone(&commitment_tx_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(commitment_tx_var); commitment_tx_ref = tag_ptr(commitment_tx_var.inner, commitment_tx_var.is_owned); - LDKCVec_ThirtyTwoBytesZ preimages_var = preimages; - ptrArray preimages_arr = NULL; - preimages_arr = init_ptrArray(preimages_var.datalen, __LINE__); - int8_tArray *preimages_arr_ptr = (int8_tArray*)(((uint8_t*)preimages_arr) + 8); - for (size_t i = 0; i < preimages_var.datalen; i++) { - int8_tArray preimages_conv_8_arr = init_int8_tArray(32, __LINE__); - memcpy(preimages_conv_8_arr->elems, preimages_var.data[i].data, 32); - preimages_arr_ptr[i] = preimages_conv_8_arr; + LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages_var = inbound_htlc_preimages; + ptrArray inbound_htlc_preimages_arr = NULL; + inbound_htlc_preimages_arr = init_ptrArray(inbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *inbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)inbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < inbound_htlc_preimages_var.datalen; i++) { + int8_tArray inbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(inbound_htlc_preimages_conv_8_arr->elems, inbound_htlc_preimages_var.data[i].data, 32); + inbound_htlc_preimages_arr_ptr[i] = inbound_htlc_preimages_conv_8_arr; + } + + FREE(inbound_htlc_preimages_var.data); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_var = outbound_htlc_preimages; + ptrArray outbound_htlc_preimages_arr = NULL; + outbound_htlc_preimages_arr = init_ptrArray(outbound_htlc_preimages_var.datalen, __LINE__); + int8_tArray *outbound_htlc_preimages_arr_ptr = (int8_tArray*)(((uint8_t*)outbound_htlc_preimages_arr) + 8); + for (size_t i = 0; i < outbound_htlc_preimages_var.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8_arr = init_int8_tArray(32, __LINE__); + memcpy(outbound_htlc_preimages_conv_8_arr->elems, outbound_htlc_preimages_var.data[i].data, 32); + outbound_htlc_preimages_arr_ptr[i] = outbound_htlc_preimages_conv_8_arr; } - FREE(preimages_var.data); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 5, commitment_tx_ref, (int64_t)preimages_arr); + FREE(outbound_htlc_preimages_var.data); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 6, commitment_tx_ref, (int64_t)inbound_htlc_preimages_arr, (int64_t)outbound_htlc_preimages_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ ret_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_NoneNoneZ validate_counterparty_revocation_LDKEcdsaChannelSigner_jcall(const void* this_arg, uint64_t idx, const uint8_t (* secret)[32]) { - LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; - int64_t idx_conv = idx; - int8_tArray secret_arr = init_int8_tArray(32, __LINE__); - memcpy(secret_arr->elems, *secret, 32); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 6, idx_conv, (int64_t)secret_arr); - void* ret_ptr = untag_ptr(ret); - CHECK_ACCESS(ret_ptr); - LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); - FREE(untag_ptr(ret)); - return ret_conv; -} LDKCResult_ECDSASignatureNoneZ sign_holder_commitment_LDKEcdsaChannelSigner_jcall(const void* this_arg, const LDKHolderCommitmentTransaction * commitment_tx) { LDKEcdsaChannelSigner_JCalls *j_calls = (LDKEcdsaChannelSigner_JCalls*) this_arg; LDKHolderCommitmentTransaction commitment_tx_var = *commitment_tx; @@ -2061,7 +2072,6 @@ static inline LDKEcdsaChannelSigner LDKEcdsaChannelSigner_init (int64_t o, int64 LDKEcdsaChannelSigner ret = { .this_arg = (void*) calls, .sign_counterparty_commitment = sign_counterparty_commitment_LDKEcdsaChannelSigner_jcall, - .validate_counterparty_revocation = validate_counterparty_revocation_LDKEcdsaChannelSigner_jcall, .sign_holder_commitment = sign_holder_commitment_LDKEcdsaChannelSigner_jcall, .sign_justice_revoked_output = sign_justice_revoked_output_LDKEcdsaChannelSigner_jcall, .sign_justice_revoked_htlc = sign_justice_revoked_htlc_LDKEcdsaChannelSigner_jcall, @@ -2081,7 +2091,7 @@ uint64_t CS_LDK_LDKEcdsaChannelSigner_new(int32_t o, int32_t ChannelSigner, int *res_ptr = LDKEcdsaChannelSigner_init(o, ChannelSigner, pubkeys); return tag_ptr(res_ptr, true); } -int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg, int64_t commitment_tx, ptrArray preimages) { +int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg, int64_t commitment_tx, ptrArray inbound_htlc_preimages, ptrArray outbound_htlc_preimages) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKEcdsaChannelSigner* this_arg_conv = (LDKEcdsaChannelSigner*)this_arg_ptr; @@ -2090,36 +2100,38 @@ int64_t CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment(int64_t this_arg commitment_tx_conv.is_owned = ptr_is_owned(commitment_tx); CHECK_INNER_FIELD_ACCESS_OR_NULL(commitment_tx_conv); commitment_tx_conv.is_owned = false; - LDKCVec_ThirtyTwoBytesZ preimages_constr; - preimages_constr.datalen = preimages->arr_len; - if (preimages_constr.datalen > 0) - preimages_constr.data = MALLOC(preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages_constr; + inbound_htlc_preimages_constr.datalen = inbound_htlc_preimages->arr_len; + if (inbound_htlc_preimages_constr.datalen > 0) + inbound_htlc_preimages_constr.data = MALLOC(inbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); else - preimages_constr.data = NULL; - int8_tArray* preimages_vals = (void*) preimages->elems; - for (size_t i = 0; i < preimages_constr.datalen; i++) { - int8_tArray preimages_conv_8 = preimages_vals[i]; - LDKThirtyTwoBytes preimages_conv_8_ref; - CHECK(preimages_conv_8->arr_len == 32); - memcpy(preimages_conv_8_ref.data, preimages_conv_8->elems, 32); FREE(preimages_conv_8); - preimages_constr.data[i] = preimages_conv_8_ref; - } - FREE(preimages); + inbound_htlc_preimages_constr.data = NULL; + int8_tArray* inbound_htlc_preimages_vals = (void*) inbound_htlc_preimages->elems; + for (size_t i = 0; i < inbound_htlc_preimages_constr.datalen; i++) { + int8_tArray inbound_htlc_preimages_conv_8 = inbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes inbound_htlc_preimages_conv_8_ref; + CHECK(inbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(inbound_htlc_preimages_conv_8_ref.data, inbound_htlc_preimages_conv_8->elems, 32); FREE(inbound_htlc_preimages_conv_8); + inbound_htlc_preimages_constr.data[i] = inbound_htlc_preimages_conv_8_ref; + } + FREE(inbound_htlc_preimages); + LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages_constr; + outbound_htlc_preimages_constr.datalen = outbound_htlc_preimages->arr_len; + if (outbound_htlc_preimages_constr.datalen > 0) + outbound_htlc_preimages_constr.data = MALLOC(outbound_htlc_preimages_constr.datalen * sizeof(LDKThirtyTwoBytes), "LDKCVec_ThirtyTwoBytesZ Elements"); + else + outbound_htlc_preimages_constr.data = NULL; + int8_tArray* outbound_htlc_preimages_vals = (void*) outbound_htlc_preimages->elems; + for (size_t i = 0; i < outbound_htlc_preimages_constr.datalen; i++) { + int8_tArray outbound_htlc_preimages_conv_8 = outbound_htlc_preimages_vals[i]; + LDKThirtyTwoBytes outbound_htlc_preimages_conv_8_ref; + CHECK(outbound_htlc_preimages_conv_8->arr_len == 32); + memcpy(outbound_htlc_preimages_conv_8_ref.data, outbound_htlc_preimages_conv_8->elems, 32); FREE(outbound_htlc_preimages_conv_8); + outbound_htlc_preimages_constr.data[i] = outbound_htlc_preimages_conv_8_ref; + } + FREE(outbound_htlc_preimages); LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, &commitment_tx_conv, preimages_constr); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_EcdsaChannelSigner_validate_counterparty_revocation(int64_t this_arg, int64_t idx, int8_tArray secret) { - void* this_arg_ptr = untag_ptr(this_arg); - if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } - LDKEcdsaChannelSigner* this_arg_conv = (LDKEcdsaChannelSigner*)this_arg_ptr; - uint8_t secret_arr[32]; - CHECK(secret->arr_len == 32); - memcpy(secret_arr, secret->elems, 32); FREE(secret); - uint8_t (*secret_ref)[32] = &secret_arr; - LDKCResult_NoneNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneNoneZ), "LDKCResult_NoneNoneZ"); - *ret_conv = (this_arg_conv->validate_counterparty_revocation)(this_arg_conv->this_arg, idx, secret_ref); + *ret_conv = (this_arg_conv->sign_counterparty_commitment)(this_arg_conv->this_arg, &commitment_tx_conv, inbound_htlc_preimages_constr, outbound_htlc_preimages_constr); return tag_ptr(ret_conv, true); } @@ -2421,42 +2433,26 @@ jboolean CS_LDK_LDKCOption_boolZ_Some_get_some(int64_t ptr) { jboolean some_conv = obj->some; return some_conv; } -static inline LDKCVec_CVec_u8ZZ CVec_CVec_u8ZZ_clone(const LDKCVec_CVec_u8ZZ *orig) { - LDKCVec_CVec_u8ZZ ret = { .data = MALLOC(sizeof(LDKCVec_u8Z) * orig->datalen, "LDKCVec_CVec_u8ZZ clone bytes"), .datalen = orig->datalen }; - for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = CVec_u8Z_clone(&orig->data[i]); - } - return ret; -} -static inline struct LDKCVec_CVec_u8ZZ CResult_CVec_CVec_u8ZZNoneZ_get_ok(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner){ +static inline struct LDKWitness CResult_WitnessNoneZ_get_ok(LDKCResult_WitnessNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return CVec_CVec_u8ZZ_clone(&*owner->contents.result); + return Witness_clone(&*owner->contents.result); } -ptrArray CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_ok(int64_t owner) { - LDKCResult_CVec_CVec_u8ZZNoneZ* owner_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(owner); - LDKCVec_CVec_u8ZZ ret_var = CResult_CVec_CVec_u8ZZNoneZ_get_ok(owner_conv); - ptrArray ret_arr = NULL; - ret_arr = init_ptrArray(ret_var.datalen, __LINE__); - int8_tArray *ret_arr_ptr = (int8_tArray*)(((uint8_t*)ret_arr) + 8); - for (size_t i = 0; i < ret_var.datalen; i++) { - LDKCVec_u8Z ret_conv_8_var = ret_var.data[i]; - int8_tArray ret_conv_8_arr = init_int8_tArray(ret_conv_8_var.datalen, __LINE__); - memcpy(ret_conv_8_arr->elems, ret_conv_8_var.data, ret_conv_8_var.datalen); - CVec_u8Z_free(ret_conv_8_var); - ret_arr_ptr[i] = ret_conv_8_arr; - } - - FREE(ret_var.data); +int8_tArray CS_LDK_CResult_WitnessNoneZ_get_ok(int64_t owner) { + LDKCResult_WitnessNoneZ* owner_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(owner); + LDKWitness ret_var = CResult_WitnessNoneZ_get_ok(owner_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + Witness_free(ret_var); return ret_arr; } -static inline void CResult_CVec_CVec_u8ZZNoneZ_get_err(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner){ +static inline void CResult_WitnessNoneZ_get_err(LDKCResult_WitnessNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return *owner->contents.err; } -void CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_err(int64_t owner) { - LDKCResult_CVec_CVec_u8ZZNoneZ* owner_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(owner); - CResult_CVec_CVec_u8ZZNoneZ_get_err(owner_conv); +void CS_LDK_CResult_WitnessNoneZ_get_err(int64_t owner) { + LDKCResult_WitnessNoneZ* owner_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(owner); + CResult_WitnessNoneZ_get_err(owner_conv); } static inline struct LDKInMemorySigner CResult_InMemorySignerDecodeErrorZ_get_ok(LDKCResult_InMemorySignerDecodeErrorZ *NONNULL_PTR owner){ @@ -2506,6 +2502,62 @@ void CS_LDK_CResult_TransactionNoneZ_get_err(int64_t owner) { CResult_TransactionNoneZ_get_err(owner_conv); } +uint32_t CS_LDK_LDKCandidateRouteHop_ty_from_ptr(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + switch(obj->tag) { + case LDKCandidateRouteHop_FirstHop: return 0; + case LDKCandidateRouteHop_PublicHop: return 1; + case LDKCandidateRouteHop_PrivateHop: return 2; + case LDKCandidateRouteHop_Blinded: return 3; + case LDKCandidateRouteHop_OneHopBlinded: return 4; + default: abort(); + } +} +int64_t CS_LDK_LDKCandidateRouteHop_FirstHop_get_first_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_FirstHop); + LDKFirstHopCandidate first_hop_var = obj->first_hop; + int64_t first_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hop_var); + first_hop_ref = tag_ptr(first_hop_var.inner, false); + return first_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_PublicHop_get_public_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_PublicHop); + LDKPublicHopCandidate public_hop_var = obj->public_hop; + int64_t public_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(public_hop_var); + public_hop_ref = tag_ptr(public_hop_var.inner, false); + return public_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_PrivateHop_get_private_hop(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_PrivateHop); + LDKPrivateHopCandidate private_hop_var = obj->private_hop; + int64_t private_hop_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(private_hop_var); + private_hop_ref = tag_ptr(private_hop_var.inner, false); + return private_hop_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_Blinded_get_blinded(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_Blinded); + LDKBlindedPathCandidate blinded_var = obj->blinded; + int64_t blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_var); + blinded_ref = tag_ptr(blinded_var.inner, false); + return blinded_ref; +} +int64_t CS_LDK_LDKCandidateRouteHop_OneHopBlinded_get_one_hop_blinded(int64_t ptr) { + LDKCandidateRouteHop *obj = (LDKCandidateRouteHop*)untag_ptr(ptr); + CHECK(obj->tag == LDKCandidateRouteHop_OneHopBlinded); + LDKOneHopBlindedPathCandidate one_hop_blinded_var = obj->one_hop_blinded; + int64_t one_hop_blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(one_hop_blinded_var); + one_hop_blinded_ref = tag_ptr(one_hop_blinded_var.inner, false); + return one_hop_blinded_ref; +} typedef struct LDKScoreLookUp_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -2516,19 +2568,11 @@ static void LDKScoreLookUp_JCalls_free(void* this_arg) { FREE(j_calls); } } -uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, uint64_t short_channel_id, const LDKNodeId * source, const LDKNodeId * target, LDKChannelUsage usage, const LDKProbabilisticScoringFeeParameters * score_params) { +uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, const LDKCandidateRouteHop * candidate, LDKChannelUsage usage, const LDKProbabilisticScoringFeeParameters * score_params) { LDKScoreLookUp_JCalls *j_calls = (LDKScoreLookUp_JCalls*) this_arg; - int64_t short_channel_id_conv = short_channel_id; - LDKNodeId source_var = *source; - int64_t source_ref = 0; - source_var = NodeId_clone(&source_var); - CHECK_INNER_FIELD_ACCESS_OR_NULL(source_var); - source_ref = tag_ptr(source_var.inner, source_var.is_owned); - LDKNodeId target_var = *target; - int64_t target_ref = 0; - target_var = NodeId_clone(&target_var); - CHECK_INNER_FIELD_ACCESS_OR_NULL(target_var); - target_ref = tag_ptr(target_var.inner, target_var.is_owned); + LDKCandidateRouteHop *ret_candidate = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop ret conversion"); + *ret_candidate = CandidateRouteHop_clone(candidate); + int64_t ref_candidate = tag_ptr(ret_candidate, true); LDKChannelUsage usage_var = usage; int64_t usage_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(usage_var); @@ -2538,7 +2582,7 @@ uint64_t channel_penalty_msat_LDKScoreLookUp_jcall(const void* this_arg, uint64_ score_params_var = ProbabilisticScoringFeeParameters_clone(&score_params_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_var); score_params_ref = tag_ptr(score_params_var.inner, score_params_var.is_owned); - return js_invoke_function_l_lllll(j_calls->instance_ptr, 16, short_channel_id_conv, source_ref, target_ref, usage_ref, score_params_ref); + return js_invoke_function_l_lll(j_calls->instance_ptr, 16, ref_candidate, usage_ref, score_params_ref); } static void LDKScoreLookUp_JCalls_cloned(LDKScoreLookUp* new_obj) { LDKScoreLookUp_JCalls *j_calls = (LDKScoreLookUp_JCalls*) new_obj->this_arg; @@ -2561,20 +2605,11 @@ uint64_t CS_LDK_LDKScoreLookUp_new(int32_t o) { *res_ptr = LDKScoreLookUp_init(o); return tag_ptr(res_ptr, true); } -int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t short_channel_id, int64_t source, int64_t target, int64_t usage, int64_t score_params) { +int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t candidate, int64_t usage, int64_t score_params) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreLookUp* this_arg_conv = (LDKScoreLookUp*)this_arg_ptr; - LDKNodeId source_conv; - source_conv.inner = untag_ptr(source); - source_conv.is_owned = ptr_is_owned(source); - CHECK_INNER_FIELD_ACCESS_OR_NULL(source_conv); - source_conv.is_owned = false; - LDKNodeId target_conv; - target_conv.inner = untag_ptr(target); - target_conv.is_owned = ptr_is_owned(target); - CHECK_INNER_FIELD_ACCESS_OR_NULL(target_conv); - target_conv.is_owned = false; + LDKCandidateRouteHop* candidate_conv = (LDKCandidateRouteHop*)untag_ptr(candidate); LDKChannelUsage usage_conv; usage_conv.inner = untag_ptr(usage); usage_conv.is_owned = ptr_is_owned(usage); @@ -2585,7 +2620,7 @@ int64_t CS_LDK_ScoreLookUp_channel_penalty_msat(int64_t this_arg, int64_t short score_params_conv.is_owned = ptr_is_owned(score_params); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_conv); score_params_conv.is_owned = false; - int64_t ret_conv = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, short_channel_id, &source_conv, &target_conv, usage_conv, &score_params_conv); + int64_t ret_conv = (this_arg_conv->channel_penalty_msat)(this_arg_conv->this_arg, candidate_conv, usage_conv, &score_params_conv); return ret_conv; } @@ -2599,7 +2634,7 @@ static void LDKScoreUpdate_JCalls_free(void* this_arg) { FREE(j_calls); } } -void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id) { +void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; @@ -2607,18 +2642,20 @@ void payment_path_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * pa CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); int64_t short_channel_id_conv = short_channel_id; - js_invoke_function_void_ll(j_calls->instance_ptr, 17, path_ref, short_channel_id_conv); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_lll(j_calls->instance_ptr, 17, path_ref, short_channel_id_conv, duration_since_epoch_conv); } -void payment_path_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path) { +void payment_path_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; path_var = Path_clone(&path_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 18, path_ref); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_ll(j_calls->instance_ptr, 18, path_ref, duration_since_epoch_conv); } -void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id) { +void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t short_channel_id, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; @@ -2626,16 +2663,23 @@ void probe_failed_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uin CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); int64_t short_channel_id_conv = short_channel_id; - js_invoke_function_void_ll(j_calls->instance_ptr, 19, path_ref, short_channel_id_conv); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_lll(j_calls->instance_ptr, 19, path_ref, short_channel_id_conv, duration_since_epoch_conv); } -void probe_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path) { +void probe_successful_LDKScoreUpdate_jcall(void* this_arg, const LDKPath * path, uint64_t duration_since_epoch) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; LDKPath path_var = *path; int64_t path_ref = 0; path_var = Path_clone(&path_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_var); path_ref = tag_ptr(path_var.inner, path_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 20, path_ref); + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_ll(j_calls->instance_ptr, 20, path_ref, duration_since_epoch_conv); +} +void time_passed_LDKScoreUpdate_jcall(void* this_arg, uint64_t duration_since_epoch) { + LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) this_arg; + int64_t duration_since_epoch_conv = duration_since_epoch; + js_invoke_function_void_l(j_calls->instance_ptr, 21, duration_since_epoch_conv); } static void LDKScoreUpdate_JCalls_cloned(LDKScoreUpdate* new_obj) { LDKScoreUpdate_JCalls *j_calls = (LDKScoreUpdate_JCalls*) new_obj->this_arg; @@ -2652,6 +2696,7 @@ static inline LDKScoreUpdate LDKScoreUpdate_init (int64_t o) { .payment_path_successful = payment_path_successful_LDKScoreUpdate_jcall, .probe_failed = probe_failed_LDKScoreUpdate_jcall, .probe_successful = probe_successful_LDKScoreUpdate_jcall, + .time_passed = time_passed_LDKScoreUpdate_jcall, .free = LDKScoreUpdate_JCalls_free, }; return ret; @@ -2661,7 +2706,7 @@ uint64_t CS_LDK_LDKScoreUpdate_new(int32_t o) { *res_ptr = LDKScoreUpdate_init(o); return tag_ptr(res_ptr, true); } -void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int64_t short_channel_id) { +void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int64_t short_channel_id, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2670,10 +2715,10 @@ void CS_LDK_ScoreUpdate_payment_path_failed(int64_t this_arg, int64_t path, int path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->payment_path_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id); + (this_arg_conv->payment_path_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id, duration_since_epoch); } -void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path) { +void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2682,10 +2727,10 @@ void CS_LDK_ScoreUpdate_payment_path_successful(int64_t this_arg, int64_t path) path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->payment_path_successful)(this_arg_conv->this_arg, &path_conv); + (this_arg_conv->payment_path_successful)(this_arg_conv->this_arg, &path_conv, duration_since_epoch); } -void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t short_channel_id) { +void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t short_channel_id, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2694,10 +2739,10 @@ void CS_LDK_ScoreUpdate_probe_failed(int64_t this_arg, int64_t path, int64_t sh path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->probe_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id); + (this_arg_conv->probe_failed)(this_arg_conv->this_arg, &path_conv, short_channel_id, duration_since_epoch); } -void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path) { +void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path, int64_t duration_since_epoch) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; @@ -2706,7 +2751,14 @@ void CS_LDK_ScoreUpdate_probe_successful(int64_t this_arg, int64_t path) { path_conv.is_owned = ptr_is_owned(path); CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); path_conv.is_owned = false; - (this_arg_conv->probe_successful)(this_arg_conv->this_arg, &path_conv); + (this_arg_conv->probe_successful)(this_arg_conv->this_arg, &path_conv, duration_since_epoch); +} + +void CS_LDK_ScoreUpdate_time_passed(int64_t this_arg, int64_t duration_since_epoch) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKScoreUpdate* this_arg_conv = (LDKScoreUpdate*)this_arg_ptr; + (this_arg_conv->time_passed)(this_arg_conv->this_arg, duration_since_epoch); } typedef struct LDKLockableScore_JCalls { @@ -2721,7 +2773,7 @@ static void LDKLockableScore_JCalls_free(void* this_arg) { } LDKScoreLookUp read_lock_LDKLockableScore_jcall(const void* this_arg) { LDKLockableScore_JCalls *j_calls = (LDKLockableScore_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 21); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 22); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKScoreLookUp ret_conv = *(LDKScoreLookUp*)(ret_ptr); @@ -2734,7 +2786,7 @@ LDKScoreLookUp read_lock_LDKLockableScore_jcall(const void* this_arg) { } LDKScoreUpdate write_lock_LDKLockableScore_jcall(const void* this_arg) { LDKLockableScore_JCalls *j_calls = (LDKLockableScore_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 22); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 23); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKScoreUpdate ret_conv = *(LDKScoreUpdate*)(ret_ptr); @@ -2798,7 +2850,7 @@ static void LDKWriteableScore_JCalls_free(void* this_arg) { } LDKCVec_u8Z write_LDKWriteableScore_jcall(const void* this_arg) { LDKWriteableScore_JCalls *j_calls = (LDKWriteableScore_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 23); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 24); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -2914,6 +2966,124 @@ int64_t CS_LDK_CResult_RouteLightningErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ + LDKBlindedPayInfo ret = owner->a; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a(int64_t owner) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); + LDKBlindedPayInfo ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_a(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ + LDKBlindedPath ret = owner->b; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b(int64_t owner) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); + LDKBlindedPath ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_b(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(const LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ *orig) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ) * orig->datalen, "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_BlindedPayInfoBlindedPathZ_clone(&orig->data[i]); + } + return ret; +} +static inline struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(&*owner->contents.result); +} +int64_tArray CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(int64_t owner) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* owner_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(owner); + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret_var = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t l = 0; l < ret_var.datalen; l++) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv_37_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv_37_conv = ret_var.data[l]; + ret_arr_ptr[l] = tag_ptr(ret_conv_37_conv, true); + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(int64_t owner) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* owner_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(owner); + CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(owner_conv); +} + +static inline struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ + LDKOnionMessagePath ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_get_ok(int64_t owner) { + LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); + LDKOnionMessagePath ret_var = CResult_OnionMessagePathNoneZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_OnionMessagePathNoneZ_get_err(int64_t owner) { + LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); + CResult_OnionMessagePathNoneZ_get_err(owner_conv); +} + +static inline struct LDKCVec_BlindedPathZ CResult_CVec_BlindedPathZNoneZ_get_ok(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return CVec_BlindedPathZ_clone(&*owner->contents.result); +} +int64_tArray CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_ok(int64_t owner) { + LDKCResult_CVec_BlindedPathZNoneZ* owner_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(owner); + LDKCVec_BlindedPathZ ret_var = CResult_CVec_BlindedPathZNoneZ_get_ok(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t n = 0; n < ret_var.datalen; n++) { + LDKBlindedPath ret_conv_13_var = ret_var.data[n]; + int64_t ret_conv_13_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_conv_13_var); + ret_conv_13_ref = tag_ptr(ret_conv_13_var.inner, ret_conv_13_var.is_owned); + ret_arr_ptr[n] = ret_conv_13_ref; + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline void CResult_CVec_BlindedPathZNoneZ_get_err(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return *owner->contents.err; +} +void CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_err(int64_t owner) { + LDKCResult_CVec_BlindedPathZNoneZ* owner_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(owner); + CResult_CVec_BlindedPathZNoneZ_get_err(owner_conv); +} + static inline struct LDKInFlightHtlcs CResult_InFlightHtlcsDecodeErrorZ_get_ok(LDKCResult_InFlightHtlcsDecodeErrorZ *NONNULL_PTR owner){ LDKInFlightHtlcs ret = *owner->contents.result; ret.is_owned = false; @@ -3096,41 +3266,6 @@ int64_t CS_LDK_CResult_PaymentParametersDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -static inline struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ - LDKBlindedPayInfo ret = owner->a; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a(int64_t owner) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); - LDKBlindedPayInfo ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_a(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner){ - LDKBlindedPath ret = owner->b; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b(int64_t owner) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* owner_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(owner); - LDKBlindedPath ret_var = C2Tuple_BlindedPayInfoBlindedPathZ_get_b(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_clone(const LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ *orig) { - LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ) * orig->datalen, "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ clone bytes"), .datalen = orig->datalen }; - for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = C2Tuple_BlindedPayInfoBlindedPathZ_clone(&orig->data[i]); - } - return ret; -} static inline LDKCVec_RouteHintZ CVec_RouteHintZ_clone(const LDKCVec_RouteHintZ *orig) { LDKCVec_RouteHintZ ret = { .data = MALLOC(sizeof(LDKRouteHint) * orig->datalen, "LDKCVec_RouteHintZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { @@ -3343,14 +3478,13 @@ static void LDKLogger_JCalls_free(void* this_arg) { FREE(j_calls); } } -void log_LDKLogger_jcall(const void* this_arg, const LDKRecord * record) { +void log_LDKLogger_jcall(const void* this_arg, LDKRecord record) { LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) this_arg; - LDKRecord record_var = *record; + LDKRecord record_var = record; int64_t record_ref = 0; - record_var = Record_clone(&record_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(record_var); record_ref = tag_ptr(record_var.inner, record_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 24, record_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 25, record_ref); } static void LDKLogger_JCalls_cloned(LDKLogger* new_obj) { LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) new_obj->this_arg; @@ -3426,31 +3560,40 @@ static inline LDKCVec_C2Tuple_usizeTransactionZZ CVec_C2Tuple_usizeTransactionZZ } return ret; } -static inline struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ +static inline struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ return ThirtyTwoBytes_clone(&owner->a); } -int8_tArray CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(int64_t owner) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* owner_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(owner_conv).data, 32); + memcpy(ret_arr->elems, C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(owner_conv).data, 32); return ret_arr; } -static inline struct LDKCOption_ThirtyTwoBytesZ C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ - return COption_ThirtyTwoBytesZ_clone(&owner->b); +static inline uint32_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ + return owner->b; } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(int64_t owner) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* owner_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(owner); +int32_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); + int32_t ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(owner_conv); + return ret_conv; +} + +static inline struct LDKCOption_ThirtyTwoBytesZ C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner){ + return COption_ThirtyTwoBytesZ_clone(&owner->c); +} +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(owner); LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); - *ret_copy = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(owner_conv); + *ret_copy = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } -static inline LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_clone(const LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ *orig) { - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ) * orig->datalen, "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ clone bytes"), .datalen = orig->datalen }; +static inline LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_clone(const LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ *orig) { + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret = { .data = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ) * orig->datalen, "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { - ret.data[i] = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(&orig->data[i]); + ret.data[i] = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(&orig->data[i]); } return ret; } @@ -3972,7 +4115,7 @@ LDKUtxoResult get_utxo_LDKUtxoLookup_jcall(const void* this_arg, const uint8_t ( int8_tArray chain_hash_arr = init_int8_tArray(32, __LINE__); memcpy(chain_hash_arr->elems, *chain_hash, 32); int64_t short_channel_id_conv = short_channel_id; - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 25, (int64_t)chain_hash_arr, short_channel_id_conv); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 26, (int64_t)chain_hash_arr, short_channel_id_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKUtxoResult ret_conv = *(LDKUtxoResult*)(ret_ptr); @@ -4209,32 +4352,36 @@ uint32_t CS_LDK_LDKMessageSendEvent_ty_from_ptr(int64_t ptr) { case LDKMessageSendEvent_SendOpenChannelV2: return 3; case LDKMessageSendEvent_SendFundingCreated: return 4; case LDKMessageSendEvent_SendFundingSigned: return 5; - case LDKMessageSendEvent_SendTxAddInput: return 6; - case LDKMessageSendEvent_SendTxAddOutput: return 7; - case LDKMessageSendEvent_SendTxRemoveInput: return 8; - case LDKMessageSendEvent_SendTxRemoveOutput: return 9; - case LDKMessageSendEvent_SendTxComplete: return 10; - case LDKMessageSendEvent_SendTxSignatures: return 11; - case LDKMessageSendEvent_SendTxInitRbf: return 12; - case LDKMessageSendEvent_SendTxAckRbf: return 13; - case LDKMessageSendEvent_SendTxAbort: return 14; - case LDKMessageSendEvent_SendChannelReady: return 15; - case LDKMessageSendEvent_SendAnnouncementSignatures: return 16; - case LDKMessageSendEvent_UpdateHTLCs: return 17; - case LDKMessageSendEvent_SendRevokeAndACK: return 18; - case LDKMessageSendEvent_SendClosingSigned: return 19; - case LDKMessageSendEvent_SendShutdown: return 20; - case LDKMessageSendEvent_SendChannelReestablish: return 21; - case LDKMessageSendEvent_SendChannelAnnouncement: return 22; - case LDKMessageSendEvent_BroadcastChannelAnnouncement: return 23; - case LDKMessageSendEvent_BroadcastChannelUpdate: return 24; - case LDKMessageSendEvent_BroadcastNodeAnnouncement: return 25; - case LDKMessageSendEvent_SendChannelUpdate: return 26; - case LDKMessageSendEvent_HandleError: return 27; - case LDKMessageSendEvent_SendChannelRangeQuery: return 28; - case LDKMessageSendEvent_SendShortIdsQuery: return 29; - case LDKMessageSendEvent_SendReplyChannelRange: return 30; - case LDKMessageSendEvent_SendGossipTimestampFilter: return 31; + case LDKMessageSendEvent_SendStfu: return 6; + case LDKMessageSendEvent_SendSplice: return 7; + case LDKMessageSendEvent_SendSpliceAck: return 8; + case LDKMessageSendEvent_SendSpliceLocked: return 9; + case LDKMessageSendEvent_SendTxAddInput: return 10; + case LDKMessageSendEvent_SendTxAddOutput: return 11; + case LDKMessageSendEvent_SendTxRemoveInput: return 12; + case LDKMessageSendEvent_SendTxRemoveOutput: return 13; + case LDKMessageSendEvent_SendTxComplete: return 14; + case LDKMessageSendEvent_SendTxSignatures: return 15; + case LDKMessageSendEvent_SendTxInitRbf: return 16; + case LDKMessageSendEvent_SendTxAckRbf: return 17; + case LDKMessageSendEvent_SendTxAbort: return 18; + case LDKMessageSendEvent_SendChannelReady: return 19; + case LDKMessageSendEvent_SendAnnouncementSignatures: return 20; + case LDKMessageSendEvent_UpdateHTLCs: return 21; + case LDKMessageSendEvent_SendRevokeAndACK: return 22; + case LDKMessageSendEvent_SendClosingSigned: return 23; + case LDKMessageSendEvent_SendShutdown: return 24; + case LDKMessageSendEvent_SendChannelReestablish: return 25; + case LDKMessageSendEvent_SendChannelAnnouncement: return 26; + case LDKMessageSendEvent_BroadcastChannelAnnouncement: return 27; + case LDKMessageSendEvent_BroadcastChannelUpdate: return 28; + case LDKMessageSendEvent_BroadcastNodeAnnouncement: return 29; + case LDKMessageSendEvent_SendChannelUpdate: return 30; + case LDKMessageSendEvent_HandleError: return 31; + case LDKMessageSendEvent_SendChannelRangeQuery: return 32; + case LDKMessageSendEvent_SendShortIdsQuery: return 33; + case LDKMessageSendEvent_SendReplyChannelRange: return 34; + case LDKMessageSendEvent_SendGossipTimestampFilter: return 35; default: abort(); } } @@ -4334,6 +4481,70 @@ int64_t CS_LDK_LDKMessageSendEvent_SendFundingSigned_get_msg(int64_t ptr) { msg_ref = tag_ptr(msg_var.inner, false); return msg_ref; } +int8_tArray CS_LDK_LDKMessageSendEvent_SendStfu_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendStfu); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_stfu.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendStfu_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendStfu); + LDKStfu msg_var = obj->send_stfu.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSplice_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSplice); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSplice_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSplice); + LDKSplice msg_var = obj->send_splice.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceAck); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice_ack.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceAck); + LDKSpliceAck msg_var = obj->send_splice_ack.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} +int8_tArray CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_node_id(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceLocked); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->send_splice_locked.node_id.compressed_form, 33); + return node_id_arr; +} +int64_t CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_msg(int64_t ptr) { + LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKMessageSendEvent_SendSpliceLocked); + LDKSpliceLocked msg_var = obj->send_splice_locked.msg; + int64_t msg_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, false); + return msg_ref; +} int8_tArray CS_LDK_LDKMessageSendEvent_SendTxAddInput_get_node_id(int64_t ptr) { LDKMessageSendEvent *obj = (LDKMessageSendEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKMessageSendEvent_SendTxAddInput); @@ -5046,6 +5257,34 @@ int64_tArray CS_LDK_LDKCOption_CVec_SocketAddressZZ_Some_get_some(int64_t ptr) { return some_arr; } +static inline struct LDKPendingHTLCInfo CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner){ + LDKPendingHTLCInfo ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* owner_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(owner); + LDKPendingHTLCInfo ret_var = CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKInboundHTLCErr CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner){ + LDKInboundHTLCErr ret = *owner->contents.err; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* owner_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(owner); + LDKInboundHTLCErr ret_var = CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline LDKCVec_HTLCOutputInCommitmentZ CVec_HTLCOutputInCommitmentZ_clone(const LDKCVec_HTLCOutputInCommitmentZ *orig) { LDKCVec_HTLCOutputInCommitmentZ ret = { .data = MALLOC(sizeof(LDKHTLCOutputInCommitment) * orig->datalen, "LDKCVec_HTLCOutputInCommitmentZ clone bytes"), .datalen = orig->datalen }; for (size_t i = 0; i < ret.datalen; i++) { @@ -5845,6 +6084,231 @@ int64_t CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKBlindedForward CResult_BlindedForwardDecodeErrorZ_get_ok(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner){ + LDKBlindedForward ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_BlindedForwardDecodeErrorZ* owner_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(owner); + LDKBlindedForward ret_var = CResult_BlindedForwardDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_BlindedForwardDecodeErrorZ_get_err(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_BlindedForwardDecodeErrorZ* owner_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_BlindedForwardDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +uint32_t CS_LDK_LDKPendingHTLCRouting_ty_from_ptr(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + switch(obj->tag) { + case LDKPendingHTLCRouting_Forward: return 0; + case LDKPendingHTLCRouting_Receive: return 1; + case LDKPendingHTLCRouting_ReceiveKeysend: return 2; + default: abort(); + } +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_onion_packet(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + LDKOnionPacket onion_packet_var = obj->forward.onion_packet; + int64_t onion_packet_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_packet_var); + onion_packet_ref = tag_ptr(onion_packet_var.inner, false); + return onion_packet_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_short_channel_id(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + int64_t short_channel_id_conv = obj->forward.short_channel_id; + return short_channel_id_conv; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Forward_get_blinded(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Forward); + LDKBlindedForward blinded_var = obj->forward.blinded; + int64_t blinded_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_var); + blinded_ref = tag_ptr(blinded_var.inner, false); + return blinded_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_data(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + LDKFinalOnionHopData payment_data_var = obj->receive.payment_data; + int64_t payment_data_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_var); + payment_data_ref = tag_ptr(payment_data_var.inner, false); + return payment_data_ref; +} +int64_t CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_metadata(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int64_t payment_metadata_ref = tag_ptr(&obj->receive.payment_metadata, false); + return payment_metadata_ref; +} +int32_t CS_LDK_LDKPendingHTLCRouting_Receive_get_incoming_cltv_expiry(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int32_t incoming_cltv_expiry_conv = obj->receive.incoming_cltv_expiry; + return incoming_cltv_expiry_conv; +} +int8_tArray CS_LDK_LDKPendingHTLCRouting_Receive_get_phantom_shared_secret(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + int8_tArray phantom_shared_secret_arr = init_int8_tArray(32, __LINE__); + memcpy(phantom_shared_secret_arr->elems, obj->receive.phantom_shared_secret.data, 32); + return phantom_shared_secret_arr; +} +int64_tArray CS_LDK_LDKPendingHTLCRouting_Receive_get_custom_tlvs(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_var = obj->receive.custom_tlvs; + int64_tArray custom_tlvs_arr = NULL; + custom_tlvs_arr = init_int64_tArray(custom_tlvs_var.datalen, __LINE__); + int64_t *custom_tlvs_arr_ptr = (int64_t*)(((uint8_t*)custom_tlvs_arr) + 8); + for (size_t x = 0; x < custom_tlvs_var.datalen; x++) { + LDKC2Tuple_u64CVec_u8ZZ* custom_tlvs_conv_23_conv = MALLOC(sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKC2Tuple_u64CVec_u8ZZ"); + *custom_tlvs_conv_23_conv = custom_tlvs_var.data[x]; + *custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone(custom_tlvs_conv_23_conv); + custom_tlvs_arr_ptr[x] = tag_ptr(custom_tlvs_conv_23_conv, true); + } + + return custom_tlvs_arr; +} +jboolean CS_LDK_LDKPendingHTLCRouting_Receive_get_requires_blinded_error(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_Receive); + jboolean requires_blinded_error_conv = obj->receive.requires_blinded_error; + return requires_blinded_error_conv; +} +int64_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_data(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + LDKFinalOnionHopData payment_data_var = obj->receive_keysend.payment_data; + int64_t payment_data_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_var); + payment_data_ref = tag_ptr(payment_data_var.inner, false); + return payment_data_ref; +} +int8_tArray CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_preimage(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int8_tArray payment_preimage_arr = init_int8_tArray(32, __LINE__); + memcpy(payment_preimage_arr->elems, obj->receive_keysend.payment_preimage.data, 32); + return payment_preimage_arr; +} +int64_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_metadata(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int64_t payment_metadata_ref = tag_ptr(&obj->receive_keysend.payment_metadata, false); + return payment_metadata_ref; +} +int32_t CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_incoming_cltv_expiry(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + int32_t incoming_cltv_expiry_conv = obj->receive_keysend.incoming_cltv_expiry; + return incoming_cltv_expiry_conv; +} +int64_tArray CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_custom_tlvs(int64_t ptr) { + LDKPendingHTLCRouting *obj = (LDKPendingHTLCRouting*)untag_ptr(ptr); + CHECK(obj->tag == LDKPendingHTLCRouting_ReceiveKeysend); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_var = obj->receive_keysend.custom_tlvs; + int64_tArray custom_tlvs_arr = NULL; + custom_tlvs_arr = init_int64_tArray(custom_tlvs_var.datalen, __LINE__); + int64_t *custom_tlvs_arr_ptr = (int64_t*)(((uint8_t*)custom_tlvs_arr) + 8); + for (size_t x = 0; x < custom_tlvs_var.datalen; x++) { + LDKC2Tuple_u64CVec_u8ZZ* custom_tlvs_conv_23_conv = MALLOC(sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKC2Tuple_u64CVec_u8ZZ"); + *custom_tlvs_conv_23_conv = custom_tlvs_var.data[x]; + *custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone(custom_tlvs_conv_23_conv); + custom_tlvs_arr_ptr[x] = tag_ptr(custom_tlvs_conv_23_conv, true); + } + + return custom_tlvs_arr; +} +static inline struct LDKPendingHTLCRouting CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return PendingHTLCRouting_clone(&*owner->contents.result); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(owner); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_PendingHTLCRoutingDecodeErrorZ_get_err(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_PendingHTLCRoutingDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKPendingHTLCInfo CResult_PendingHTLCInfoDecodeErrorZ_get_ok(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner){ + LDKPendingHTLCInfo ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(owner); + LDKPendingHTLCInfo ret_var = CResult_PendingHTLCInfoDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_PendingHTLCInfoDecodeErrorZ_get_err(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* owner_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_PendingHTLCInfoDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline enum LDKBlindedFailure CResult_BlindedFailureDecodeErrorZ_get_ok(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner){ +CHECK(owner->result_ok); + return BlindedFailure_clone(&*owner->contents.result); +} +int32_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_BlindedFailureDecodeErrorZ* owner_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(owner); + int32_t ret_conv = LDKBlindedFailure_to_cs(CResult_BlindedFailureDecodeErrorZ_get_ok(owner_conv)); + return ret_conv; +} + +static inline struct LDKDecodeError CResult_BlindedFailureDecodeErrorZ_get_err(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_BlindedFailureDecodeErrorZ* owner_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_BlindedFailureDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline enum LDKChannelShutdownState CResult_ChannelShutdownStateDecodeErrorZ_get_ok(LDKCResult_ChannelShutdownStateDecodeErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); return ChannelShutdownState_clone(&*owner->contents.result); @@ -5894,7 +6358,7 @@ LDKCResult_ChannelMonitorUpdateStatusNoneZ watch_channel_LDKWatch_jcall(const vo int64_t monitor_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(monitor_var); monitor_ref = tag_ptr(monitor_var.inner, monitor_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 26, funding_txo_ref, monitor_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 27, funding_txo_ref, monitor_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ChannelMonitorUpdateStatusNoneZ ret_conv = *(LDKCResult_ChannelMonitorUpdateStatusNoneZ*)(ret_ptr); @@ -5912,13 +6376,13 @@ LDKChannelMonitorUpdateStatus update_channel_LDKWatch_jcall(const void* this_arg update_var = ChannelMonitorUpdate_clone(&update_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(update_var); update_ref = tag_ptr(update_var.inner, update_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_ll(j_calls->instance_ptr, 27, funding_txo_ref, update_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_ll(j_calls->instance_ptr, 28, funding_txo_ref, update_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ release_pending_monitor_events_LDKWatch_jcall(const void* this_arg) { LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 28); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 29); LDKCVec_C3Tuple_OutPointCVec_MonitorEventZPublicKeyZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -6040,7 +6504,7 @@ void broadcast_transactions_LDKBroadcasterInterface_jcall(const void* this_arg, } FREE(txs_var.data); - js_invoke_function_void_l(j_calls->instance_ptr, 29, (int64_t)txs_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 30, (int64_t)txs_arr); } static void LDKBroadcasterInterface_JCalls_cloned(LDKBroadcasterInterface* new_obj) { LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) new_obj->this_arg; @@ -6099,7 +6563,7 @@ static void LDKEntropySource_JCalls_free(void* this_arg) { } LDKThirtyTwoBytes get_secure_random_bytes_LDKEntropySource_jcall(const void* this_arg) { LDKEntropySource_JCalls *j_calls = (LDKEntropySource_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 30); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 31); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6183,7 +6647,7 @@ static void LDKNodeSigner_JCalls_free(void* this_arg) { } LDKThirtyTwoBytes get_inbound_payment_key_material_LDKNodeSigner_jcall(const void* this_arg) { LDKNodeSigner_JCalls *j_calls = (LDKNodeSigner_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 31); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 32); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6192,7 +6656,7 @@ LDKThirtyTwoBytes get_inbound_payment_key_material_LDKNodeSigner_jcall(const voi LDKCResult_PublicKeyNoneZ get_node_id_LDKNodeSigner_jcall(const void* this_arg, LDKRecipient recipient) { LDKNodeSigner_JCalls *j_calls = (LDKNodeSigner_JCalls*) this_arg; int32_t recipient_conv = LDKRecipient_to_cs(recipient); - uint64_t ret = js_invoke_function_l_Recipient(j_calls->instance_ptr, 32, recipient_conv); + uint64_t ret = js_invoke_function_l_Recipient(j_calls->instance_ptr, 33, recipient_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_PublicKeyNoneZ ret_conv = *(LDKCResult_PublicKeyNoneZ*)(ret_ptr); @@ -6207,7 +6671,7 @@ LDKCResult_ThirtyTwoBytesNoneZ ecdh_LDKNodeSigner_jcall(const void* this_arg, LD LDKCOption_BigEndianScalarZ *tweak_copy = MALLOC(sizeof(LDKCOption_BigEndianScalarZ), "LDKCOption_BigEndianScalarZ"); *tweak_copy = tweak; int64_t tweak_ref = tag_ptr(tweak_copy, true); - uint64_t ret = js_invoke_function_l_Recipientll(j_calls->instance_ptr, 33, recipient_conv, (int64_t)other_key_arr, tweak_ref); + uint64_t ret = js_invoke_function_l_Recipientll(j_calls->instance_ptr, 34, recipient_conv, (int64_t)other_key_arr, tweak_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ThirtyTwoBytesNoneZ ret_conv = *(LDKCResult_ThirtyTwoBytesNoneZ*)(ret_ptr); @@ -6230,7 +6694,7 @@ LDKCResult_RecoverableSignatureNoneZ sign_invoice_LDKNodeSigner_jcall(const void FREE(invoice_data_var.data); int32_t recipient_conv = LDKRecipient_to_cs(recipient); - uint64_t ret = js_invoke_function_l_llRecipient(j_calls->instance_ptr, 34, (int64_t)hrp_bytes_arr, (int64_t)invoice_data_arr, recipient_conv); + uint64_t ret = js_invoke_function_l_llRecipient(j_calls->instance_ptr, 35, (int64_t)hrp_bytes_arr, (int64_t)invoice_data_arr, recipient_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RecoverableSignatureNoneZ ret_conv = *(LDKCResult_RecoverableSignatureNoneZ*)(ret_ptr); @@ -6244,7 +6708,7 @@ LDKCResult_SchnorrSignatureNoneZ sign_bolt12_invoice_request_LDKNodeSigner_jcall // WARNING: we may need a move here but no clone is available for LDKUnsignedInvoiceRequest CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_request_var); invoice_request_ref = tag_ptr(invoice_request_var.inner, invoice_request_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 35, invoice_request_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 36, invoice_request_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_SchnorrSignatureNoneZ ret_conv = *(LDKCResult_SchnorrSignatureNoneZ*)(ret_ptr); @@ -6258,7 +6722,7 @@ LDKCResult_SchnorrSignatureNoneZ sign_bolt12_invoice_LDKNodeSigner_jcall(const v // WARNING: we may need a move here but no clone is available for LDKUnsignedBolt12Invoice CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_var); invoice_ref = tag_ptr(invoice_var.inner, invoice_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 36, invoice_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 37, invoice_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_SchnorrSignatureNoneZ ret_conv = *(LDKCResult_SchnorrSignatureNoneZ*)(ret_ptr); @@ -6270,7 +6734,7 @@ LDKCResult_ECDSASignatureNoneZ sign_gossip_message_LDKNodeSigner_jcall(const voi LDKUnsignedGossipMessage *msg_copy = MALLOC(sizeof(LDKUnsignedGossipMessage), "LDKUnsignedGossipMessage"); *msg_copy = msg; int64_t msg_ref = tag_ptr(msg_copy, true); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 37, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 38, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ECDSASignatureNoneZ ret_conv = *(LDKCResult_ECDSASignatureNoneZ*)(ret_ptr); @@ -6424,7 +6888,7 @@ LDKThirtyTwoBytes generate_channel_keys_id_LDKSignerProvider_jcall(const void* t int64_t channel_value_satoshis_conv = channel_value_satoshis; int8_tArray user_channel_id_arr = init_int8_tArray(16, __LINE__); memcpy(user_channel_id_arr->elems, user_channel_id.le_bytes, 16); - int8_tArray ret = (int8_tArray)js_invoke_function_l_bll(j_calls->instance_ptr, 38, inbound_conv, channel_value_satoshis_conv, (int64_t)user_channel_id_arr); + int8_tArray ret = (int8_tArray)js_invoke_function_l_bll(j_calls->instance_ptr, 39, inbound_conv, channel_value_satoshis_conv, (int64_t)user_channel_id_arr); LDKThirtyTwoBytes ret_ref; CHECK(ret->arr_len == 32); memcpy(ret_ref.data, ret->elems, 32); FREE(ret); @@ -6435,7 +6899,7 @@ LDKWriteableEcdsaChannelSigner derive_channel_signer_LDKSignerProvider_jcall(con int64_t channel_value_satoshis_conv = channel_value_satoshis; int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); memcpy(channel_keys_id_arr->elems, channel_keys_id.data, 32); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 39, channel_value_satoshis_conv, (int64_t)channel_keys_id_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 40, channel_value_satoshis_conv, (int64_t)channel_keys_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKWriteableEcdsaChannelSigner ret_conv = *(LDKWriteableEcdsaChannelSigner*)(ret_ptr); @@ -6447,16 +6911,18 @@ LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ read_chan_signer_LDKSignerPro LDKu8slice reader_var = reader; int8_tArray reader_arr = init_int8_tArray(reader_var.datalen, __LINE__); memcpy(reader_arr->elems, reader_var.data, reader_var.datalen); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 40, (int64_t)reader_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 41, (int64_t)reader_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ ret_conv = *(LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const void* this_arg) { +LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const void* this_arg, LDKThirtyTwoBytes channel_keys_id) { LDKSignerProvider_JCalls *j_calls = (LDKSignerProvider_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 41); + int8_tArray channel_keys_id_arr = init_int8_tArray(32, __LINE__); + memcpy(channel_keys_id_arr->elems, channel_keys_id.data, 32); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 42, (int64_t)channel_keys_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZNoneZ ret_conv = *(LDKCResult_CVec_u8ZNoneZ*)(ret_ptr); @@ -6465,7 +6931,7 @@ LDKCResult_CVec_u8ZNoneZ get_destination_script_LDKSignerProvider_jcall(const vo } LDKCResult_ShutdownScriptNoneZ get_shutdown_scriptpubkey_LDKSignerProvider_jcall(const void* this_arg) { LDKSignerProvider_JCalls *j_calls = (LDKSignerProvider_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 42); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 43); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_ShutdownScriptNoneZ ret_conv = *(LDKCResult_ShutdownScriptNoneZ*)(ret_ptr); @@ -6534,12 +7000,15 @@ int64_t CS_LDK_SignerProvider_read_chan_signer(int64_t this_arg, int8_tArray re return tag_ptr(ret_conv, true); } -int64_t CS_LDK_SignerProvider_get_destination_script(int64_t this_arg) { +int64_t CS_LDK_SignerProvider_get_destination_script(int64_t this_arg, int8_tArray channel_keys_id) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKSignerProvider* this_arg_conv = (LDKSignerProvider*)this_arg_ptr; + LDKThirtyTwoBytes channel_keys_id_ref; + CHECK(channel_keys_id->arr_len == 32); + memcpy(channel_keys_id_ref.data, channel_keys_id->elems, 32); FREE(channel_keys_id); LDKCResult_CVec_u8ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZNoneZ), "LDKCResult_CVec_u8ZNoneZ"); - *ret_conv = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg); + *ret_conv = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg, channel_keys_id_ref); return tag_ptr(ret_conv, true); } @@ -6565,7 +7034,7 @@ static void LDKFeeEstimator_JCalls_free(void* this_arg) { 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; int32_t confirmation_target_conv = LDKConfirmationTarget_to_cs(confirmation_target); - return js_invoke_function_i_ConfirmationTarget(j_calls->instance_ptr, 43, confirmation_target_conv); + return js_invoke_function_i_ConfirmationTarget(j_calls->instance_ptr, 44, confirmation_target_conv); } static void LDKFeeEstimator_JCalls_cloned(LDKFeeEstimator* new_obj) { LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) new_obj->this_arg; @@ -6597,9 +7066,147 @@ int32_t CS_LDK_FeeEstimator_get_est_sat_per_1000_weight(int64_t this_arg, int32 return ret_conv; } +typedef struct LDKMessageRouter_JCalls { + atomic_size_t refcnt; + uint32_t instance_ptr; +} LDKMessageRouter_JCalls; +static void LDKMessageRouter_JCalls_free(void* this_arg) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + if (atomic_fetch_sub_explicit(&j_calls->refcnt, 1, memory_order_acquire) == 1) { + FREE(j_calls); + } +} +LDKCResult_OnionMessagePathNoneZ find_path_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey sender, LDKCVec_PublicKeyZ peers, LDKDestination destination) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + int8_tArray sender_arr = init_int8_tArray(33, __LINE__); + memcpy(sender_arr->elems, sender.compressed_form, 33); + LDKCVec_PublicKeyZ peers_var = peers; + ptrArray peers_arr = NULL; + peers_arr = init_ptrArray(peers_var.datalen, __LINE__); + int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); + for (size_t i = 0; i < peers_var.datalen; i++) { + int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); + memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); + peers_arr_ptr[i] = peers_conv_8_arr; + } + + FREE(peers_var.data); + LDKDestination *destination_copy = MALLOC(sizeof(LDKDestination), "LDKDestination"); + *destination_copy = destination; + int64_t destination_ref = tag_ptr(destination_copy, true); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 45, (int64_t)sender_arr, (int64_t)peers_arr, destination_ref); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_OnionMessagePathNoneZ ret_conv = *(LDKCResult_OnionMessagePathNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +LDKCResult_CVec_BlindedPathZNoneZ create_blinded_paths_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey recipient, LDKCVec_PublicKeyZ peers) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; + int8_tArray recipient_arr = init_int8_tArray(33, __LINE__); + memcpy(recipient_arr->elems, recipient.compressed_form, 33); + LDKCVec_PublicKeyZ peers_var = peers; + ptrArray peers_arr = NULL; + peers_arr = init_ptrArray(peers_var.datalen, __LINE__); + int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); + for (size_t i = 0; i < peers_var.datalen; i++) { + int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); + memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); + peers_arr_ptr[i] = peers_conv_8_arr; + } + + FREE(peers_var.data); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 46, (int64_t)recipient_arr, (int64_t)peers_arr); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_CVec_BlindedPathZNoneZ ret_conv = *(LDKCResult_CVec_BlindedPathZNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} +static void LDKMessageRouter_JCalls_cloned(LDKMessageRouter* new_obj) { + LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) new_obj->this_arg; + atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); +} +static inline LDKMessageRouter LDKMessageRouter_init (int64_t o) { + LDKMessageRouter_JCalls *calls = MALLOC(sizeof(LDKMessageRouter_JCalls), "LDKMessageRouter_JCalls"); + atomic_init(&calls->refcnt, 1); + calls->instance_ptr = o; + + LDKMessageRouter ret = { + .this_arg = (void*) calls, + .find_path = find_path_LDKMessageRouter_jcall, + .create_blinded_paths = create_blinded_paths_LDKMessageRouter_jcall, + .free = LDKMessageRouter_JCalls_free, + }; + return ret; +} +uint64_t CS_LDK_LDKMessageRouter_new(int32_t o) { + LDKMessageRouter *res_ptr = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); + *res_ptr = LDKMessageRouter_init(o); + return tag_ptr(res_ptr, true); +} +int64_t CS_LDK_MessageRouter_find_path(int64_t this_arg, int8_tArray sender, ptrArray peers, int64_t destination) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; + LDKPublicKey sender_ref; + CHECK(sender->arr_len == 33); + memcpy(sender_ref.compressed_form, sender->elems, 33); FREE(sender); + LDKCVec_PublicKeyZ peers_constr; + peers_constr.datalen = peers->arr_len; + if (peers_constr.datalen > 0) + peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + peers_constr.data = NULL; + int8_tArray* peers_vals = (void*) peers->elems; + for (size_t i = 0; i < peers_constr.datalen; i++) { + int8_tArray peers_conv_8 = peers_vals[i]; + LDKPublicKey peers_conv_8_ref; + CHECK(peers_conv_8->arr_len == 33); + memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); + peers_constr.data[i] = peers_conv_8_ref; + } + FREE(peers); + void* destination_ptr = untag_ptr(destination); + CHECK_ACCESS(destination_ptr); + LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); + destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = (this_arg_conv->find_path)(this_arg_conv->this_arg, sender_ref, peers_constr, destination_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_MessageRouter_create_blinded_paths(int64_t this_arg, int8_tArray recipient, ptrArray peers) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; + LDKPublicKey recipient_ref; + CHECK(recipient->arr_len == 33); + memcpy(recipient_ref.compressed_form, recipient->elems, 33); FREE(recipient); + LDKCVec_PublicKeyZ peers_constr; + peers_constr.datalen = peers->arr_len; + if (peers_constr.datalen > 0) + peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + peers_constr.data = NULL; + int8_tArray* peers_vals = (void*) peers->elems; + for (size_t i = 0; i < peers_constr.datalen; i++) { + int8_tArray peers_conv_8 = peers_vals[i]; + LDKPublicKey peers_conv_8_ref; + CHECK(peers_conv_8->arr_len == 33); + memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); + peers_constr.data[i] = peers_conv_8_ref; + } + FREE(peers); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = (this_arg_conv->create_blinded_paths)(this_arg_conv->this_arg, recipient_ref, peers_constr); + return tag_ptr(ret_conv, true); +} + typedef struct LDKRouter_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; + LDKMessageRouter_JCalls* MessageRouter; } LDKRouter_JCalls; static void LDKRouter_JCalls_free(void* this_arg) { LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) this_arg; @@ -6635,7 +7242,7 @@ LDKCResult_RouteLightningErrorZ find_route_LDKRouter_jcall(const void* this_arg, int64_t inflight_htlcs_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(inflight_htlcs_var); inflight_htlcs_ref = tag_ptr(inflight_htlcs_var.inner, inflight_htlcs_var.is_owned); - uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 44, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref); + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 47, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RouteLightningErrorZ ret_conv = *(LDKCResult_RouteLightningErrorZ*)(ret_ptr); @@ -6674,18 +7281,48 @@ LDKCResult_RouteLightningErrorZ find_route_with_id_LDKRouter_jcall(const void* t memcpy(_payment_hash_arr->elems, _payment_hash.data, 32); int8_tArray _payment_id_arr = init_int8_tArray(32, __LINE__); memcpy(_payment_id_arr->elems, _payment_id.data, 32); - uint64_t ret = js_invoke_function_l_llllll(j_calls->instance_ptr, 45, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref, (int64_t)_payment_hash_arr, (int64_t)_payment_id_arr); + uint64_t ret = js_invoke_function_l_llllll(j_calls->instance_ptr, 48, (int64_t)payer_arr, route_params_ref, (int64_t)first_hops_arr, inflight_htlcs_ref, (int64_t)_payment_hash_arr, (int64_t)_payment_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_RouteLightningErrorZ ret_conv = *(LDKCResult_RouteLightningErrorZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } +LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ create_blinded_payment_paths_LDKRouter_jcall(const void* this_arg, LDKPublicKey recipient, LDKCVec_ChannelDetailsZ first_hops, LDKReceiveTlvs tlvs, uint64_t amount_msats) { + LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) this_arg; + int8_tArray recipient_arr = init_int8_tArray(33, __LINE__); + memcpy(recipient_arr->elems, recipient.compressed_form, 33); + LDKCVec_ChannelDetailsZ first_hops_var = first_hops; + int64_tArray first_hops_arr = NULL; + first_hops_arr = init_int64_tArray(first_hops_var.datalen, __LINE__); + int64_t *first_hops_arr_ptr = (int64_t*)(((uint8_t*)first_hops_arr) + 8); + for (size_t q = 0; q < first_hops_var.datalen; q++) { + LDKChannelDetails first_hops_conv_16_var = first_hops_var.data[q]; + int64_t first_hops_conv_16_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hops_conv_16_var); + first_hops_conv_16_ref = tag_ptr(first_hops_conv_16_var.inner, first_hops_conv_16_var.is_owned); + first_hops_arr_ptr[q] = first_hops_conv_16_ref; + } + + FREE(first_hops_var.data); + LDKReceiveTlvs tlvs_var = tlvs; + int64_t tlvs_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(tlvs_var); + tlvs_ref = tag_ptr(tlvs_var.inner, tlvs_var.is_owned); + int64_t amount_msats_conv = amount_msats; + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 49, (int64_t)recipient_arr, (int64_t)first_hops_arr, tlvs_ref, amount_msats_conv); + void* ret_ptr = untag_ptr(ret); + CHECK_ACCESS(ret_ptr); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_conv = *(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)(ret_ptr); + FREE(untag_ptr(ret)); + return ret_conv; +} static void LDKRouter_JCalls_cloned(LDKRouter* new_obj) { LDKRouter_JCalls *j_calls = (LDKRouter_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); + atomic_fetch_add_explicit(&j_calls->MessageRouter->refcnt, 1, memory_order_release); } -static inline LDKRouter LDKRouter_init (int64_t o) { +static inline LDKRouter LDKRouter_init (int64_t o, int64_t MessageRouter) { LDKRouter_JCalls *calls = MALLOC(sizeof(LDKRouter_JCalls), "LDKRouter_JCalls"); atomic_init(&calls->refcnt, 1); calls->instance_ptr = o; @@ -6694,13 +7331,16 @@ static inline LDKRouter LDKRouter_init (int64_t o) { .this_arg = (void*) calls, .find_route = find_route_LDKRouter_jcall, .find_route_with_id = find_route_with_id_LDKRouter_jcall, + .create_blinded_payment_paths = create_blinded_payment_paths_LDKRouter_jcall, .free = LDKRouter_JCalls_free, + .MessageRouter = LDKMessageRouter_init(MessageRouter), }; + calls->MessageRouter = ret.MessageRouter.this_arg; return ret; } -uint64_t CS_LDK_LDKRouter_new(int32_t o) { +uint64_t CS_LDK_LDKRouter_new(int32_t o, int32_t MessageRouter) { LDKRouter *res_ptr = MALLOC(sizeof(LDKRouter), "LDKRouter"); - *res_ptr = LDKRouter_init(o); + *res_ptr = LDKRouter_init(o, MessageRouter); return tag_ptr(res_ptr, true); } int64_t CS_LDK_Router_find_route(int64_t this_arg, int8_tArray payer, int64_t route_params, int64_tArray first_hops, int64_t inflight_htlcs) { @@ -6797,6 +7437,40 @@ int64_t CS_LDK_Router_find_route_with_id(int64_t this_arg, int8_tArray payer, i return tag_ptr(ret_conv, true); } +int64_t CS_LDK_Router_create_blinded_payment_paths(int64_t this_arg, int8_tArray recipient, int64_tArray first_hops, int64_t tlvs, int64_t amount_msats) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKRouter* this_arg_conv = (LDKRouter*)this_arg_ptr; + LDKPublicKey recipient_ref; + CHECK(recipient->arr_len == 33); + memcpy(recipient_ref.compressed_form, recipient->elems, 33); FREE(recipient); + LDKCVec_ChannelDetailsZ first_hops_constr; + first_hops_constr.datalen = first_hops->arr_len; + if (first_hops_constr.datalen > 0) + first_hops_constr.data = MALLOC(first_hops_constr.datalen * sizeof(LDKChannelDetails), "LDKCVec_ChannelDetailsZ Elements"); + else + first_hops_constr.data = NULL; + int64_t* first_hops_vals = first_hops->elems; + for (size_t q = 0; q < first_hops_constr.datalen; q++) { + int64_t first_hops_conv_16 = first_hops_vals[q]; + LDKChannelDetails first_hops_conv_16_conv; + first_hops_conv_16_conv.inner = untag_ptr(first_hops_conv_16); + first_hops_conv_16_conv.is_owned = ptr_is_owned(first_hops_conv_16); + CHECK_INNER_FIELD_ACCESS_OR_NULL(first_hops_conv_16_conv); + first_hops_conv_16_conv = ChannelDetails_clone(&first_hops_conv_16_conv); + first_hops_constr.data[q] = first_hops_conv_16_conv; + } + FREE(first_hops); + LDKReceiveTlvs tlvs_conv; + tlvs_conv.inner = untag_ptr(tlvs); + tlvs_conv.is_owned = ptr_is_owned(tlvs); + CHECK_INNER_FIELD_ACCESS_OR_NULL(tlvs_conv); + tlvs_conv = ReceiveTlvs_clone(&tlvs_conv); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = (this_arg_conv->create_blinded_payment_paths)(this_arg_conv->this_arg, recipient_ref, first_hops_constr, tlvs_conv, amount_msats); + return tag_ptr(ret_conv, true); +} + static inline struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesChannelManagerZ_get_a(LDKC2Tuple_ThirtyTwoBytesChannelManagerZ *NONNULL_PTR owner){ return ThirtyTwoBytes_clone(&owner->a); } @@ -7380,17 +8054,17 @@ static void LDKType_JCalls_free(void* this_arg) { } uint16_t type_id_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - return js_invoke_function_s_(j_calls->instance_ptr, 46); + return js_invoke_function_s_(j_calls->instance_ptr, 50); } LDKStr debug_str_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 47); + jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 51); LDKStr ret_conv = str_ref_to_owned_c(ret); return ret_conv; } LDKCVec_u8Z write_LDKType_jcall(const void* this_arg) { LDKType_JCalls *j_calls = (LDKType_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 48); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 52); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -7477,6 +8151,43 @@ static inline LDKCVec_C2Tuple_PublicKeyTypeZZ CVec_C2Tuple_PublicKeyTypeZZ_clone } return ret; } +static inline struct LDKPublicKey C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner){ + return owner->a; +} +int8_tArray CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(int64_t owner) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* owner_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(owner_conv).compressed_form, 33); + return ret_arr; +} + +static inline struct LDKCVec_SocketAddressZ C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner){ + return CVec_SocketAddressZ_clone(&owner->b); +} +int64_tArray CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(int64_t owner) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* owner_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(owner); + LDKCVec_SocketAddressZ ret_var = C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(owner_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t p = 0; p < ret_var.datalen; p++) { + LDKSocketAddress *ret_conv_15_copy = MALLOC(sizeof(LDKSocketAddress), "LDKSocketAddress"); + *ret_conv_15_copy = ret_var.data[p]; + int64_t ret_conv_15_ref = tag_ptr(ret_conv_15_copy, true); + ret_arr_ptr[p] = ret_conv_15_ref; + } + + FREE(ret_var.data); + return ret_arr; +} + +static inline LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_clone(const LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ *orig) { + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ) * orig->datalen, "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(&orig->data[i]); + } + return ret; +} typedef struct LDKOnionMessageContents_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -7489,17 +8200,23 @@ static void LDKOnionMessageContents_JCalls_free(void* this_arg) { } uint64_t tlv_type_LDKOnionMessageContents_jcall(const void* this_arg) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; - return js_invoke_function_l_(j_calls->instance_ptr, 49); + return js_invoke_function_l_(j_calls->instance_ptr, 53); } LDKCVec_u8Z write_LDKOnionMessageContents_jcall(const void* this_arg) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 50); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 54); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); memcpy(ret_ref.data, ret->elems, ret_ref.datalen); FREE(ret); return ret_ref; } +LDKStr debug_str_LDKOnionMessageContents_jcall(const void* this_arg) { + LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) this_arg; + jstring ret = (jstring)js_invoke_function_l_(j_calls->instance_ptr, 55); + LDKStr ret_conv = str_ref_to_owned_c(ret); + return ret_conv; +} static void LDKOnionMessageContents_JCalls_cloned(LDKOnionMessageContents* new_obj) { LDKOnionMessageContents_JCalls *j_calls = (LDKOnionMessageContents_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); @@ -7513,6 +8230,7 @@ static inline LDKOnionMessageContents LDKOnionMessageContents_init (int64_t o) { .this_arg = (void*) calls, .tlv_type = tlv_type_LDKOnionMessageContents_jcall, .write = write_LDKOnionMessageContents_jcall, + .debug_str = debug_str_LDKOnionMessageContents_jcall, .cloned = LDKOnionMessageContents_JCalls_cloned, .free = LDKOnionMessageContents_JCalls_free, }; @@ -7542,6 +8260,16 @@ int8_tArray CS_LDK_OnionMessageContents_write(int64_t this_arg) { return ret_arr; } +jstring CS_LDK_OnionMessageContents_debug_str(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageContents* this_arg_conv = (LDKOnionMessageContents*)this_arg_ptr; + LDKStr ret_str = (this_arg_conv->debug_str)(this_arg_conv->this_arg); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + uint32_t CS_LDK_LDKCOption_OnionMessageContentsZ_ty_from_ptr(int64_t ptr) { LDKCOption_OnionMessageContentsZ *obj = (LDKCOption_OnionMessageContentsZ*)untag_ptr(ptr); switch(obj->tag) { @@ -8118,6 +8846,110 @@ int64_t CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKStfu CResult_StfuDecodeErrorZ_get_ok(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner){ + LDKStfu ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_StfuDecodeErrorZ* owner_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(owner); + LDKStfu ret_var = CResult_StfuDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_StfuDecodeErrorZ_get_err(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_StfuDecodeErrorZ* owner_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_StfuDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSplice CResult_SpliceDecodeErrorZ_get_ok(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner){ + LDKSplice ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceDecodeErrorZ* owner_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(owner); + LDKSplice ret_var = CResult_SpliceDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceDecodeErrorZ_get_err(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceDecodeErrorZ* owner_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSpliceAck CResult_SpliceAckDecodeErrorZ_get_ok(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner){ + LDKSpliceAck ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceAckDecodeErrorZ* owner_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(owner); + LDKSpliceAck ret_var = CResult_SpliceAckDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceAckDecodeErrorZ_get_err(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceAckDecodeErrorZ* owner_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceAckDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKSpliceLocked CResult_SpliceLockedDecodeErrorZ_get_ok(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner){ + LDKSpliceLocked ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_SpliceLockedDecodeErrorZ* owner_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(owner); + LDKSpliceLocked ret_var = CResult_SpliceLockedDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_SpliceLockedDecodeErrorZ_get_err(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_SpliceLockedDecodeErrorZ* owner_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_SpliceLockedDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKTxAddInput CResult_TxAddInputDecodeErrorZ_get_ok(LDKCResult_TxAddInputDecodeErrorZ *NONNULL_PTR owner){ LDKTxAddInput ret = *owner->contents.result; ret.is_owned = false; @@ -8794,6 +9626,32 @@ int64_t CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKOnionPacket CResult_OnionPacketDecodeErrorZ_get_ok(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner){ + LDKOnionPacket ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_OnionPacketDecodeErrorZ* owner_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(owner); + LDKOnionPacket ret_var = CResult_OnionPacketDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_OnionPacketDecodeErrorZ_get_err(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_OnionPacketDecodeErrorZ* owner_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_OnionPacketDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKUpdateAddHTLC CResult_UpdateAddHTLCDecodeErrorZ_get_ok(LDKCResult_UpdateAddHTLCDecodeErrorZ *NONNULL_PTR owner){ LDKUpdateAddHTLC ret = *owner->contents.result; ret.is_owned = false; @@ -8846,6 +9704,32 @@ int64_t CS_LDK_CResult_OnionMessageDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKFinalOnionHopData CResult_FinalOnionHopDataDecodeErrorZ_get_ok(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner){ + LDKFinalOnionHopData ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* owner_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(owner); + LDKFinalOnionHopData ret_var = CResult_FinalOnionHopDataDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_FinalOnionHopDataDecodeErrorZ_get_err(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* owner_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_FinalOnionHopDataDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + static inline struct LDKPing CResult_PingDecodeErrorZ_get_ok(LDKCResult_PingDecodeErrorZ *NONNULL_PTR owner){ LDKPing ret = *owner->contents.result; ret.is_owned = false; @@ -10152,24 +11036,25 @@ uint32_t CS_LDK_LDKEvent_ty_from_ptr(int64_t ptr) { case LDKEvent_FundingGenerationReady: return 0; case LDKEvent_PaymentClaimable: return 1; case LDKEvent_PaymentClaimed: return 2; - case LDKEvent_InvoiceRequestFailed: return 3; - case LDKEvent_PaymentSent: return 4; - case LDKEvent_PaymentFailed: return 5; - case LDKEvent_PaymentPathSuccessful: return 6; - case LDKEvent_PaymentPathFailed: return 7; - case LDKEvent_ProbeSuccessful: return 8; - case LDKEvent_ProbeFailed: return 9; - case LDKEvent_PendingHTLCsForwardable: return 10; - case LDKEvent_HTLCIntercepted: return 11; - case LDKEvent_SpendableOutputs: return 12; - case LDKEvent_PaymentForwarded: return 13; - case LDKEvent_ChannelPending: return 14; - case LDKEvent_ChannelReady: return 15; - case LDKEvent_ChannelClosed: return 16; - case LDKEvent_DiscardFunding: return 17; - case LDKEvent_OpenChannelRequest: return 18; - case LDKEvent_HTLCHandlingFailed: return 19; - case LDKEvent_BumpTransaction: return 20; + case LDKEvent_ConnectionNeeded: return 3; + case LDKEvent_InvoiceRequestFailed: return 4; + case LDKEvent_PaymentSent: return 5; + case LDKEvent_PaymentFailed: return 6; + case LDKEvent_PaymentPathSuccessful: return 7; + case LDKEvent_PaymentPathFailed: return 8; + case LDKEvent_ProbeSuccessful: return 9; + case LDKEvent_ProbeFailed: return 10; + case LDKEvent_PendingHTLCsForwardable: return 11; + case LDKEvent_HTLCIntercepted: return 12; + case LDKEvent_SpendableOutputs: return 13; + case LDKEvent_PaymentForwarded: return 14; + case LDKEvent_ChannelPending: return 15; + case LDKEvent_ChannelReady: return 16; + case LDKEvent_ChannelClosed: return 17; + case LDKEvent_DiscardFunding: return 18; + case LDKEvent_OpenChannelRequest: return 19; + case LDKEvent_HTLCHandlingFailed: return 20; + case LDKEvent_BumpTransaction: return 21; default: abort(); } } @@ -10316,6 +11201,27 @@ int64_t CS_LDK_LDKEvent_PaymentClaimed_get_sender_intended_total_msat(int64_t pt int64_t sender_intended_total_msat_ref = tag_ptr(&obj->payment_claimed.sender_intended_total_msat, false); return sender_intended_total_msat_ref; } +int8_tArray CS_LDK_LDKEvent_ConnectionNeeded_get_node_id(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ConnectionNeeded); + int8_tArray node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(node_id_arr->elems, obj->connection_needed.node_id.compressed_form, 33); + return node_id_arr; +} +int64_tArray CS_LDK_LDKEvent_ConnectionNeeded_get_addresses(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ConnectionNeeded); + LDKCVec_SocketAddressZ addresses_var = obj->connection_needed.addresses; + int64_tArray addresses_arr = NULL; + addresses_arr = init_int64_tArray(addresses_var.datalen, __LINE__); + int64_t *addresses_arr_ptr = (int64_t*)(((uint8_t*)addresses_arr) + 8); + for (size_t p = 0; p < addresses_var.datalen; p++) { + int64_t addresses_conv_15_ref = tag_ptr(&addresses_var.data[p], false); + addresses_arr_ptr[p] = addresses_conv_15_ref; + } + + return addresses_arr; +} int8_tArray CS_LDK_LDKEvent_InvoiceRequestFailed_get_payment_id(int64_t ptr) { LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKEvent_InvoiceRequestFailed); @@ -10670,6 +11576,15 @@ int64_t CS_LDK_LDKEvent_ChannelClosed_get_channel_capacity_sats(int64_t ptr) { int64_t channel_capacity_sats_ref = tag_ptr(&obj->channel_closed.channel_capacity_sats, false); return channel_capacity_sats_ref; } +int64_t CS_LDK_LDKEvent_ChannelClosed_get_channel_funding_txo(int64_t ptr) { + LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); + CHECK(obj->tag == LDKEvent_ChannelClosed); + LDKOutPoint channel_funding_txo_var = obj->channel_closed.channel_funding_txo; + int64_t channel_funding_txo_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_funding_txo_var); + channel_funding_txo_ref = tag_ptr(channel_funding_txo_var.inner, false); + return channel_funding_txo_ref; +} int8_tArray CS_LDK_LDKEvent_DiscardFunding_get_channel_id(int64_t ptr) { LDKEvent *obj = (LDKEvent*)untag_ptr(ptr); CHECK(obj->tag == LDKEvent_DiscardFunding); @@ -11263,30 +12178,23 @@ int64_t CS_LDK_CResult_UntrustedStringDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -static inline struct LDKReceiveTlvs CResult_ReceiveTlvsDecodeErrorZ_get_ok(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner){ - LDKReceiveTlvs ret = *owner->contents.result; - ret.is_owned = false; - return ret; +static inline struct LDKThirtyTwoBytes C2Tuple__u832u16Z_get_a(LDKC2Tuple__u832u16Z *NONNULL_PTR owner){ + return ThirtyTwoBytes_clone(&owner->a); } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_ok(int64_t owner) { - LDKCResult_ReceiveTlvsDecodeErrorZ* owner_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(owner); - LDKReceiveTlvs ret_var = CResult_ReceiveTlvsDecodeErrorZ_get_ok(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; +int8_tArray CS_LDK_C2Tuple__u832u16Z_get_a(int64_t owner) { + LDKC2Tuple__u832u16Z* owner_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(owner); + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, C2Tuple__u832u16Z_get_a(owner_conv).data, 32); + return ret_arr; } -static inline struct LDKDecodeError CResult_ReceiveTlvsDecodeErrorZ_get_err(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return DecodeError_clone(&*owner->contents.err); +static inline uint16_t C2Tuple__u832u16Z_get_b(LDKC2Tuple__u832u16Z *NONNULL_PTR owner){ + return owner->b; } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_err(int64_t owner) { - LDKCResult_ReceiveTlvsDecodeErrorZ* owner_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(owner); - LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); - *ret_copy = CResult_ReceiveTlvsDecodeErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; +int16_t CS_LDK_C2Tuple__u832u16Z_get_b(int64_t owner) { + LDKC2Tuple__u832u16Z* owner_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(owner); + int16_t ret_conv = C2Tuple__u832u16Z_get_b(owner_conv); + return ret_conv; } static inline struct LDKPaymentRelay CResult_PaymentRelayDecodeErrorZ_get_ok(LDKCResult_PaymentRelayDecodeErrorZ *NONNULL_PTR owner){ @@ -11341,122 +12249,62 @@ int64_t CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } -uint32_t CS_LDK_LDKPaymentError_ty_from_ptr(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - switch(obj->tag) { - case LDKPaymentError_Invoice: return 0; - case LDKPaymentError_Sending: return 1; - default: abort(); - } -} -jstring CS_LDK_LDKPaymentError_Invoice_get_invoice(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - CHECK(obj->tag == LDKPaymentError_Invoice); - LDKStr invoice_str = obj->invoice; - jstring invoice_conv = str_ref_to_cs(invoice_str.chars, invoice_str.len); - return invoice_conv; -} -int32_t CS_LDK_LDKPaymentError_Sending_get_sending(int64_t ptr) { - LDKPaymentError *obj = (LDKPaymentError*)untag_ptr(ptr); - CHECK(obj->tag == LDKPaymentError_Sending); - int32_t sending_conv = LDKRetryableSendFailure_to_cs(obj->sending); - return sending_conv; -} -static inline struct LDKThirtyTwoBytes CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return ThirtyTwoBytes_clone(&*owner->contents.result); +static inline struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + return ThirtyTwoBytes_clone(&owner->a); } -int8_tArray CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(int64_t owner) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* owner_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(32, __LINE__); - memcpy(ret_arr->elems, CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(owner_conv).data, 32); + memcpy(ret_arr->elems, C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(owner_conv).data, 32); return ret_arr; } -static inline struct LDKPaymentError CResult_ThirtyTwoBytesPaymentErrorZ_get_err(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return PaymentError_clone(&*owner->contents.err); +static inline struct LDKRecipientOnionFields C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + LDKRecipientOnionFields ret = owner->b; + ret.is_owned = false; + return ret; } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_err(int64_t owner) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* owner_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(owner); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = CResult_ThirtyTwoBytesPaymentErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); + LDKRecipientOnionFields ret_var = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } -static inline void CResult_NonePaymentErrorZ_get_ok(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner){ -CHECK(owner->result_ok); - return *owner->contents.result; -} -void CS_LDK_CResult_NonePaymentErrorZ_get_ok(int64_t owner) { - LDKCResult_NonePaymentErrorZ* owner_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(owner); - CResult_NonePaymentErrorZ_get_ok(owner_conv); -} - -static inline struct LDKPaymentError CResult_NonePaymentErrorZ_get_err(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return PaymentError_clone(&*owner->contents.err); +static inline struct LDKRouteParameters C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner){ + LDKRouteParameters ret = owner->c; + ret.is_owned = false; + return ret; } -int64_t CS_LDK_CResult_NonePaymentErrorZ_get_err(int64_t owner) { - LDKCResult_NonePaymentErrorZ* owner_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(owner); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = CResult_NonePaymentErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(int64_t owner) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* owner_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(owner); + LDKRouteParameters ret_var = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } -uint32_t CS_LDK_LDKProbingError_ty_from_ptr(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - switch(obj->tag) { - case LDKProbingError_Invoice: return 0; - case LDKProbingError_Sending: return 1; - default: abort(); - } -} -jstring CS_LDK_LDKProbingError_Invoice_get_invoice(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - CHECK(obj->tag == LDKProbingError_Invoice); - LDKStr invoice_str = obj->invoice; - jstring invoice_conv = str_ref_to_cs(invoice_str.chars, invoice_str.len); - return invoice_conv; -} -int64_t CS_LDK_LDKProbingError_Sending_get_sending(int64_t ptr) { - LDKProbingError *obj = (LDKProbingError*)untag_ptr(ptr); - CHECK(obj->tag == LDKProbingError_Sending); - int64_t sending_ref = tag_ptr(&obj->sending, false); - return sending_ref; -} -static inline struct LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner){ +static inline struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ_clone(&*owner->contents.result); + return C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(&*owner->contents.result); } -int64_tArray CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(int64_t owner) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* owner_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(owner); - LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ ret_var = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(owner_conv); - int64_tArray ret_arr = NULL; - ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); - int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t o = 0; o < ret_var.datalen; o++) { - LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ* ret_conv_40_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ), "LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ"); - *ret_conv_40_conv = ret_var.data[o]; - ret_arr_ptr[o] = tag_ptr(ret_conv_40_conv, true); - } - - FREE(ret_var.data); - return ret_arr; +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(int64_t owner) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* owner_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(owner); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(owner_conv); + return tag_ptr(ret_conv, true); } -static inline struct LDKProbingError CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner){ +static inline void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); - return ProbingError_clone(&*owner->contents.err); + return *owner->contents.err; } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(int64_t owner) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* owner_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(owner); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(owner_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; +void CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(int64_t owner) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* owner_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(owner); + CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(owner_conv); } static inline struct LDKStr CResult_StrSecp256k1ErrorZ_get_ok(LDKCResult_StrSecp256k1ErrorZ *NONNULL_PTR owner){ @@ -11480,53 +12328,41 @@ int32_t CS_LDK_CResult_StrSecp256k1ErrorZ_get_err(int64_t owner) { return ret_conv; } -static inline struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ - LDKOnionMessagePath ret = *owner->contents.result; - ret.is_owned = false; - return ret; -} -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_get_ok(int64_t owner) { - LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); - LDKOnionMessagePath ret_var = CResult_OnionMessagePathNoneZ_get_ok(owner_conv); - int64_t ret_ref = 0; - CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); - ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); - return ret_ref; -} - -static inline void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner){ -CHECK(!owner->result_ok); - return *owner->contents.err; -} -void CS_LDK_CResult_OnionMessagePathNoneZ_get_err(int64_t owner) { - LDKCResult_OnionMessagePathNoneZ* owner_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(owner); - CResult_OnionMessagePathNoneZ_get_err(owner_conv); -} - -static inline struct LDKPublicKey C2Tuple_PublicKeyOnionMessageZ_get_a(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner){ +static inline struct LDKPublicKey C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ return owner->a; } -int8_tArray CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_a(int64_t owner) { - LDKC2Tuple_PublicKeyOnionMessageZ* owner_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(owner); +int8_tArray CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, C2Tuple_PublicKeyOnionMessageZ_get_a(owner_conv).compressed_form, 33); + memcpy(ret_arr->elems, C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(owner_conv).compressed_form, 33); return ret_arr; } -static inline struct LDKOnionMessage C2Tuple_PublicKeyOnionMessageZ_get_b(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner){ +static inline struct LDKOnionMessage C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ LDKOnionMessage ret = owner->b; ret.is_owned = false; return ret; } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_b(int64_t owner) { - LDKC2Tuple_PublicKeyOnionMessageZ* owner_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(owner); - LDKOnionMessage ret_var = C2Tuple_PublicKeyOnionMessageZ_get_b(owner_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); + LDKOnionMessage ret_var = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(owner_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); return ret_ref; } +static inline struct LDKCOption_CVec_SocketAddressZZ C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner){ + return COption_CVec_SocketAddressZZ_clone(&owner->c); +} +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(int64_t owner) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* owner_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(owner); + LDKCOption_CVec_SocketAddressZZ *ret_copy = MALLOC(sizeof(LDKCOption_CVec_SocketAddressZZ), "LDKCOption_CVec_SocketAddressZZ"); + *ret_copy = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + uint32_t CS_LDK_LDKSendError_ty_from_ptr(int64_t ptr) { LDKSendError *obj = (LDKSendError*)untag_ptr(ptr); switch(obj->tag) { @@ -11534,10 +12370,11 @@ uint32_t CS_LDK_LDKSendError_ty_from_ptr(int64_t ptr) { case LDKSendError_TooBigPacket: return 1; case LDKSendError_TooFewBlindedHops: return 2; case LDKSendError_InvalidFirstHop: return 3; - case LDKSendError_InvalidMessage: return 4; - case LDKSendError_BufferFull: return 5; - case LDKSendError_GetNodeIdFailed: return 6; - case LDKSendError_BlindedPathAdvanceFailed: return 7; + case LDKSendError_PathNotFound: return 4; + case LDKSendError_InvalidMessage: return 5; + case LDKSendError_BufferFull: return 6; + case LDKSendError_GetNodeIdFailed: return 7; + case LDKSendError_BlindedPathAdvanceFailed: return 8; default: abort(); } } @@ -11547,25 +12384,32 @@ int32_t CS_LDK_LDKSendError_Secp256k1_get_secp256k1(int64_t ptr) { int32_t secp256k1_conv = LDKSecp256k1Error_to_cs(obj->secp256k1); return secp256k1_conv; } -static inline struct LDKC2Tuple_PublicKeyOnionMessageZ CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner){ +int8_tArray CS_LDK_LDKSendError_InvalidFirstHop_get_invalid_first_hop(int64_t ptr) { + LDKSendError *obj = (LDKSendError*)untag_ptr(ptr); + CHECK(obj->tag == LDKSendError_InvalidFirstHop); + int8_tArray invalid_first_hop_arr = init_int8_tArray(33, __LINE__); + memcpy(invalid_first_hop_arr->elems, obj->invalid_first_hop.compressed_form, 33); + return invalid_first_hop_arr; +} +static inline struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return C2Tuple_PublicKeyOnionMessageZ_clone(&*owner->contents.result); + return C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(&*owner->contents.result); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(int64_t owner) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* owner_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(owner); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(int64_t owner) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* owner_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(owner); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(owner_conv); return tag_ptr(ret_conv, true); } -static inline struct LDKSendError CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner){ +static inline struct LDKSendError CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return SendError_clone(&*owner->contents.err); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(int64_t owner) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* owner_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(owner); +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(int64_t owner) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* owner_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(owner); LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(owner_conv); + *ret_copy = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -11658,23 +12502,41 @@ void CS_LDK_CResult_PeeledOnionNoneZ_get_err(int64_t owner) { CResult_PeeledOnionNoneZ_get_err(owner_conv); } -static inline void CResult_NoneSendErrorZ_get_ok(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner){ +uint32_t CS_LDK_LDKSendSuccess_ty_from_ptr(int64_t ptr) { + LDKSendSuccess *obj = (LDKSendSuccess*)untag_ptr(ptr); + switch(obj->tag) { + case LDKSendSuccess_Buffered: return 0; + case LDKSendSuccess_BufferedAwaitingConnection: return 1; + default: abort(); + } +} +int8_tArray CS_LDK_LDKSendSuccess_BufferedAwaitingConnection_get_buffered_awaiting_connection(int64_t ptr) { + LDKSendSuccess *obj = (LDKSendSuccess*)untag_ptr(ptr); + CHECK(obj->tag == LDKSendSuccess_BufferedAwaitingConnection); + int8_tArray buffered_awaiting_connection_arr = init_int8_tArray(33, __LINE__); + memcpy(buffered_awaiting_connection_arr->elems, obj->buffered_awaiting_connection.compressed_form, 33); + return buffered_awaiting_connection_arr; +} +static inline struct LDKSendSuccess CResult_SendSuccessSendErrorZ_get_ok(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner){ CHECK(owner->result_ok); - return *owner->contents.result; + return SendSuccess_clone(&*owner->contents.result); } -void CS_LDK_CResult_NoneSendErrorZ_get_ok(int64_t owner) { - LDKCResult_NoneSendErrorZ* owner_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(owner); - CResult_NoneSendErrorZ_get_ok(owner_conv); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_get_ok(int64_t owner) { + LDKCResult_SendSuccessSendErrorZ* owner_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(owner); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = CResult_SendSuccessSendErrorZ_get_ok(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; } -static inline struct LDKSendError CResult_NoneSendErrorZ_get_err(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner){ +static inline struct LDKSendError CResult_SendSuccessSendErrorZ_get_err(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner){ CHECK(!owner->result_ok); return SendError_clone(&*owner->contents.err); } -int64_t CS_LDK_CResult_NoneSendErrorZ_get_err(int64_t owner) { - LDKCResult_NoneSendErrorZ* owner_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(owner); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_get_err(int64_t owner) { + LDKCResult_SendSuccessSendErrorZ* owner_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(owner); LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = CResult_NoneSendErrorZ_get_err(owner_conv); + *ret_copy = CResult_SendSuccessSendErrorZ_get_err(owner_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -11722,6 +12584,13 @@ void CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_get_err(int64_t own CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_get_err(owner_conv); } +static inline LDKCVec_ForwardNodeZ CVec_ForwardNodeZ_clone(const LDKCVec_ForwardNodeZ *orig) { + LDKCVec_ForwardNodeZ ret = { .data = MALLOC(sizeof(LDKForwardNode) * orig->datalen, "LDKCVec_ForwardNodeZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = ForwardNode_clone(&orig->data[i]); + } + return ret; +} static inline struct LDKBlindedPath CResult_BlindedPathDecodeErrorZ_get_ok(LDKCResult_BlindedPathDecodeErrorZ *NONNULL_PTR owner){ LDKBlindedPath ret = *owner->contents.result; ret.is_owned = false; @@ -11800,6 +12669,162 @@ int64_t CS_LDK_CResult_InvoiceErrorDecodeErrorZ_get_err(int64_t owner) { return ret_ref; } +static inline struct LDKDelayedPaymentBasepoint CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKDelayedPaymentBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDelayedPaymentBasepoint ret_var = CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKDelayedPaymentKey CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKDelayedPaymentKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(owner); + LDKDelayedPaymentKey ret_var = CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_DelayedPaymentKeyDecodeErrorZ_get_err(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* owner_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_DelayedPaymentKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKHtlcBasepoint CResult_HtlcBasepointDecodeErrorZ_get_ok(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKHtlcBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_HtlcBasepointDecodeErrorZ* owner_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(owner); + LDKHtlcBasepoint ret_var = CResult_HtlcBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_HtlcBasepointDecodeErrorZ_get_err(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_HtlcBasepointDecodeErrorZ* owner_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_HtlcBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKHtlcKey CResult_HtlcKeyDecodeErrorZ_get_ok(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKHtlcKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_HtlcKeyDecodeErrorZ* owner_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(owner); + LDKHtlcKey ret_var = CResult_HtlcKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_HtlcKeyDecodeErrorZ_get_err(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_HtlcKeyDecodeErrorZ* owner_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_HtlcKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKRevocationBasepoint CResult_RevocationBasepointDecodeErrorZ_get_ok(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner){ + LDKRevocationBasepoint ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_RevocationBasepointDecodeErrorZ* owner_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(owner); + LDKRevocationBasepoint ret_var = CResult_RevocationBasepointDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_RevocationBasepointDecodeErrorZ_get_err(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_RevocationBasepointDecodeErrorZ* owner_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_RevocationBasepointDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +static inline struct LDKRevocationKey CResult_RevocationKeyDecodeErrorZ_get_ok(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner){ + LDKRevocationKey ret = *owner->contents.result; + ret.is_owned = false; + return ret; +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_ok(int64_t owner) { + LDKCResult_RevocationKeyDecodeErrorZ* owner_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(owner); + LDKRevocationKey ret_var = CResult_RevocationKeyDecodeErrorZ_get_ok(owner_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline struct LDKDecodeError CResult_RevocationKeyDecodeErrorZ_get_err(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner){ +CHECK(!owner->result_ok); + return DecodeError_clone(&*owner->contents.err); +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_err(int64_t owner) { + LDKCResult_RevocationKeyDecodeErrorZ* owner_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(owner); + LDKDecodeError *ret_copy = MALLOC(sizeof(LDKDecodeError), "LDKDecodeError"); + *ret_copy = CResult_RevocationKeyDecodeErrorZ_get_err(owner_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + typedef struct LDKFilter_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -11817,7 +12842,7 @@ void register_tx_LDKFilter_jcall(const void* this_arg, const uint8_t (* txid)[32 LDKu8slice script_pubkey_var = script_pubkey; int8_tArray script_pubkey_arr = init_int8_tArray(script_pubkey_var.datalen, __LINE__); memcpy(script_pubkey_arr->elems, script_pubkey_var.data, script_pubkey_var.datalen); - js_invoke_function_void_ll(j_calls->instance_ptr, 51, (int64_t)txid_arr, (int64_t)script_pubkey_arr); + js_invoke_function_void_ll(j_calls->instance_ptr, 56, (int64_t)txid_arr, (int64_t)script_pubkey_arr); } void register_output_LDKFilter_jcall(const void* this_arg, LDKWatchedOutput output) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; @@ -11825,7 +12850,7 @@ void register_output_LDKFilter_jcall(const void* this_arg, LDKWatchedOutput outp int64_t output_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(output_var); output_ref = tag_ptr(output_var.inner, output_var.is_owned); - js_invoke_function_void_l(j_calls->instance_ptr, 52, output_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 57, output_ref); } static void LDKFilter_JCalls_cloned(LDKFilter* new_obj) { LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) new_obj->this_arg; @@ -11996,7 +13021,7 @@ LDKCResult_CVec_u8ZIOErrorZ read_LDKKVStore_jcall(const void* this_arg, LDKStr p LDKStr key_str = key; jstring key_conv = str_ref_to_cs(key_str.chars, key_str.len); Str_free(key_str); - uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 53, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv); + uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 58, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZIOErrorZ ret_conv = *(LDKCResult_CVec_u8ZIOErrorZ*)(ret_ptr); @@ -12017,7 +13042,7 @@ LDKCResult_NoneIOErrorZ write_LDKKVStore_jcall(const void* this_arg, LDKStr prim LDKu8slice buf_var = buf; int8_tArray buf_arr = init_int8_tArray(buf_var.datalen, __LINE__); memcpy(buf_arr->elems, buf_var.data, buf_var.datalen); - uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 54, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, (int64_t)buf_arr); + uint64_t ret = js_invoke_function_l_llll(j_calls->instance_ptr, 59, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, (int64_t)buf_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12036,7 +13061,7 @@ LDKCResult_NoneIOErrorZ remove_LDKKVStore_jcall(const void* this_arg, LDKStr pri jstring key_conv = str_ref_to_cs(key_str.chars, key_str.len); Str_free(key_str); jboolean lazy_conv = lazy; - uint64_t ret = js_invoke_function_l_lllb(j_calls->instance_ptr, 55, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, lazy_conv); + uint64_t ret = js_invoke_function_l_lllb(j_calls->instance_ptr, 60, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv, (int64_t)key_conv, lazy_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12051,7 +13076,7 @@ LDKCResult_CVec_StrZIOErrorZ list_LDKKVStore_jcall(const void* this_arg, LDKStr LDKStr secondary_namespace_str = secondary_namespace; jstring secondary_namespace_conv = str_ref_to_cs(secondary_namespace_str.chars, secondary_namespace_str.len); Str_free(secondary_namespace_str); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 56, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 61, (int64_t)primary_namespace_conv, (int64_t)secondary_namespace_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_StrZIOErrorZ ret_conv = *(LDKCResult_CVec_StrZIOErrorZ*)(ret_ptr); @@ -12150,7 +13175,7 @@ LDKCResult_NoneIOErrorZ persist_manager_LDKPersister_jcall(const void* this_arg, // WARNING: we may need a move here but no clone is available for LDKChannelManager CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_manager_var); channel_manager_ref = tag_ptr(channel_manager_var.inner, channel_manager_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 57, channel_manager_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 62, channel_manager_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12164,7 +13189,7 @@ LDKCResult_NoneIOErrorZ persist_graph_LDKPersister_jcall(const void* this_arg, c // WARNING: we may need a move here but no clone is available for LDKNetworkGraph CHECK_INNER_FIELD_ACCESS_OR_NULL(network_graph_var); network_graph_ref = tag_ptr(network_graph_var.inner, network_graph_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 58, network_graph_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 63, network_graph_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12175,7 +13200,7 @@ LDKCResult_NoneIOErrorZ persist_scorer_LDKPersister_jcall(const void* this_arg, LDKPersister_JCalls *j_calls = (LDKPersister_JCalls*) this_arg; // WARNING: This object doesn't live past this scope, needs clone! int64_t ret_scorer = tag_ptr(scorer, false); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 59, ret_scorer); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 64, ret_scorer); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneIOErrorZ ret_conv = *(LDKCResult_NoneIOErrorZ*)(ret_ptr); @@ -12270,7 +13295,7 @@ LDKChannelMonitorUpdateStatus persist_new_channel_LDKPersist_jcall(const void* t int64_t update_id_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(update_id_var); update_id_ref = tag_ptr(update_id_var.inner, update_id_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_lll(j_calls->instance_ptr, 60, channel_id_ref, data_ref, update_id_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_lll(j_calls->instance_ptr, 65, channel_id_ref, data_ref, update_id_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } @@ -12293,7 +13318,7 @@ LDKChannelMonitorUpdateStatus update_persisted_channel_LDKPersist_jcall(const vo int64_t update_id_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(update_id_var); update_id_ref = tag_ptr(update_id_var.inner, update_id_var.is_owned); - uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_llll(j_calls->instance_ptr, 61, channel_id_ref, update_ref, data_ref, update_id_ref); + uint64_t ret = js_invoke_function_ChannelMonitorUpdateStatus_llll(j_calls->instance_ptr, 66, channel_id_ref, update_ref, data_ref, update_id_ref); LDKChannelMonitorUpdateStatus ret_conv = LDKChannelMonitorUpdateStatus_from_cs(ret); return ret_conv; } @@ -12382,7 +13407,7 @@ static void LDKFutureCallback_JCalls_free(void* this_arg) { } void call_LDKFutureCallback_jcall(const void* this_arg) { LDKFutureCallback_JCalls *j_calls = (LDKFutureCallback_JCalls*) this_arg; - js_invoke_function_void_(j_calls->instance_ptr, 62); + js_invoke_function_void_(j_calls->instance_ptr, 67); } static void LDKFutureCallback_JCalls_cloned(LDKFutureCallback* new_obj) { LDKFutureCallback_JCalls *j_calls = (LDKFutureCallback_JCalls*) new_obj->this_arg; @@ -12438,7 +13463,7 @@ void filtered_block_connected_LDKListen_jcall(const void* this_arg, const uint8_ FREE(txdata_var.data); int32_t height_conv = height; - js_invoke_function_void_lli(j_calls->instance_ptr, 63, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); + js_invoke_function_void_lli(j_calls->instance_ptr, 68, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); } void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uint32_t height) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; @@ -12446,14 +13471,14 @@ void block_connected_LDKListen_jcall(const void* this_arg, LDKu8slice block, uin int8_tArray block_arr = init_int8_tArray(block_var.datalen, __LINE__); memcpy(block_arr->elems, block_var.data, block_var.datalen); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 64, (int64_t)block_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 69, (int64_t)block_arr, height_conv); } void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; int8_tArray header_arr = init_int8_tArray(80, __LINE__); memcpy(header_arr->elems, *header, 80); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 65, (int64_t)header_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 70, (int64_t)header_arr, height_conv); } static void LDKListen_JCalls_cloned(LDKListen* new_obj) { LDKListen_JCalls *j_calls = (LDKListen_JCalls*) new_obj->this_arg; @@ -12553,38 +13578,38 @@ void transactions_confirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t FREE(txdata_var.data); int32_t height_conv = height; - js_invoke_function_void_lli(j_calls->instance_ptr, 66, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); + js_invoke_function_void_lli(j_calls->instance_ptr, 71, (int64_t)header_arr, (int64_t)txdata_arr, height_conv); } void transaction_unconfirmed_LDKConfirm_jcall(const void* this_arg, const uint8_t (* txid)[32]) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; int8_tArray txid_arr = init_int8_tArray(32, __LINE__); memcpy(txid_arr->elems, *txid, 32); - js_invoke_function_void_l(j_calls->instance_ptr, 67, (int64_t)txid_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 72, (int64_t)txid_arr); } void best_block_updated_LDKConfirm_jcall(const void* this_arg, const uint8_t (* header)[80], uint32_t height) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; int8_tArray header_arr = init_int8_tArray(80, __LINE__); memcpy(header_arr->elems, *header, 80); int32_t height_conv = height; - js_invoke_function_void_li(j_calls->instance_ptr, 68, (int64_t)header_arr, height_conv); + js_invoke_function_void_li(j_calls->instance_ptr, 73, (int64_t)header_arr, height_conv); } -LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { +LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 69); - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_constr; + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 74); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) - ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ Elements"); + ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ Elements"); else ret_constr.data = NULL; int64_t* ret_vals = ret->elems; - for (size_t x = 0; x < ret_constr.datalen; x++) { - int64_t ret_conv_49 = ret_vals[x]; - void* ret_conv_49_ptr = untag_ptr(ret_conv_49); - CHECK_ACCESS(ret_conv_49_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_conv_49_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(ret_conv_49_ptr); - FREE(untag_ptr(ret_conv_49)); - ret_constr.data[x] = ret_conv_49_conv; + for (size_t c = 0; c < ret_constr.datalen; c++) { + int64_t ret_conv_54 = ret_vals[c]; + void* ret_conv_54_ptr = untag_ptr(ret_conv_54); + CHECK_ACCESS(ret_conv_54_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_conv_54_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(ret_conv_54_ptr); + FREE(untag_ptr(ret_conv_54)); + ret_constr.data[c] = ret_conv_54_conv; } FREE(ret); return ret_constr; @@ -12666,14 +13691,14 @@ int64_tArray CS_LDK_Confirm_get_relevant_txids(int64_t this_arg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKConfirm* this_arg_conv = (LDKConfirm*)this_arg_ptr; - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_var = (this_arg_conv->get_relevant_txids)(this_arg_conv->this_arg); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_var = (this_arg_conv->get_relevant_txids)(this_arg_conv->this_arg); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t x = 0; x < ret_var.datalen; x++) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv_49_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv_49_conv = ret_var.data[x]; - ret_arr_ptr[x] = tag_ptr(ret_conv_49_conv, true); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv_54_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv_54_conv = ret_var.data[c]; + ret_arr_ptr[c] = tag_ptr(ret_conv_54_conv, true); } FREE(ret_var.data); @@ -12695,7 +13720,7 @@ void handle_event_LDKEventHandler_jcall(const void* this_arg, LDKEvent event) { LDKEvent *event_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); *event_copy = event; int64_t event_ref = tag_ptr(event_copy, true); - js_invoke_function_void_l(j_calls->instance_ptr, 70, event_ref); + js_invoke_function_void_l(j_calls->instance_ptr, 75, event_ref); } static void LDKEventHandler_JCalls_cloned(LDKEventHandler* new_obj) { LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) new_obj->this_arg; @@ -12743,7 +13768,7 @@ void process_pending_events_LDKEventsProvider_jcall(const void* this_arg, LDKEve LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) this_arg; LDKEventHandler* handler_ret = MALLOC(sizeof(LDKEventHandler), "LDKEventHandler"); *handler_ret = handler; - js_invoke_function_void_l(j_calls->instance_ptr, 71, tag_ptr(handler_ret, true)); + js_invoke_function_void_l(j_calls->instance_ptr, 76, tag_ptr(handler_ret, true)); } static void LDKEventsProvider_JCalls_cloned(LDKEventsProvider* new_obj) { LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) new_obj->this_arg; @@ -12808,7 +13833,7 @@ static void LDKMessageSendEventsProvider_JCalls_free(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; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 72); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 77); LDKCVec_MessageSendEventZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -12887,7 +13912,7 @@ void handle_open_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LD msg_var = OpenChannel_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 73, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 78, (int64_t)their_node_id_arr, msg_ref); } void handle_open_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKOpenChannelV2 * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12898,7 +13923,7 @@ void handle_open_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = OpenChannelV2_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 74, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 79, (int64_t)their_node_id_arr, msg_ref); } void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAcceptChannel * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12909,7 +13934,7 @@ void handle_accept_channel_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = AcceptChannel_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 75, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 80, (int64_t)their_node_id_arr, msg_ref); } void handle_accept_channel_v2_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKAcceptChannelV2 * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12920,7 +13945,7 @@ void handle_accept_channel_v2_LDKChannelMessageHandler_jcall(const void* this_ar msg_var = AcceptChannelV2_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 76, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 81, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12931,7 +13956,7 @@ void handle_funding_created_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = FundingCreated_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 77, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 82, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12942,7 +13967,7 @@ void handle_funding_signed_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = FundingSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 78, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 83, (int64_t)their_node_id_arr, msg_ref); } void handle_channel_ready_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKChannelReady * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12953,7 +13978,7 @@ void handle_channel_ready_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = ChannelReady_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 79, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 84, (int64_t)their_node_id_arr, msg_ref); } void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKShutdown * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12964,7 +13989,7 @@ void handle_shutdown_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPub msg_var = Shutdown_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 80, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 85, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -12975,7 +14000,51 @@ void handle_closing_signed_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = ClosingSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 81, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 86, (int64_t)their_node_id_arr, msg_ref); +} +void handle_stfu_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKStfu * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKStfu msg_var = *msg; + int64_t msg_ref = 0; + msg_var = Stfu_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 87, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSplice * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSplice msg_var = *msg; + int64_t msg_ref = 0; + msg_var = Splice_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 88, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_ack_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSpliceAck * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSpliceAck msg_var = *msg; + int64_t msg_ref = 0; + msg_var = SpliceAck_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 89, (int64_t)their_node_id_arr, msg_ref); +} +void handle_splice_locked_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKSpliceLocked * msg) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; + int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); + memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); + LDKSpliceLocked msg_var = *msg; + int64_t msg_ref = 0; + msg_var = SpliceLocked_clone(&msg_var); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); + msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); + js_invoke_function_void_ll(j_calls->instance_ptr, 90, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_add_input_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAddInput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12986,7 +14055,7 @@ void handle_tx_add_input_LDKChannelMessageHandler_jcall(const void* this_arg, LD msg_var = TxAddInput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 82, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 91, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_add_output_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAddOutput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -12997,7 +14066,7 @@ void handle_tx_add_output_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = TxAddOutput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 83, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 92, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_remove_input_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxRemoveInput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13008,7 +14077,7 @@ void handle_tx_remove_input_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = TxRemoveInput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 84, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 93, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_remove_output_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxRemoveOutput * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13019,7 +14088,7 @@ void handle_tx_remove_output_LDKChannelMessageHandler_jcall(const void* this_arg msg_var = TxRemoveOutput_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 85, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 94, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_complete_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxComplete * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13030,7 +14099,7 @@ void handle_tx_complete_LDKChannelMessageHandler_jcall(const void* this_arg, LDK msg_var = TxComplete_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 86, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 95, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_signatures_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxSignatures * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13041,7 +14110,7 @@ void handle_tx_signatures_LDKChannelMessageHandler_jcall(const void* this_arg, L msg_var = TxSignatures_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 87, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 96, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_init_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxInitRbf * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13052,7 +14121,7 @@ void handle_tx_init_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDK msg_var = TxInitRbf_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 88, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 97, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_ack_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAckRbf * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13063,7 +14132,7 @@ void handle_tx_ack_rbf_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP msg_var = TxAckRbf_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 89, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 98, (int64_t)their_node_id_arr, msg_ref); } void handle_tx_abort_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKTxAbort * msg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13074,7 +14143,7 @@ void handle_tx_abort_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPub msg_var = TxAbort_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 90, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 99, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13085,7 +14154,7 @@ void handle_update_add_htlc_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = UpdateAddHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 91, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 100, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13096,7 +14165,7 @@ void handle_update_fulfill_htlc_LDKChannelMessageHandler_jcall(const void* this_ msg_var = UpdateFulfillHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 92, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 101, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13107,7 +14176,7 @@ void handle_update_fail_htlc_LDKChannelMessageHandler_jcall(const void* this_arg msg_var = UpdateFailHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 93, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 102, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13118,7 +14187,7 @@ void handle_update_fail_malformed_htlc_LDKChannelMessageHandler_jcall(const void msg_var = UpdateFailMalformedHTLC_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 94, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 103, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13129,7 +14198,7 @@ void handle_commitment_signed_LDKChannelMessageHandler_jcall(const void* this_ar msg_var = CommitmentSigned_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 95, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 104, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13140,7 +14209,7 @@ void handle_revoke_and_ack_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = RevokeAndACK_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 96, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 105, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13151,7 +14220,7 @@ void handle_update_fee_LDKChannelMessageHandler_jcall(const void* this_arg, LDKP msg_var = UpdateFee_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 97, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 106, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13162,13 +14231,13 @@ void handle_announcement_signatures_LDKChannelMessageHandler_jcall(const void* t msg_var = AnnouncementSignatures_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 98, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 107, (int64_t)their_node_id_arr, msg_ref); } void peer_disconnected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - js_invoke_function_void_l(j_calls->instance_ptr, 99, (int64_t)their_node_id_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 108, (int64_t)their_node_id_arr); } LDKCResult_NoneNoneZ peer_connected_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublicKey their_node_id, const LDKInit * msg, bool inbound) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; @@ -13180,7 +14249,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKChannelMessageHandler_jcall(const void* t CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 100, (int64_t)their_node_id_arr, msg_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 109, (int64_t)their_node_id_arr, msg_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -13196,7 +14265,7 @@ void handle_channel_reestablish_LDKChannelMessageHandler_jcall(const void* this_ msg_var = ChannelReestablish_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 101, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 110, (int64_t)their_node_id_arr, msg_ref); } 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; @@ -13207,7 +14276,7 @@ void handle_channel_update_LDKChannelMessageHandler_jcall(const void* this_arg, msg_var = ChannelUpdate_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 102, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 111, (int64_t)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; @@ -13218,11 +14287,11 @@ void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublic msg_var = ErrorMessage_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 103, (int64_t)their_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 112, (int64_t)their_node_id_arr, msg_ref); } LDKNodeFeatures provided_node_features_LDKChannelMessageHandler_jcall(const void* this_arg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 104); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 113); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13233,7 +14302,7 @@ LDKInitFeatures provided_init_features_LDKChannelMessageHandler_jcall(const void LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 105, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 114, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13242,7 +14311,7 @@ LDKInitFeatures provided_init_features_LDKChannelMessageHandler_jcall(const void } LDKCOption_CVec_ThirtyTwoBytesZZ get_chain_hashes_LDKChannelMessageHandler_jcall(const void* this_arg) { LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 106); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 115); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_CVec_ThirtyTwoBytesZZ ret_conv = *(LDKCOption_CVec_ThirtyTwoBytesZZ*)(ret_ptr); @@ -13270,6 +14339,10 @@ static inline LDKChannelMessageHandler LDKChannelMessageHandler_init (int64_t o, .handle_channel_ready = handle_channel_ready_LDKChannelMessageHandler_jcall, .handle_shutdown = handle_shutdown_LDKChannelMessageHandler_jcall, .handle_closing_signed = handle_closing_signed_LDKChannelMessageHandler_jcall, + .handle_stfu = handle_stfu_LDKChannelMessageHandler_jcall, + .handle_splice = handle_splice_LDKChannelMessageHandler_jcall, + .handle_splice_ack = handle_splice_ack_LDKChannelMessageHandler_jcall, + .handle_splice_locked = handle_splice_locked_LDKChannelMessageHandler_jcall, .handle_tx_add_input = handle_tx_add_input_LDKChannelMessageHandler_jcall, .handle_tx_add_output = handle_tx_add_output_LDKChannelMessageHandler_jcall, .handle_tx_remove_input = handle_tx_remove_input_LDKChannelMessageHandler_jcall, @@ -13441,6 +14514,66 @@ void CS_LDK_ChannelMessageHandler_handle_closing_signed(int64_t this_arg, int8_ (this_arg_conv->handle_closing_signed)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); } +void CS_LDK_ChannelMessageHandler_handle_stfu(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKStfu msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_stfu)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSplice msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice_ack(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSpliceAck msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice_ack)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + +void CS_LDK_ChannelMessageHandler_handle_splice_locked(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg_ptr; + LDKPublicKey their_node_id_ref; + CHECK(their_node_id->arr_len == 33); + memcpy(their_node_id_ref.compressed_form, their_node_id->elems, 33); FREE(their_node_id); + LDKSpliceLocked msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + (this_arg_conv->handle_splice_locked)(this_arg_conv->this_arg, their_node_id_ref, &msg_conv); +} + void CS_LDK_ChannelMessageHandler_handle_tx_add_input(int64_t this_arg, int8_tArray their_node_id, int64_t msg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -13818,7 +14951,7 @@ LDKCOption_OffersMessageZ handle_message_LDKOffersMessageHandler_jcall(const voi LDKOffersMessage *message_copy = MALLOC(sizeof(LDKOffersMessage), "LDKOffersMessage"); *message_copy = message; int64_t message_ref = tag_ptr(message_copy, true); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 107, message_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 116, message_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_OffersMessageZ ret_conv = *(LDKCOption_OffersMessageZ*)(ret_ptr); @@ -13827,7 +14960,7 @@ LDKCOption_OffersMessageZ handle_message_LDKOffersMessageHandler_jcall(const voi } LDKCVec_C3Tuple_OffersMessageDestinationBlindedPathZZ release_pending_messages_LDKOffersMessageHandler_jcall(const void* this_arg) { LDKOffersMessageHandler_JCalls *j_calls = (LDKOffersMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 108); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 117); LDKCVec_C3Tuple_OffersMessageDestinationBlindedPathZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -13918,7 +15051,7 @@ LDKCResult_boolLightningErrorZ handle_node_announcement_LDKRoutingMessageHandler msg_var = NodeAnnouncement_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 109, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 118, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13932,7 +15065,7 @@ LDKCResult_boolLightningErrorZ handle_channel_announcement_LDKRoutingMessageHand msg_var = ChannelAnnouncement_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 110, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 119, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13946,7 +15079,7 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc msg_var = ChannelUpdate_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 111, msg_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 120, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_boolLightningErrorZ ret_conv = *(LDKCResult_boolLightningErrorZ*)(ret_ptr); @@ -13956,7 +15089,7 @@ LDKCResult_boolLightningErrorZ handle_channel_update_LDKRoutingMessageHandler_jc LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ get_next_channel_announcement_LDKRoutingMessageHandler_jcall(const void* this_arg, uint64_t starting_point) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int64_t starting_point_conv = starting_point; - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 112, starting_point_conv); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 121, starting_point_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_conv = *(LDKCOption_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ*)(ret_ptr); @@ -13969,7 +15102,7 @@ LDKNodeAnnouncement get_next_node_announcement_LDKRoutingMessageHandler_jcall(co int64_t starting_point_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(starting_point_var); starting_point_ref = tag_ptr(starting_point_var.inner, starting_point_var.is_owned); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 113, starting_point_ref); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 122, starting_point_ref); LDKNodeAnnouncement ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -13986,7 +15119,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKRoutingMessageHandler_jcall(const void* t CHECK_INNER_FIELD_ACCESS_OR_NULL(init_var); init_ref = tag_ptr(init_var.inner, init_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 114, (int64_t)their_node_id_arr, init_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 123, (int64_t)their_node_id_arr, init_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -14001,7 +15134,7 @@ LDKCResult_NoneLightningErrorZ handle_reply_channel_range_LDKRoutingMessageHandl int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 115, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 124, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14016,7 +15149,7 @@ LDKCResult_NoneLightningErrorZ handle_reply_short_channel_ids_end_LDKRoutingMess int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 116, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 125, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14031,7 +15164,7 @@ LDKCResult_NoneLightningErrorZ handle_query_channel_range_LDKRoutingMessageHandl int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 117, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 126, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14046,7 +15179,7 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH int64_t msg_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 118, (int64_t)their_node_id_arr, msg_ref); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 127, (int64_t)their_node_id_arr, msg_ref); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14055,11 +15188,11 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH } bool processing_queue_high_LDKRoutingMessageHandler_jcall(const void* this_arg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; - return js_invoke_function_b_(j_calls->instance_ptr, 119); + return js_invoke_function_b_(j_calls->instance_ptr, 128); } LDKNodeFeatures provided_node_features_LDKRoutingMessageHandler_jcall(const void* this_arg) { LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 120); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 129); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14070,7 +15203,7 @@ LDKInitFeatures provided_init_features_LDKRoutingMessageHandler_jcall(const void LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 121, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 130, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14309,6 +15442,27 @@ static void LDKOnionMessageHandler_JCalls_free(void* this_arg) { FREE(j_calls); } } +LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ get_and_clear_connections_needed_LDKOnionMessageHandler_jcall(const void* this_arg) { + LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 131); + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret_constr; + ret_constr.datalen = ret->arr_len; + if (ret_constr.datalen > 0) + ret_constr.data = MALLOC(ret_constr.datalen * sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ Elements"); + else + ret_constr.data = NULL; + int64_t* ret_vals = ret->elems; + for (size_t o = 0; o < ret_constr.datalen; o++) { + int64_t ret_conv_40 = ret_vals[o]; + void* ret_conv_40_ptr = untag_ptr(ret_conv_40); + CHECK_ACCESS(ret_conv_40_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ ret_conv_40_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(ret_conv_40_ptr); + FREE(untag_ptr(ret_conv_40)); + ret_constr.data[o] = ret_conv_40_conv; + } + FREE(ret); + return ret_constr; +} void handle_onion_message_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPublicKey peer_node_id, const LDKOnionMessage * msg) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray peer_node_id_arr = init_int8_tArray(33, __LINE__); @@ -14318,13 +15472,13 @@ void handle_onion_message_LDKOnionMessageHandler_jcall(const void* this_arg, LDK msg_var = OnionMessage_clone(&msg_var); CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_var); msg_ref = tag_ptr(msg_var.inner, msg_var.is_owned); - js_invoke_function_void_ll(j_calls->instance_ptr, 122, (int64_t)peer_node_id_arr, msg_ref); + js_invoke_function_void_ll(j_calls->instance_ptr, 132, (int64_t)peer_node_id_arr, msg_ref); } LDKOnionMessage next_onion_message_for_peer_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPublicKey peer_node_id) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray peer_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(peer_node_id_arr->elems, peer_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 123, (int64_t)peer_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 133, (int64_t)peer_node_id_arr); LDKOnionMessage ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14341,7 +15495,7 @@ LDKCResult_NoneNoneZ peer_connected_LDKOnionMessageHandler_jcall(const void* thi CHECK_INNER_FIELD_ACCESS_OR_NULL(init_var); init_ref = tag_ptr(init_var.inner, init_var.is_owned); jboolean inbound_conv = inbound; - uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 124, (int64_t)their_node_id_arr, init_ref, inbound_conv); + uint64_t ret = js_invoke_function_l_llb(j_calls->instance_ptr, 134, (int64_t)their_node_id_arr, init_ref, inbound_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneNoneZ ret_conv = *(LDKCResult_NoneNoneZ*)(ret_ptr); @@ -14352,11 +15506,15 @@ void peer_disconnected_LDKOnionMessageHandler_jcall(const void* this_arg, LDKPub LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - js_invoke_function_void_l(j_calls->instance_ptr, 125, (int64_t)their_node_id_arr); + js_invoke_function_void_l(j_calls->instance_ptr, 135, (int64_t)their_node_id_arr); +} +void timer_tick_occurred_LDKOnionMessageHandler_jcall(const void* this_arg) { + LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; + js_invoke_function_void_(j_calls->instance_ptr, 136); } LDKNodeFeatures provided_node_features_LDKOnionMessageHandler_jcall(const void* this_arg) { LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 126); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 137); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14367,7 +15525,7 @@ LDKInitFeatures provided_init_features_LDKOnionMessageHandler_jcall(const void* LDKOnionMessageHandler_JCalls *j_calls = (LDKOnionMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 127, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 138, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14385,10 +15543,12 @@ static inline LDKOnionMessageHandler LDKOnionMessageHandler_init (int64_t o) { LDKOnionMessageHandler ret = { .this_arg = (void*) calls, + .get_and_clear_connections_needed = get_and_clear_connections_needed_LDKOnionMessageHandler_jcall, .handle_onion_message = handle_onion_message_LDKOnionMessageHandler_jcall, .next_onion_message_for_peer = next_onion_message_for_peer_LDKOnionMessageHandler_jcall, .peer_connected = peer_connected_LDKOnionMessageHandler_jcall, .peer_disconnected = peer_disconnected_LDKOnionMessageHandler_jcall, + .timer_tick_occurred = timer_tick_occurred_LDKOnionMessageHandler_jcall, .provided_node_features = provided_node_features_LDKOnionMessageHandler_jcall, .provided_init_features = provided_init_features_LDKOnionMessageHandler_jcall, .free = LDKOnionMessageHandler_JCalls_free, @@ -14400,6 +15560,24 @@ uint64_t CS_LDK_LDKOnionMessageHandler_new(int32_t o) { *res_ptr = LDKOnionMessageHandler_init(o); return tag_ptr(res_ptr, true); } +int64_tArray CS_LDK_OnionMessageHandler_get_and_clear_connections_needed(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageHandler* this_arg_conv = (LDKOnionMessageHandler*)this_arg_ptr; + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ ret_var = (this_arg_conv->get_and_clear_connections_needed)(this_arg_conv->this_arg); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t o = 0; o < ret_var.datalen; o++) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv_40_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv_40_conv = ret_var.data[o]; + ret_arr_ptr[o] = tag_ptr(ret_conv_40_conv, true); + } + + FREE(ret_var.data); + return ret_arr; +} + void CS_LDK_OnionMessageHandler_handle_onion_message(int64_t this_arg, int8_tArray peer_node_id, int64_t msg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -14456,6 +15634,13 @@ void CS_LDK_OnionMessageHandler_peer_disconnected(int64_t this_arg, int8_tArray (this_arg_conv->peer_disconnected)(this_arg_conv->this_arg, their_node_id_ref); } +void CS_LDK_OnionMessageHandler_timer_tick_occurred(int64_t this_arg) { + void* this_arg_ptr = untag_ptr(this_arg); + if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } + LDKOnionMessageHandler* this_arg_conv = (LDKOnionMessageHandler*)this_arg_ptr; + (this_arg_conv->timer_tick_occurred)(this_arg_conv->this_arg); +} + int64_t CS_LDK_OnionMessageHandler_provided_node_features(int64_t this_arg) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } @@ -14497,7 +15682,7 @@ LDKCResult_COption_TypeZDecodeErrorZ read_LDKCustomMessageReader_jcall(const voi LDKu8slice buffer_var = buffer; int8_tArray buffer_arr = init_int8_tArray(buffer_var.datalen, __LINE__); memcpy(buffer_arr->elems, buffer_var.data, buffer_var.datalen); - uint64_t ret = js_invoke_function_l_sl(j_calls->instance_ptr, 128, message_type_conv, (int64_t)buffer_arr); + uint64_t ret = js_invoke_function_l_sl(j_calls->instance_ptr, 139, message_type_conv, (int64_t)buffer_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_COption_TypeZDecodeErrorZ ret_conv = *(LDKCResult_COption_TypeZDecodeErrorZ*)(ret_ptr); @@ -14555,7 +15740,7 @@ LDKCResult_NoneLightningErrorZ handle_custom_message_LDKCustomMessageHandler_jca *msg_ret = msg; int8_tArray sender_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(sender_node_id_arr->elems, sender_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 129, tag_ptr(msg_ret, true), (int64_t)sender_node_id_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 140, tag_ptr(msg_ret, true), (int64_t)sender_node_id_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_NoneLightningErrorZ ret_conv = *(LDKCResult_NoneLightningErrorZ*)(ret_ptr); @@ -14564,7 +15749,7 @@ LDKCResult_NoneLightningErrorZ handle_custom_message_LDKCustomMessageHandler_jca } LDKCVec_C2Tuple_PublicKeyTypeZZ get_and_clear_pending_msg_LDKCustomMessageHandler_jcall(const void* this_arg) { LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 130); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 141); LDKCVec_C2Tuple_PublicKeyTypeZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -14585,7 +15770,7 @@ LDKCVec_C2Tuple_PublicKeyTypeZZ get_and_clear_pending_msg_LDKCustomMessageHandle } LDKNodeFeatures provided_node_features_LDKCustomMessageHandler_jcall(const void* this_arg) { LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 131); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 142); LDKNodeFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14596,7 +15781,7 @@ LDKInitFeatures provided_init_features_LDKCustomMessageHandler_jcall(const void* LDKCustomMessageHandler_JCalls *j_calls = (LDKCustomMessageHandler_JCalls*) this_arg; int8_tArray their_node_id_arr = init_int8_tArray(33, __LINE__); memcpy(their_node_id_arr->elems, their_node_id.compressed_form, 33); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 132, (int64_t)their_node_id_arr); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 143, (int64_t)their_node_id_arr); LDKInitFeatures ret_conv; ret_conv.inner = untag_ptr(ret); ret_conv.is_owned = ptr_is_owned(ret); @@ -14706,7 +15891,7 @@ LDKCOption_OnionMessageContentsZ handle_custom_message_LDKCustomOnionMessageHand LDKCustomOnionMessageHandler_JCalls *j_calls = (LDKCustomOnionMessageHandler_JCalls*) this_arg; LDKOnionMessageContents* msg_ret = MALLOC(sizeof(LDKOnionMessageContents), "LDKOnionMessageContents"); *msg_ret = msg; - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 133, tag_ptr(msg_ret, true)); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 144, tag_ptr(msg_ret, true)); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCOption_OnionMessageContentsZ ret_conv = *(LDKCOption_OnionMessageContentsZ*)(ret_ptr); @@ -14719,7 +15904,7 @@ LDKCResult_COption_OnionMessageContentsZDecodeErrorZ read_custom_message_LDKCust LDKu8slice buffer_var = buffer; int8_tArray buffer_arr = init_int8_tArray(buffer_var.datalen, __LINE__); memcpy(buffer_arr->elems, buffer_var.data, buffer_var.datalen); - uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 134, message_type_conv, (int64_t)buffer_arr); + uint64_t ret = js_invoke_function_l_ll(j_calls->instance_ptr, 145, message_type_conv, (int64_t)buffer_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_COption_OnionMessageContentsZDecodeErrorZ ret_conv = *(LDKCResult_COption_OnionMessageContentsZDecodeErrorZ*)(ret_ptr); @@ -14728,7 +15913,7 @@ LDKCResult_COption_OnionMessageContentsZDecodeErrorZ read_custom_message_LDKCust } LDKCVec_C3Tuple_OnionMessageContentsDestinationBlindedPathZZ release_pending_custom_messages_LDKCustomOnionMessageHandler_jcall(const void* this_arg) { LDKCustomOnionMessageHandler_JCalls *j_calls = (LDKCustomOnionMessageHandler_JCalls*) this_arg; - int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 135); + int64_tArray ret = (int64_tArray)js_invoke_function_l_(j_calls->instance_ptr, 146); LDKCVec_C3Tuple_OnionMessageContentsDestinationBlindedPathZZ ret_constr; ret_constr.datalen = ret->arr_len; if (ret_constr.datalen > 0) @@ -14834,21 +16019,21 @@ uintptr_t send_data_LDKSocketDescriptor_jcall(void* this_arg, LDKu8slice data, b int8_tArray data_arr = init_int8_tArray(data_var.datalen, __LINE__); memcpy(data_arr->elems, data_var.data, data_var.datalen); jboolean resume_read_conv = resume_read; - return js_invoke_function_l_lb(j_calls->instance_ptr, 136, (int64_t)data_arr, resume_read_conv); + return js_invoke_function_l_lb(j_calls->instance_ptr, 147, (int64_t)data_arr, resume_read_conv); } void disconnect_socket_LDKSocketDescriptor_jcall(void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; - js_invoke_function_void_(j_calls->instance_ptr, 137); + js_invoke_function_void_(j_calls->instance_ptr, 148); } 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_b_l(j_calls->instance_ptr, 138, tag_ptr(other_arg_clone, true)); + return js_invoke_function_b_l(j_calls->instance_ptr, 149, tag_ptr(other_arg_clone, true)); } uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; - return js_invoke_function_l_(j_calls->instance_ptr, 139); + return js_invoke_function_l_(j_calls->instance_ptr, 150); } static void LDKSocketDescriptor_JCalls_cloned(LDKSocketDescriptor* new_obj) { LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) new_obj->this_arg; @@ -15030,7 +16215,7 @@ static void LDKScore_JCalls_free(void* this_arg) { } LDKCVec_u8Z write_LDKScore_jcall(const void* this_arg) { LDKScore_JCalls *j_calls = (LDKScore_JCalls*) this_arg; - int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 140); + int8_tArray ret = (int8_tArray)js_invoke_function_l_(j_calls->instance_ptr, 151); LDKCVec_u8Z ret_ref; ret_ref.datalen = ret->arr_len; ret_ref.data = MALLOC(ret_ref.datalen, "LDKCVec_u8Z Bytes"); @@ -15075,93 +16260,6 @@ int8_tArray CS_LDK_Score_write(int64_t this_arg) { return ret_arr; } -typedef struct LDKMessageRouter_JCalls { - atomic_size_t refcnt; - uint32_t instance_ptr; -} LDKMessageRouter_JCalls; -static void LDKMessageRouter_JCalls_free(void* this_arg) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; - if (atomic_fetch_sub_explicit(&j_calls->refcnt, 1, memory_order_acquire) == 1) { - FREE(j_calls); - } -} -LDKCResult_OnionMessagePathNoneZ find_path_LDKMessageRouter_jcall(const void* this_arg, LDKPublicKey sender, LDKCVec_PublicKeyZ peers, LDKDestination destination) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) this_arg; - int8_tArray sender_arr = init_int8_tArray(33, __LINE__); - memcpy(sender_arr->elems, sender.compressed_form, 33); - LDKCVec_PublicKeyZ peers_var = peers; - ptrArray peers_arr = NULL; - peers_arr = init_ptrArray(peers_var.datalen, __LINE__); - int8_tArray *peers_arr_ptr = (int8_tArray*)(((uint8_t*)peers_arr) + 8); - for (size_t i = 0; i < peers_var.datalen; i++) { - int8_tArray peers_conv_8_arr = init_int8_tArray(33, __LINE__); - memcpy(peers_conv_8_arr->elems, peers_var.data[i].compressed_form, 33); - peers_arr_ptr[i] = peers_conv_8_arr; - } - - FREE(peers_var.data); - LDKDestination *destination_copy = MALLOC(sizeof(LDKDestination), "LDKDestination"); - *destination_copy = destination; - int64_t destination_ref = tag_ptr(destination_copy, true); - uint64_t ret = js_invoke_function_l_lll(j_calls->instance_ptr, 141, (int64_t)sender_arr, (int64_t)peers_arr, destination_ref); - void* ret_ptr = untag_ptr(ret); - CHECK_ACCESS(ret_ptr); - LDKCResult_OnionMessagePathNoneZ ret_conv = *(LDKCResult_OnionMessagePathNoneZ*)(ret_ptr); - FREE(untag_ptr(ret)); - return ret_conv; -} -static void LDKMessageRouter_JCalls_cloned(LDKMessageRouter* new_obj) { - LDKMessageRouter_JCalls *j_calls = (LDKMessageRouter_JCalls*) new_obj->this_arg; - atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); -} -static inline LDKMessageRouter LDKMessageRouter_init (int64_t o) { - LDKMessageRouter_JCalls *calls = MALLOC(sizeof(LDKMessageRouter_JCalls), "LDKMessageRouter_JCalls"); - atomic_init(&calls->refcnt, 1); - calls->instance_ptr = o; - - LDKMessageRouter ret = { - .this_arg = (void*) calls, - .find_path = find_path_LDKMessageRouter_jcall, - .free = LDKMessageRouter_JCalls_free, - }; - return ret; -} -uint64_t CS_LDK_LDKMessageRouter_new(int32_t o) { - LDKMessageRouter *res_ptr = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); - *res_ptr = LDKMessageRouter_init(o); - return tag_ptr(res_ptr, true); -} -int64_t CS_LDK_MessageRouter_find_path(int64_t this_arg, int8_tArray sender, ptrArray peers, int64_t destination) { - void* this_arg_ptr = untag_ptr(this_arg); - if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } - LDKMessageRouter* this_arg_conv = (LDKMessageRouter*)this_arg_ptr; - LDKPublicKey sender_ref; - CHECK(sender->arr_len == 33); - memcpy(sender_ref.compressed_form, sender->elems, 33); FREE(sender); - LDKCVec_PublicKeyZ peers_constr; - peers_constr.datalen = peers->arr_len; - if (peers_constr.datalen > 0) - peers_constr.data = MALLOC(peers_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); - else - peers_constr.data = NULL; - int8_tArray* peers_vals = (void*) peers->elems; - for (size_t i = 0; i < peers_constr.datalen; i++) { - int8_tArray peers_conv_8 = peers_vals[i]; - LDKPublicKey peers_conv_8_ref; - CHECK(peers_conv_8->arr_len == 33); - memcpy(peers_conv_8_ref.compressed_form, peers_conv_8->elems, 33); FREE(peers_conv_8); - peers_constr.data[i] = peers_conv_8_ref; - } - FREE(peers); - void* destination_ptr = untag_ptr(destination); - CHECK_ACCESS(destination_ptr); - LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); - destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = (this_arg_conv->find_path)(this_arg_conv->this_arg, sender_ref, peers_constr, destination_conv); - return tag_ptr(ret_conv, true); -} - typedef struct LDKCoinSelectionSource_JCalls { atomic_size_t refcnt; uint32_t instance_ptr; @@ -15201,20 +16299,20 @@ LDKCResult_CoinSelectionNoneZ select_confirmed_utxos_LDKCoinSelectionSource_jcal FREE(must_pay_to_var.data); int32_t target_feerate_sat_per_1000_weight_conv = target_feerate_sat_per_1000_weight; - uint64_t ret = js_invoke_function_l_llli(j_calls->instance_ptr, 142, (int64_t)claim_id_arr, (int64_t)must_spend_arr, (int64_t)must_pay_to_arr, target_feerate_sat_per_1000_weight_conv); + uint64_t ret = js_invoke_function_l_llli(j_calls->instance_ptr, 152, (int64_t)claim_id_arr, (int64_t)must_spend_arr, (int64_t)must_pay_to_arr, target_feerate_sat_per_1000_weight_conv); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CoinSelectionNoneZ ret_conv = *(LDKCResult_CoinSelectionNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_TransactionNoneZ sign_tx_LDKCoinSelectionSource_jcall(const void* this_arg, LDKTransaction tx) { +LDKCResult_TransactionNoneZ sign_psbt_LDKCoinSelectionSource_jcall(const void* this_arg, LDKCVec_u8Z psbt) { LDKCoinSelectionSource_JCalls *j_calls = (LDKCoinSelectionSource_JCalls*) this_arg; - LDKTransaction tx_var = tx; - int8_tArray tx_arr = init_int8_tArray(tx_var.datalen, __LINE__); - memcpy(tx_arr->elems, tx_var.data, tx_var.datalen); - Transaction_free(tx_var); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 143, (int64_t)tx_arr); + LDKCVec_u8Z psbt_var = psbt; + int8_tArray psbt_arr = init_int8_tArray(psbt_var.datalen, __LINE__); + memcpy(psbt_arr->elems, psbt_var.data, psbt_var.datalen); + CVec_u8Z_free(psbt_var); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 153, (int64_t)psbt_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_TransactionNoneZ ret_conv = *(LDKCResult_TransactionNoneZ*)(ret_ptr); @@ -15233,7 +16331,7 @@ static inline LDKCoinSelectionSource LDKCoinSelectionSource_init (int64_t o) { LDKCoinSelectionSource ret = { .this_arg = (void*) calls, .select_confirmed_utxos = select_confirmed_utxos_LDKCoinSelectionSource_jcall, - .sign_tx = sign_tx_LDKCoinSelectionSource_jcall, + .sign_psbt = sign_psbt_LDKCoinSelectionSource_jcall, .free = LDKCoinSelectionSource_JCalls_free, }; return ret; @@ -15288,17 +16386,16 @@ int64_t CS_LDK_CoinSelectionSource_select_confirmed_utxos(int64_t this_arg, int return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CoinSelectionSource_sign_tx(int64_t this_arg, int8_tArray tx) { +int64_t CS_LDK_CoinSelectionSource_sign_psbt(int64_t this_arg, int8_tArray psbt) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKCoinSelectionSource* this_arg_conv = (LDKCoinSelectionSource*)this_arg_ptr; - LDKTransaction tx_ref; - tx_ref.datalen = tx->arr_len; - tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); - memcpy(tx_ref.data, tx->elems, tx_ref.datalen); FREE(tx); - tx_ref.data_is_owned = true; + LDKCVec_u8Z psbt_ref; + psbt_ref.datalen = psbt->arr_len; + psbt_ref.data = MALLOC(psbt_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(psbt_ref.data, psbt->elems, psbt_ref.datalen); FREE(psbt); LDKCResult_TransactionNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_TransactionNoneZ), "LDKCResult_TransactionNoneZ"); - *ret_conv = (this_arg_conv->sign_tx)(this_arg_conv->this_arg, tx_ref); + *ret_conv = (this_arg_conv->sign_psbt)(this_arg_conv->this_arg, psbt_ref); return tag_ptr(ret_conv, true); } @@ -15314,7 +16411,7 @@ static void LDKWalletSource_JCalls_free(void* this_arg) { } LDKCResult_CVec_UtxoZNoneZ list_confirmed_utxos_LDKWalletSource_jcall(const void* this_arg) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 144); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 154); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_UtxoZNoneZ ret_conv = *(LDKCResult_CVec_UtxoZNoneZ*)(ret_ptr); @@ -15323,20 +16420,20 @@ LDKCResult_CVec_UtxoZNoneZ list_confirmed_utxos_LDKWalletSource_jcall(const void } LDKCResult_CVec_u8ZNoneZ get_change_script_LDKWalletSource_jcall(const void* this_arg) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 145); + uint64_t ret = js_invoke_function_l_(j_calls->instance_ptr, 155); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_CVec_u8ZNoneZ ret_conv = *(LDKCResult_CVec_u8ZNoneZ*)(ret_ptr); FREE(untag_ptr(ret)); return ret_conv; } -LDKCResult_TransactionNoneZ sign_tx_LDKWalletSource_jcall(const void* this_arg, LDKTransaction tx) { +LDKCResult_TransactionNoneZ sign_psbt_LDKWalletSource_jcall(const void* this_arg, LDKCVec_u8Z psbt) { LDKWalletSource_JCalls *j_calls = (LDKWalletSource_JCalls*) this_arg; - LDKTransaction tx_var = tx; - int8_tArray tx_arr = init_int8_tArray(tx_var.datalen, __LINE__); - memcpy(tx_arr->elems, tx_var.data, tx_var.datalen); - Transaction_free(tx_var); - uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 146, (int64_t)tx_arr); + LDKCVec_u8Z psbt_var = psbt; + int8_tArray psbt_arr = init_int8_tArray(psbt_var.datalen, __LINE__); + memcpy(psbt_arr->elems, psbt_var.data, psbt_var.datalen); + CVec_u8Z_free(psbt_var); + uint64_t ret = js_invoke_function_l_l(j_calls->instance_ptr, 156, (int64_t)psbt_arr); void* ret_ptr = untag_ptr(ret); CHECK_ACCESS(ret_ptr); LDKCResult_TransactionNoneZ ret_conv = *(LDKCResult_TransactionNoneZ*)(ret_ptr); @@ -15356,7 +16453,7 @@ static inline LDKWalletSource LDKWalletSource_init (int64_t o) { .this_arg = (void*) calls, .list_confirmed_utxos = list_confirmed_utxos_LDKWalletSource_jcall, .get_change_script = get_change_script_LDKWalletSource_jcall, - .sign_tx = sign_tx_LDKWalletSource_jcall, + .sign_psbt = sign_psbt_LDKWalletSource_jcall, .free = LDKWalletSource_JCalls_free, }; return ret; @@ -15384,17 +16481,16 @@ int64_t CS_LDK_WalletSource_get_change_script(int64_t this_arg) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_WalletSource_sign_tx(int64_t this_arg, int8_tArray tx) { +int64_t CS_LDK_WalletSource_sign_psbt(int64_t this_arg, int8_tArray psbt) { void* this_arg_ptr = untag_ptr(this_arg); if (ptr_is_owned(this_arg)) { CHECK_ACCESS(this_arg_ptr); } LDKWalletSource* this_arg_conv = (LDKWalletSource*)this_arg_ptr; - LDKTransaction tx_ref; - tx_ref.datalen = tx->arr_len; - tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); - memcpy(tx_ref.data, tx->elems, tx_ref.datalen); FREE(tx); - tx_ref.data_is_owned = true; + LDKCVec_u8Z psbt_ref; + psbt_ref.datalen = psbt->arr_len; + psbt_ref.data = MALLOC(psbt_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(psbt_ref.data, psbt->elems, psbt_ref.datalen); FREE(psbt); LDKCResult_TransactionNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_TransactionNoneZ), "LDKCResult_TransactionNoneZ"); - *ret_conv = (this_arg_conv->sign_tx)(this_arg_conv->this_arg, tx_ref); + *ret_conv = (this_arg_conv->sign_psbt)(this_arg_conv->this_arg, psbt_ref); return tag_ptr(ret_conv, true); } @@ -15494,6 +16590,58 @@ int8_tArray CS_LDK_U128_new(int8_tArray le_bytes) { return ret_arr; } +int64_t CS_LDK_WitnessProgram_new(int8_t version, int8_tArray program) { + + LDKCVec_u8Z program_ref; + program_ref.datalen = program->arr_len; + program_ref.data = MALLOC(program_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(program_ref.data, program->elems, program_ref.datalen); FREE(program); + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_new((LDKWitnessVersion){ ._0 = version }, program_ref); + return tag_ptr(ret_ref, true); +} + +int8_t CS_LDK_WitnessProgram_get_version(int64_t prog) { + LDKWitnessProgram* prog_conv = (LDKWitnessProgram*)untag_ptr(prog); + uint8_t ret_val = WitnessProgram_get_version(prog_conv)._0; + return ret_val; +} + +int8_tArray CS_LDK_WitnessProgram_get_program(int64_t prog) { + LDKWitnessProgram* prog_conv = (LDKWitnessProgram*)untag_ptr(prog); + LDKu8slice ret_var = WitnessProgram_get_program(prog_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +static inline uint64_t WitnessProgram_clone_ptr(LDKWitnessProgram *NONNULL_PTR arg) { + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_clone(arg); + return tag_ptr(ret_ref, true); +} +int64_t CS_LDK_WitnessProgram_clone_ptr(int64_t arg) { + LDKWitnessProgram* arg_conv = (LDKWitnessProgram*)untag_ptr(arg); + int64_t ret_conv = WitnessProgram_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_WitnessProgram_clone(int64_t orig) { + LDKWitnessProgram* orig_conv = (LDKWitnessProgram*)untag_ptr(orig); + LDKWitnessProgram* ret_ref = MALLOC(sizeof(LDKWitnessProgram), "LDKWitnessProgram"); + *ret_ref = WitnessProgram_clone(orig_conv); + return tag_ptr(ret_ref, true); +} + +void CS_LDK_WitnessProgram_free(int64_t o) { + if (!ptr_is_owned(o)) return; + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKWitnessProgram o_conv = *(LDKWitnessProgram*)(o_ptr); + FREE(untag_ptr(o)); + WitnessProgram_free(o_conv); +} + int64_t CS_LDK_BigEndianScalar_new(int8_tArray big_endian_bytes) { LDKThirtyTwoBytes big_endian_bytes_ref; CHECK(big_endian_bytes->arr_len == 32); @@ -15550,15 +16698,6 @@ void CS_LDK_Witness_free(int8_tArray _res) { Witness_free(_res_ref); } -void CS_LDK_TxIn_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKTxIn _res_conv = *(LDKTxIn*)(_res_ptr); - FREE(untag_ptr(_res)); - TxIn_free(_res_conv); -} - int64_t CS_LDK_TxIn_new(int8_tArray witness, int8_tArray script_sig, int32_t sequence, int8_tArray previous_txid, int32_t previous_vout) { LDKWitness witness_ref; witness_ref.datalen = witness->arr_len; @@ -15577,6 +16716,51 @@ int64_t CS_LDK_TxIn_new(int8_tArray witness, int8_tArray script_sig, int32_t se return tag_ptr(ret_ref, true); } +int8_tArray CS_LDK_TxIn_get_witness(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + LDKWitness ret_var = TxIn_get_witness(txin_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + Witness_free(ret_var); + return ret_arr; +} + +int8_tArray CS_LDK_TxIn_get_script_sig(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + LDKu8slice ret_var = TxIn_get_script_sig(txin_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +int32_t CS_LDK_TxIn_get_sequence(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int32_t ret_conv = TxIn_get_sequence(txin_conv); + return ret_conv; +} + +int8_tArray CS_LDK_TxIn_get_previous_txid(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, TxIn_get_previous_txid(txin_conv).data, 32); + return ret_arr; +} + +int32_t CS_LDK_TxIn_get_previous_vout(int64_t txin) { + LDKTxIn* txin_conv = (LDKTxIn*)untag_ptr(txin); + int32_t ret_conv = TxIn_get_previous_vout(txin_conv); + return ret_conv; +} + +void CS_LDK_TxIn_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKTxIn _res_conv = *(LDKTxIn*)(_res_ptr); + FREE(untag_ptr(_res)); + TxIn_free(_res_conv); +} + int64_t CS_LDK_TxOut_new(int8_tArray script_pubkey, int64_t value) { LDKCVec_u8Z script_pubkey_ref; script_pubkey_ref.datalen = script_pubkey->arr_len; @@ -15587,6 +16771,20 @@ int64_t CS_LDK_TxOut_new(int8_tArray script_pubkey, int64_t value) { return tag_ptr(ret_ref, true); } +int8_tArray CS_LDK_TxOut_get_script_pubkey(int64_t txout) { + LDKTxOut* txout_conv = (LDKTxOut*)untag_ptr(txout); + LDKu8slice ret_var = TxOut_get_script_pubkey(txout_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + return ret_arr; +} + +int64_t CS_LDK_TxOut_get_value(int64_t txout) { + LDKTxOut* txout_conv = (LDKTxOut*)untag_ptr(txout); + int64_t ret_conv = TxOut_get_value(txout_conv); + return ret_conv; +} + void CS_LDK_TxOut_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); @@ -16564,89 +17762,89 @@ int64_t CS_LDK_COption_u32Z_clone(int64_t orig) { return ret_ref; } -static inline uint64_t C2Tuple_CVec_u8ZusizeZ_clone_ptr(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR arg) { - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_clone(arg); +static inline uint64_t C2Tuple_CVec_u8Zu64Z_clone_ptr(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR arg) { + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone_ptr(int64_t arg) { - LDKC2Tuple_CVec_u8ZusizeZ* arg_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_CVec_u8ZusizeZ_clone_ptr(arg_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_clone_ptr(int64_t arg) { + LDKC2Tuple_CVec_u8Zu64Z* arg_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_CVec_u8Zu64Z_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone(int64_t orig) { - LDKC2Tuple_CVec_u8ZusizeZ* orig_conv = (LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(orig); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_clone(orig_conv); +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_clone(int64_t orig) { + LDKC2Tuple_CVec_u8Zu64Z* orig_conv = (LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(orig); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_CVec_u8ZusizeZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C2Tuple_CVec_u8Zu64Z_new(int8_tArray a, int64_t b) { LDKCVec_u8Z a_ref; a_ref.datalen = a->arr_len; a_ref.data = MALLOC(a_ref.datalen, "LDKCVec_u8Z Bytes"); memcpy(a_ref.data, a->elems, a_ref.datalen); FREE(a); - LDKC2Tuple_CVec_u8ZusizeZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8ZusizeZ), "LDKC2Tuple_CVec_u8ZusizeZ"); - *ret_conv = C2Tuple_CVec_u8ZusizeZ_new(a_ref, b); + LDKC2Tuple_CVec_u8Zu64Z* ret_conv = MALLOC(sizeof(LDKC2Tuple_CVec_u8Zu64Z), "LDKC2Tuple_CVec_u8Zu64Z"); + *ret_conv = C2Tuple_CVec_u8Zu64Z_new(a_ref, b); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_CVec_u8ZusizeZ_free(int64_t _res) { +void CS_LDK_C2Tuple_CVec_u8Zu64Z_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_CVec_u8ZusizeZ _res_conv = *(LDKC2Tuple_CVec_u8ZusizeZ*)(_res_ptr); + LDKC2Tuple_CVec_u8Zu64Z _res_conv = *(LDKC2Tuple_CVec_u8Zu64Z*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_CVec_u8ZusizeZ_free(_res_conv); + C2Tuple_CVec_u8Zu64Z_free(_res_conv); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(int64_t o) { +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); - LDKC2Tuple_CVec_u8ZusizeZ o_conv = *(LDKC2Tuple_CVec_u8ZusizeZ*)(o_ptr); - o_conv = C2Tuple_CVec_u8ZusizeZ_clone((LDKC2Tuple_CVec_u8ZusizeZ*)untag_ptr(o)); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(o_conv); + LDKC2Tuple_CVec_u8Zu64Z o_conv = *(LDKC2Tuple_CVec_u8Zu64Z*)(o_ptr); + o_conv = C2Tuple_CVec_u8Zu64Z_clone((LDKC2Tuple_CVec_u8Zu64Z*)untag_ptr(o)); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err() { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err(); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err() { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err(); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* o_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(int64_t o) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* o_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(int64_t _res) { +void CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ _res_conv = *(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)(_res_ptr); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ _res_conv = *(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(_res_conv); + CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(_res_conv); } -static inline uint64_t CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR arg) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(arg); +static inline uint64_t CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR arg) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* arg_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* arg_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(int64_t orig) { - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* orig_conv = (LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ*)untag_ptr(orig); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); - *ret_conv = CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(orig_conv); +int64_t CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(int64_t orig) { + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* orig_conv = (LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ*)untag_ptr(orig); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); + *ret_conv = CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -16803,173 +18001,6 @@ int64_t CS_LDK_CResult_NoneNoneZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -void CS_LDK_CVec_ECDSASignatureZ_free(ptrArray _res) { - LDKCVec_ECDSASignatureZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); - else - _res_constr.data = NULL; - int8_tArray* _res_vals = (void*) _res->elems; - for (size_t i = 0; i < _res_constr.datalen; i++) { - int8_tArray _res_conv_8 = _res_vals[i]; - LDKECDSASignature _res_conv_8_ref; - CHECK(_res_conv_8->arr_len == 64); - memcpy(_res_conv_8_ref.compact_form, _res_conv_8->elems, 64); FREE(_res_conv_8); - _res_constr.data[i] = _res_conv_8_ref; - } - FREE(_res); - CVec_ECDSASignatureZ_free(_res_constr); -} - -static inline uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(int64_t arg) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* arg_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(int64_t orig) { - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* orig_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(orig); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(int8_tArray a, ptrArray b) { - LDKECDSASignature a_ref; - CHECK(a->arr_len == 64); - memcpy(a_ref.compact_form, a->elems, 64); FREE(a); - LDKCVec_ECDSASignatureZ b_constr; - b_constr.datalen = b->arr_len; - if (b_constr.datalen > 0) - b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); - else - b_constr.data = NULL; - int8_tArray* b_vals = (void*) b->elems; - for (size_t i = 0; i < b_constr.datalen; i++) { - int8_tArray b_conv_8 = b_vals[i]; - LDKECDSASignature b_conv_8_ref; - CHECK(b_conv_8->arr_len == 64); - memcpy(b_conv_8_ref.compact_form, b_conv_8->elems, 64); FREE(b_conv_8); - b_constr.data[i] = b_conv_8_ref; - } - FREE(b); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); - *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(a_ref, b_constr); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(_res_ptr); - FREE(untag_ptr(_res)); - C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(_res_conv); -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(int64_t o) { - void* o_ptr = untag_ptr(o); - CHECK_ACCESS(o_ptr); - LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(o_ptr); - o_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone((LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(o)); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(o_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err() { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* o_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* arg_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(int64_t orig) { - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* orig_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(orig); - LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); - *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_ok(int8_tArray o) { - LDKECDSASignature o_ref; - CHECK(o->arr_len == 64); - memcpy(o_ref.compact_form, o->elems, 64); FREE(o); - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_ok(o_ref); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_err() { - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_ECDSASignatureNoneZ_is_ok(int64_t o) { - LDKCResult_ECDSASignatureNoneZ* o_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_ECDSASignatureNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_ECDSASignatureNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_ECDSASignatureNoneZ _res_conv = *(LDKCResult_ECDSASignatureNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_ECDSASignatureNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg) { - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr(int64_t arg) { - LDKCResult_ECDSASignatureNoneZ* arg_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ECDSASignatureNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone(int64_t orig) { - LDKCResult_ECDSASignatureNoneZ* orig_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(orig); - LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); - *ret_conv = CResult_ECDSASignatureNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - int64_t CS_LDK_CResult_PublicKeyNoneZ_ok(int8_tArray o) { LDKPublicKey o_ref; CHECK(o->arr_len == 33); @@ -17178,6 +18209,54 @@ int64_t CS_LDK_CResult_SchnorrSignatureNoneZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_ok(int8_tArray o) { + LDKECDSASignature o_ref; + CHECK(o->arr_len == 64); + memcpy(o_ref.compact_form, o->elems, 64); FREE(o); + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_ok(o_ref); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_err() { + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_ECDSASignatureNoneZ_is_ok(int64_t o) { + LDKCResult_ECDSASignatureNoneZ* o_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_ECDSASignatureNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_ECDSASignatureNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_ECDSASignatureNoneZ _res_conv = *(LDKCResult_ECDSASignatureNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_ECDSASignatureNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg) { + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr(int64_t arg) { + LDKCResult_ECDSASignatureNoneZ* arg_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_ECDSASignatureNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_ECDSASignatureNoneZ_clone(int64_t orig) { + LDKCResult_ECDSASignatureNoneZ* orig_conv = (LDKCResult_ECDSASignatureNoneZ*)untag_ptr(orig); + LDKCResult_ECDSASignatureNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_ECDSASignatureNoneZ), "LDKCResult_ECDSASignatureNoneZ"); + *ret_conv = CResult_ECDSASignatureNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_WriteableEcdsaChannelSignerDecodeErrorZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -17419,84 +18498,172 @@ int64_t CS_LDK_COption_boolZ_clone(int64_t orig) { return ret_ref; } -void CS_LDK_CVec_CVec_u8ZZ_free(ptrArray _res) { - LDKCVec_CVec_u8ZZ _res_constr; +int64_t CS_LDK_CResult_WitnessNoneZ_ok(int8_tArray o) { + LDKWitness o_ref; + o_ref.datalen = o->arr_len; + o_ref.data = MALLOC(o_ref.datalen, "LDKWitness Bytes"); + memcpy(o_ref.data, o->elems, o_ref.datalen); FREE(o); + o_ref.data_is_owned = true; + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_ok(o_ref); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_WitnessNoneZ_err() { + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_WitnessNoneZ_is_ok(int64_t o) { + LDKCResult_WitnessNoneZ* o_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_WitnessNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_WitnessNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_WitnessNoneZ _res_conv = *(LDKCResult_WitnessNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_WitnessNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_WitnessNoneZ_clone_ptr(LDKCResult_WitnessNoneZ *NONNULL_PTR arg) { + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_WitnessNoneZ_clone_ptr(int64_t arg) { + LDKCResult_WitnessNoneZ* arg_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_WitnessNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_WitnessNoneZ_clone(int64_t orig) { + LDKCResult_WitnessNoneZ* orig_conv = (LDKCResult_WitnessNoneZ*)untag_ptr(orig); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); + *ret_conv = CResult_WitnessNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_CVec_ECDSASignatureZ_free(ptrArray _res) { + LDKCVec_ECDSASignatureZ _res_constr; _res_constr.datalen = _res->arr_len; if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKCVec_u8Z), "LDKCVec_CVec_u8ZZ Elements"); + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); else _res_constr.data = NULL; int8_tArray* _res_vals = (void*) _res->elems; for (size_t i = 0; i < _res_constr.datalen; i++) { int8_tArray _res_conv_8 = _res_vals[i]; - LDKCVec_u8Z _res_conv_8_ref; - _res_conv_8_ref.datalen = _res_conv_8->arr_len; - _res_conv_8_ref.data = MALLOC(_res_conv_8_ref.datalen, "LDKCVec_u8Z Bytes"); - memcpy(_res_conv_8_ref.data, _res_conv_8->elems, _res_conv_8_ref.datalen); FREE(_res_conv_8); + LDKECDSASignature _res_conv_8_ref; + CHECK(_res_conv_8->arr_len == 64); + memcpy(_res_conv_8_ref.compact_form, _res_conv_8->elems, 64); FREE(_res_conv_8); _res_constr.data[i] = _res_conv_8_ref; } FREE(_res); - CVec_CVec_u8ZZ_free(_res_constr); + CVec_ECDSASignatureZ_free(_res_constr); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_ok(ptrArray o) { - LDKCVec_CVec_u8ZZ o_constr; - o_constr.datalen = o->arr_len; - if (o_constr.datalen > 0) - o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKCVec_u8Z), "LDKCVec_CVec_u8ZZ Elements"); +static inline uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(int64_t arg) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* arg_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(int64_t orig) { + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* orig_conv = (LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(orig); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(int8_tArray a, ptrArray b) { + LDKECDSASignature a_ref; + CHECK(a->arr_len == 64); + memcpy(a_ref.compact_form, a->elems, 64); FREE(a); + LDKCVec_ECDSASignatureZ b_constr; + b_constr.datalen = b->arr_len; + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKECDSASignature), "LDKCVec_ECDSASignatureZ Elements"); else - o_constr.data = NULL; - int8_tArray* o_vals = (void*) o->elems; - for (size_t i = 0; i < o_constr.datalen; i++) { - int8_tArray o_conv_8 = o_vals[i]; - LDKCVec_u8Z o_conv_8_ref; - o_conv_8_ref.datalen = o_conv_8->arr_len; - o_conv_8_ref.data = MALLOC(o_conv_8_ref.datalen, "LDKCVec_u8Z Bytes"); - memcpy(o_conv_8_ref.data, o_conv_8->elems, o_conv_8_ref.datalen); FREE(o_conv_8); - o_constr.data[i] = o_conv_8_ref; + b_constr.data = NULL; + int8_tArray* b_vals = (void*) b->elems; + for (size_t i = 0; i < b_constr.datalen; i++) { + int8_tArray b_conv_8 = b_vals[i]; + LDKECDSASignature b_conv_8_ref; + CHECK(b_conv_8->arr_len == 64); + memcpy(b_conv_8_ref.compact_form, b_conv_8->elems, 64); FREE(b_conv_8); + b_constr.data[i] = b_conv_8_ref; } - FREE(o); - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_ok(o_constr); + FREE(b); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ), "LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ"); + *ret_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(a_ref, b_constr); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_err() { - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_err(); +void CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(_res_conv); +} + +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o_conv = *(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)(o_ptr); + o_conv = C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone((LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ*)untag_ptr(o)); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_is_ok(int64_t o) { - LDKCResult_CVec_CVec_u8ZZNoneZ* o_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_CVec_CVec_u8ZZNoneZ_is_ok(o_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err() { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(int64_t o) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* o_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_free(int64_t _res) { +void CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_CVec_CVec_u8ZZNoneZ _res_conv = *(LDKCResult_CVec_CVec_u8ZZNoneZ*)(_res_ptr); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res_conv = *(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_CVec_CVec_u8ZZNoneZ_free(_res_conv); + CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(_res_conv); } -static inline uint64_t CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR arg) { - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone(arg); +static inline uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(int64_t arg) { - LDKCResult_CVec_CVec_u8ZZNoneZ* arg_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* arg_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone(int64_t orig) { - LDKCResult_CVec_CVec_u8ZZNoneZ* orig_conv = (LDKCResult_CVec_CVec_u8ZZNoneZ*)untag_ptr(orig); - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); - *ret_conv = CResult_CVec_CVec_u8ZZNoneZ_clone(orig_conv); +int64_t CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(int64_t orig) { + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* orig_conv = (LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ*)untag_ptr(orig); + LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ), "LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ"); + *ret_conv = CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -17755,6 +18922,261 @@ int64_t CS_LDK_CResult_RouteLightningErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +static inline uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(int64_t arg) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* arg_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone(int64_t orig) { + LDKC2Tuple_BlindedPayInfoBlindedPathZ* orig_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(orig); + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new(int64_t a, int64_t b) { + LDKBlindedPayInfo a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = BlindedPayInfo_clone(&a_conv); + LDKBlindedPath b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv = BlindedPath_clone(&b_conv); + LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); + *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_new(a_conv, b_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_BlindedPayInfoBlindedPathZ_free(_res_conv); +} + +void CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(int64_tArray _res) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t l = 0; l < _res_constr.datalen; l++) { + int64_t _res_conv_37 = _res_vals[l]; + void* _res_conv_37_ptr = untag_ptr(_res_conv_37); + CHECK_ACCESS(_res_conv_37_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_conv_37_ptr); + FREE(untag_ptr(_res_conv_37)); + _res_constr.data[l] = _res_conv_37_conv; + } + FREE(_res); + CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(_res_constr); +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(int64_tArray o) { + LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ o_constr; + o_constr.datalen = o->arr_len; + if (o_constr.datalen > 0) + o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); + else + o_constr.data = NULL; + int64_t* o_vals = o->elems; + for (size_t l = 0; l < o_constr.datalen; l++) { + int64_t o_conv_37 = o_vals[l]; + void* o_conv_37_ptr = untag_ptr(o_conv_37); + CHECK_ACCESS(o_conv_37_ptr); + LDKC2Tuple_BlindedPayInfoBlindedPathZ o_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(o_conv_37_ptr); + o_conv_37_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone((LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(o_conv_37)); + o_constr.data[l] = o_conv_37_conv; + } + FREE(o); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(o_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err() { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(int64_t o) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* o_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ _res_conv = *(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR arg) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* arg_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(int64_t orig) { + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* orig_conv = (LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ*)untag_ptr(orig); + LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ), "LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ"); + *ret_conv = CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_CVec_PublicKeyZ_free(ptrArray _res) { + LDKCVec_PublicKeyZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); + else + _res_constr.data = NULL; + int8_tArray* _res_vals = (void*) _res->elems; + for (size_t i = 0; i < _res_constr.datalen; i++) { + int8_tArray _res_conv_8 = _res_vals[i]; + LDKPublicKey _res_conv_8_ref; + CHECK(_res_conv_8->arr_len == 33); + memcpy(_res_conv_8_ref.compressed_form, _res_conv_8->elems, 33); FREE(_res_conv_8); + _res_constr.data[i] = _res_conv_8_ref; + } + FREE(_res); + CVec_PublicKeyZ_free(_res_constr); +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_ok(int64_t o) { + LDKOnionMessagePath o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = OnionMessagePath_clone(&o_conv); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_err() { + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_OnionMessagePathNoneZ_is_ok(int64_t o) { + LDKCResult_OnionMessagePathNoneZ* o_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_OnionMessagePathNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_OnionMessagePathNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_OnionMessagePathNoneZ _res_conv = *(LDKCResult_OnionMessagePathNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_OnionMessagePathNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg) { + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr(int64_t arg) { + LDKCResult_OnionMessagePathNoneZ* arg_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_OnionMessagePathNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone(int64_t orig) { + LDKCResult_OnionMessagePathNoneZ* orig_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(orig); + LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); + *ret_conv = CResult_OnionMessagePathNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_ok(int64_tArray o) { + LDKCVec_BlindedPathZ o_constr; + o_constr.datalen = o->arr_len; + if (o_constr.datalen > 0) + o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKBlindedPath), "LDKCVec_BlindedPathZ Elements"); + else + o_constr.data = NULL; + int64_t* o_vals = o->elems; + for (size_t n = 0; n < o_constr.datalen; n++) { + int64_t o_conv_13 = o_vals[n]; + LDKBlindedPath o_conv_13_conv; + o_conv_13_conv.inner = untag_ptr(o_conv_13); + o_conv_13_conv.is_owned = ptr_is_owned(o_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv_13_conv); + o_conv_13_conv = BlindedPath_clone(&o_conv_13_conv); + o_constr.data[n] = o_conv_13_conv; + } + FREE(o); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_ok(o_constr); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_err() { + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_err(); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_CVec_BlindedPathZNoneZ_is_ok(int64_t o) { + LDKCResult_CVec_BlindedPathZNoneZ* o_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_CVec_BlindedPathZNoneZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_CVec_BlindedPathZNoneZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_CVec_BlindedPathZNoneZ _res_conv = *(LDKCResult_CVec_BlindedPathZNoneZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_CVec_BlindedPathZNoneZ_free(_res_conv); +} + +static inline uint64_t CResult_CVec_BlindedPathZNoneZ_clone_ptr(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR arg) { + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_CVec_BlindedPathZNoneZ* arg_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_CVec_BlindedPathZNoneZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone(int64_t orig) { + LDKCResult_CVec_BlindedPathZNoneZ* orig_conv = (LDKCResult_CVec_BlindedPathZNoneZ*)untag_ptr(orig); + LDKCResult_CVec_BlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_BlindedPathZNoneZ), "LDKCResult_CVec_BlindedPathZNoneZ"); + *ret_conv = CResult_CVec_BlindedPathZNoneZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_InFlightHtlcsDecodeErrorZ_ok(int64_t o) { LDKInFlightHtlcs o_conv; o_conv.inner = untag_ptr(o); @@ -18155,69 +19577,6 @@ int64_t CS_LDK_CResult_PaymentParametersDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -static inline uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(int64_t arg) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* arg_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone(int64_t orig) { - LDKC2Tuple_BlindedPayInfoBlindedPathZ* orig_conv = (LDKC2Tuple_BlindedPayInfoBlindedPathZ*)untag_ptr(orig); - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new(int64_t a, int64_t b) { - LDKBlindedPayInfo a_conv; - a_conv.inner = untag_ptr(a); - a_conv.is_owned = ptr_is_owned(a); - CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); - a_conv = BlindedPayInfo_clone(&a_conv); - LDKBlindedPath b_conv; - b_conv.inner = untag_ptr(b); - b_conv.is_owned = ptr_is_owned(b); - CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); - b_conv = BlindedPath_clone(&b_conv); - LDKC2Tuple_BlindedPayInfoBlindedPathZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKC2Tuple_BlindedPayInfoBlindedPathZ"); - *ret_conv = C2Tuple_BlindedPayInfoBlindedPathZ_new(a_conv, b_conv); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_ptr); - FREE(untag_ptr(_res)); - C2Tuple_BlindedPayInfoBlindedPathZ_free(_res_conv); -} - -void CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(int64_tArray _res) { - LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_BlindedPayInfoBlindedPathZ), "LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ Elements"); - else - _res_constr.data = NULL; - int64_t* _res_vals = _res->elems; - for (size_t l = 0; l < _res_constr.datalen; l++) { - int64_t _res_conv_37 = _res_vals[l]; - void* _res_conv_37_ptr = untag_ptr(_res_conv_37); - CHECK_ACCESS(_res_conv_37_ptr); - LDKC2Tuple_BlindedPayInfoBlindedPathZ _res_conv_37_conv = *(LDKC2Tuple_BlindedPayInfoBlindedPathZ*)(_res_conv_37_ptr); - FREE(untag_ptr(_res_conv_37)); - _res_constr.data[l] = _res_conv_37_conv; - } - FREE(_res); - CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(_res_constr); -} - void CS_LDK_CVec_RouteHintZ_free(int64_tArray _res) { LDKCVec_RouteHintZ _res_constr; _res_constr.datalen = _res->arr_len; @@ -18366,25 +19725,6 @@ int64_t CS_LDK_CResult_RouteHintHopDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -void CS_LDK_CVec_PublicKeyZ_free(ptrArray _res) { - LDKCVec_PublicKeyZ _res_constr; - _res_constr.datalen = _res->arr_len; - if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKPublicKey), "LDKCVec_PublicKeyZ Elements"); - else - _res_constr.data = NULL; - int8_tArray* _res_vals = (void*) _res->elems; - for (size_t i = 0; i < _res_constr.datalen; i++) { - int8_tArray _res_conv_8 = _res_vals[i]; - LDKPublicKey _res_conv_8_ref; - CHECK(_res_conv_8->arr_len == 33); - memcpy(_res_conv_8_ref.compressed_form, _res_conv_8->elems, 33); FREE(_res_conv_8); - _res_constr.data[i] = _res_conv_8_ref; - } - FREE(_res); - CVec_PublicKeyZ_free(_res_constr); -} - int64_t CS_LDK_CResult_FixedPenaltyScorerDecodeErrorZ_ok(int64_t o) { LDKFixedPenaltyScorer o_conv; o_conv.inner = untag_ptr(o); @@ -18746,64 +20086,64 @@ void CS_LDK_CVec_C2Tuple_usizeTransactionZZ_free(int64_tArray _res) { CVec_C2Tuple_usizeTransactionZZ_free(_res_constr); } -static inline uint64_t C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR arg) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(arg); +static inline uint64_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR arg) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(int64_t arg) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* arg_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(int64_t arg) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* arg_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(int64_t orig) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* orig_conv = (LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)untag_ptr(orig); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(int64_t orig) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* orig_conv = (LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)untag_ptr(orig); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(int8_tArray a, int32_t b, int64_t c) { LDKThirtyTwoBytes a_ref; CHECK(a->arr_len == 32); memcpy(a_ref.data, a->elems, 32); FREE(a); - void* b_ptr = untag_ptr(b); - CHECK_ACCESS(b_ptr); - LDKCOption_ThirtyTwoBytesZ b_conv = *(LDKCOption_ThirtyTwoBytesZ*)(b_ptr); - b_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(b)); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv = C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(a_ref, b_conv); + void* c_ptr = untag_ptr(c); + CHECK_ACCESS(c_ptr); + LDKCOption_ThirtyTwoBytesZ c_conv = *(LDKCOption_ThirtyTwoBytesZ*)(c_ptr); + c_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(c)); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(a_ref, b, c_conv); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(int64_t _res) { +void CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ _res_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(_res_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ _res_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(_res_conv); + C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(_res_conv); } -void CS_LDK_CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(int64_tArray _res) { - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ _res_constr; +void CS_LDK_CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(int64_tArray _res) { + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ _res_constr; _res_constr.datalen = _res->arr_len; if (_res_constr.datalen > 0) - _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ Elements"); + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ Elements"); else _res_constr.data = NULL; int64_t* _res_vals = _res->elems; - for (size_t x = 0; x < _res_constr.datalen; x++) { - int64_t _res_conv_49 = _res_vals[x]; - void* _res_conv_49_ptr = untag_ptr(_res_conv_49); - CHECK_ACCESS(_res_conv_49_ptr); - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ _res_conv_49_conv = *(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ*)(_res_conv_49_ptr); - FREE(untag_ptr(_res_conv_49)); - _res_constr.data[x] = _res_conv_49_conv; + for (size_t c = 0; c < _res_constr.datalen; c++) { + int64_t _res_conv_54 = _res_vals[c]; + void* _res_conv_54_ptr = untag_ptr(_res_conv_54); + CHECK_ACCESS(_res_conv_54_ptr); + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ _res_conv_54_conv = *(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ*)(_res_conv_54_ptr); + FREE(untag_ptr(_res_conv_54)); + _res_constr.data[c] = _res_conv_54_conv; } FREE(_res); - CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(_res_constr); + CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(_res_constr); } int64_t CS_LDK_CResult_ChannelMonitorUpdateStatusNoneZ_ok(int32_t o) { @@ -20270,6 +21610,44 @@ int64_t CS_LDK_COption_CVec_SocketAddressZZ_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_ok(int64_t o) { + LDKPendingHTLCInfo o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = PendingHTLCInfo_clone(&o_conv); + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_err(int64_t e) { + LDKInboundHTLCErr e_conv; + e_conv.inner = untag_ptr(e); + e_conv.is_owned = ptr_is_owned(e); + CHECK_INNER_FIELD_ACCESS_OR_NULL(e_conv); + // WARNING: we need a move here but no clone is available for LDKInboundHTLCErr + + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* o_conv = (LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCInfoInboundHTLCErrZ _res_conv = *(LDKCResult_PendingHTLCInfoInboundHTLCErrZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCInfoInboundHTLCErrZ_free(_res_conv); +} + void CS_LDK_CVec_HTLCOutputInCommitmentZ_free(int64_tArray _res) { LDKCVec_HTLCOutputInCommitmentZ _res_constr; _res_constr.datalen = _res->arr_len; @@ -21605,6 +22983,217 @@ int64_t CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_ok(int64_t o) { + LDKBlindedForward o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = BlindedForward_clone(&o_conv); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_BlindedForwardDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_BlindedForwardDecodeErrorZ* o_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_BlindedForwardDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_BlindedForwardDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_BlindedForwardDecodeErrorZ _res_conv = *(LDKCResult_BlindedForwardDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_BlindedForwardDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_BlindedForwardDecodeErrorZ_clone_ptr(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_BlindedForwardDecodeErrorZ* arg_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_BlindedForwardDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone(int64_t orig) { + LDKCResult_BlindedForwardDecodeErrorZ* orig_conv = (LDKCResult_BlindedForwardDecodeErrorZ*)untag_ptr(orig); + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = CResult_BlindedForwardDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKPendingHTLCRouting o_conv = *(LDKPendingHTLCRouting*)(o_ptr); + o_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(o)); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* o_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCRoutingDecodeErrorZ _res_conv = *(LDKCResult_PendingHTLCRoutingDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCRoutingDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* arg_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone(int64_t orig) { + LDKCResult_PendingHTLCRoutingDecodeErrorZ* orig_conv = (LDKCResult_PendingHTLCRoutingDecodeErrorZ*)untag_ptr(orig); + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCRoutingDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_ok(int64_t o) { + LDKPendingHTLCInfo o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = PendingHTLCInfo_clone(&o_conv); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* o_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_PendingHTLCInfoDecodeErrorZ _res_conv = *(LDKCResult_PendingHTLCInfoDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_PendingHTLCInfoDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* arg_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone(int64_t orig) { + LDKCResult_PendingHTLCInfoDecodeErrorZ* orig_conv = (LDKCResult_PendingHTLCInfoDecodeErrorZ*)untag_ptr(orig); + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = CResult_PendingHTLCInfoDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_ok(int32_t o) { + LDKBlindedFailure o_conv = LDKBlindedFailure_from_cs(o); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_BlindedFailureDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_BlindedFailureDecodeErrorZ* o_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_BlindedFailureDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_BlindedFailureDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_BlindedFailureDecodeErrorZ _res_conv = *(LDKCResult_BlindedFailureDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_BlindedFailureDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_BlindedFailureDecodeErrorZ_clone_ptr(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_BlindedFailureDecodeErrorZ* arg_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_BlindedFailureDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone(int64_t orig) { + LDKCResult_BlindedFailureDecodeErrorZ* orig_conv = (LDKCResult_BlindedFailureDecodeErrorZ*)untag_ptr(orig); + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = CResult_BlindedFailureDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_ChannelShutdownStateDecodeErrorZ_ok(int32_t o) { LDKChannelShutdownState o_conv = LDKChannelShutdownState_from_cs(o); LDKCResult_ChannelShutdownStateDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ChannelShutdownStateDecodeErrorZ), "LDKCResult_ChannelShutdownStateDecodeErrorZ"); @@ -22714,6 +24303,78 @@ void CS_LDK_CVec_C2Tuple_PublicKeyTypeZZ_free(int64_tArray _res) { CVec_C2Tuple_PublicKeyTypeZZ_free(_res_constr); } +static inline uint64_t C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR arg) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(int64_t arg) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* arg_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(arg); + int64_t ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(int64_t orig) { + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* orig_conv = (LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)untag_ptr(orig); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_new(int8_tArray a, int64_tArray b) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKCVec_SocketAddressZ b_constr; + b_constr.datalen = b->arr_len; + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKSocketAddress), "LDKCVec_SocketAddressZ Elements"); + else + b_constr.data = NULL; + int64_t* b_vals = b->elems; + for (size_t p = 0; p < b_constr.datalen; p++) { + int64_t b_conv_15 = b_vals[p]; + void* b_conv_15_ptr = untag_ptr(b_conv_15); + CHECK_ACCESS(b_conv_15_ptr); + LDKSocketAddress b_conv_15_conv = *(LDKSocketAddress*)(b_conv_15_ptr); + b_conv_15_conv = SocketAddress_clone((LDKSocketAddress*)untag_ptr(b_conv_15)); + b_constr.data[p] = b_conv_15_conv; + } + FREE(b); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKC2Tuple_PublicKeyCVec_SocketAddressZZ"); + *ret_conv = C2Tuple_PublicKeyCVec_SocketAddressZZ_new(a_ref, b_constr); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ _res_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(_res_ptr); + FREE(untag_ptr(_res)); + C2Tuple_PublicKeyCVec_SocketAddressZZ_free(_res_conv); +} + +void CS_LDK_CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(int64_tArray _res) { + LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ), "LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t o = 0; o < _res_constr.datalen; o++) { + int64_t _res_conv_40 = _res_vals[o]; + void* _res_conv_40_ptr = untag_ptr(_res_conv_40); + CHECK_ACCESS(_res_conv_40_ptr); + LDKC2Tuple_PublicKeyCVec_SocketAddressZZ _res_conv_40_conv = *(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ*)(_res_conv_40_ptr); + FREE(untag_ptr(_res_conv_40)); + _res_constr.data[o] = _res_conv_40_conv; + } + FREE(_res); + CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(_res_constr); +} + int64_t CS_LDK_COption_OnionMessageContentsZ_some(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -24005,6 +25666,222 @@ int64_t CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_StfuDecodeErrorZ_ok(int64_t o) { + LDKStfu o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = Stfu_clone(&o_conv); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_StfuDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_StfuDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_StfuDecodeErrorZ* o_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_StfuDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_StfuDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_StfuDecodeErrorZ _res_conv = *(LDKCResult_StfuDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_StfuDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_StfuDecodeErrorZ_clone_ptr(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_StfuDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_StfuDecodeErrorZ* arg_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_StfuDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_StfuDecodeErrorZ_clone(int64_t orig) { + LDKCResult_StfuDecodeErrorZ* orig_conv = (LDKCResult_StfuDecodeErrorZ*)untag_ptr(orig); + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = CResult_StfuDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_ok(int64_t o) { + LDKSplice o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = Splice_clone(&o_conv); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceDecodeErrorZ* o_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceDecodeErrorZ _res_conv = *(LDKCResult_SpliceDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceDecodeErrorZ_clone_ptr(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceDecodeErrorZ* arg_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceDecodeErrorZ* orig_conv = (LDKCResult_SpliceDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = CResult_SpliceDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_ok(int64_t o) { + LDKSpliceAck o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = SpliceAck_clone(&o_conv); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceAckDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceAckDecodeErrorZ* o_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceAckDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceAckDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceAckDecodeErrorZ _res_conv = *(LDKCResult_SpliceAckDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceAckDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceAckDecodeErrorZ_clone_ptr(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceAckDecodeErrorZ* arg_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceAckDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceAckDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceAckDecodeErrorZ* orig_conv = (LDKCResult_SpliceAckDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = CResult_SpliceAckDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_ok(int64_t o) { + LDKSpliceLocked o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = SpliceLocked_clone(&o_conv); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_SpliceLockedDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_SpliceLockedDecodeErrorZ* o_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SpliceLockedDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_SpliceLockedDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_SpliceLockedDecodeErrorZ _res_conv = *(LDKCResult_SpliceLockedDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_SpliceLockedDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_SpliceLockedDecodeErrorZ_clone_ptr(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_SpliceLockedDecodeErrorZ* arg_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_SpliceLockedDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone(int64_t orig) { + LDKCResult_SpliceLockedDecodeErrorZ* orig_conv = (LDKCResult_SpliceLockedDecodeErrorZ*)untag_ptr(orig); + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = CResult_SpliceLockedDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_TxAddInputDecodeErrorZ_ok(int64_t o) { LDKTxAddInput o_conv; o_conv.inner = untag_ptr(o); @@ -25409,6 +27286,60 @@ int64_t CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_ok(int64_t o) { + LDKOnionPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = OnionPacket_clone(&o_conv); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_OnionPacketDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_OnionPacketDecodeErrorZ* o_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_OnionPacketDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_OnionPacketDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_OnionPacketDecodeErrorZ _res_conv = *(LDKCResult_OnionPacketDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_OnionPacketDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_OnionPacketDecodeErrorZ_clone_ptr(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_OnionPacketDecodeErrorZ* arg_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_OnionPacketDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_OnionPacketDecodeErrorZ_clone(int64_t orig) { + LDKCResult_OnionPacketDecodeErrorZ* orig_conv = (LDKCResult_OnionPacketDecodeErrorZ*)untag_ptr(orig); + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = CResult_OnionPacketDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_UpdateAddHTLCDecodeErrorZ_ok(int64_t o) { LDKUpdateAddHTLC o_conv; o_conv.inner = untag_ptr(o); @@ -25517,6 +27448,60 @@ int64_t CS_LDK_CResult_OnionMessageDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_ok(int64_t o) { + LDKFinalOnionHopData o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = FinalOnionHopData_clone(&o_conv); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* o_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_FinalOnionHopDataDecodeErrorZ _res_conv = *(LDKCResult_FinalOnionHopDataDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_FinalOnionHopDataDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* arg_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone(int64_t orig) { + LDKCResult_FinalOnionHopDataDecodeErrorZ* orig_conv = (LDKCResult_FinalOnionHopDataDecodeErrorZ*)untag_ptr(orig); + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = CResult_FinalOnionHopDataDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_CResult_PingDecodeErrorZ_ok(int64_t o) { LDKPing o_conv; o_conv.inner = untag_ptr(o); @@ -28774,58 +30759,40 @@ int64_t CS_LDK_CResult_UntrustedStringDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_ok(int64_t o) { - LDKReceiveTlvs o_conv; - o_conv.inner = untag_ptr(o); - o_conv.is_owned = ptr_is_owned(o); - CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); - o_conv = ReceiveTlvs_clone(&o_conv); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_ok(o_conv); +static inline uint64_t C2Tuple__u832u16Z_clone_ptr(LDKC2Tuple__u832u16Z *NONNULL_PTR arg) { + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_clone(arg); return tag_ptr(ret_conv, true); } +int64_t CS_LDK_C2Tuple__u832u16Z_clone_ptr(int64_t arg) { + LDKC2Tuple__u832u16Z* arg_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(arg); + int64_t ret_conv = C2Tuple__u832u16Z_clone_ptr(arg_conv); + return ret_conv; +} -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); - e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_err(e_conv); +int64_t CS_LDK_C2Tuple__u832u16Z_clone(int64_t orig) { + LDKC2Tuple__u832u16Z* orig_conv = (LDKC2Tuple__u832u16Z*)untag_ptr(orig); + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_clone(orig_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_is_ok(int64_t o) { - LDKCResult_ReceiveTlvsDecodeErrorZ* o_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_ReceiveTlvsDecodeErrorZ_is_ok(o_conv); - return ret_conv; +int64_t CS_LDK_C2Tuple__u832u16Z_new(int8_tArray a, int16_t b) { + LDKThirtyTwoBytes a_ref; + CHECK(a->arr_len == 32); + memcpy(a_ref.data, a->elems, 32); FREE(a); + LDKC2Tuple__u832u16Z* ret_conv = MALLOC(sizeof(LDKC2Tuple__u832u16Z), "LDKC2Tuple__u832u16Z"); + *ret_conv = C2Tuple__u832u16Z_new(a_ref, b); + return tag_ptr(ret_conv, true); } -void CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_free(int64_t _res) { +void CS_LDK_C2Tuple__u832u16Z_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_ReceiveTlvsDecodeErrorZ _res_conv = *(LDKCResult_ReceiveTlvsDecodeErrorZ*)(_res_ptr); + LDKC2Tuple__u832u16Z _res_conv = *(LDKC2Tuple__u832u16Z*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_ReceiveTlvsDecodeErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR arg) { - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(int64_t arg) { - LDKCResult_ReceiveTlvsDecodeErrorZ* arg_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone(int64_t orig) { - LDKCResult_ReceiveTlvsDecodeErrorZ* orig_conv = (LDKCResult_ReceiveTlvsDecodeErrorZ*)untag_ptr(orig); - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = CResult_ReceiveTlvsDecodeErrorZ_clone(orig_conv); - return tag_ptr(ret_conv, true); + C2Tuple__u832u16Z_free(_res_conv); } int64_t CS_LDK_CResult_PaymentRelayDecodeErrorZ_ok(int64_t o) { @@ -28936,169 +30903,98 @@ int64_t CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_ok(int8_tArray o) { - LDKThirtyTwoBytes o_ref; - CHECK(o->arr_len == 32); - memcpy(o_ref.data, o->elems, 32); FREE(o); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_ok(o_ref); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKPaymentError e_conv = *(LDKPaymentError*)(e_ptr); - e_conv = PaymentError_clone((LDKPaymentError*)untag_ptr(e)); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_err(e_conv); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(int64_t o) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* o_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_ThirtyTwoBytesPaymentErrorZ _res_conv = *(LDKCResult_ThirtyTwoBytesPaymentErrorZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_ThirtyTwoBytesPaymentErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR arg) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone(arg); +static inline uint64_t C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR arg) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(int64_t arg) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* arg_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(int64_t arg) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* arg_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone(int64_t orig) { - LDKCResult_ThirtyTwoBytesPaymentErrorZ* orig_conv = (LDKCResult_ThirtyTwoBytesPaymentErrorZ*)untag_ptr(orig); - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = CResult_ThirtyTwoBytesPaymentErrorZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(int64_t orig) { + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* orig_conv = (LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(orig); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_NonePaymentErrorZ_ok() { - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_ok(); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_NonePaymentErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKPaymentError e_conv = *(LDKPaymentError*)(e_ptr); - e_conv = PaymentError_clone((LDKPaymentError*)untag_ptr(e)); - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_err(e_conv); +int64_t CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(int8_tArray a, int64_t b, int64_t c) { + LDKThirtyTwoBytes a_ref; + CHECK(a->arr_len == 32); + memcpy(a_ref.data, a->elems, 32); FREE(a); + LDKRecipientOnionFields b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv = RecipientOnionFields_clone(&b_conv); + LDKRouteParameters c_conv; + c_conv.inner = untag_ptr(c); + c_conv.is_owned = ptr_is_owned(c); + CHECK_INNER_FIELD_ACCESS_OR_NULL(c_conv); + c_conv = RouteParameters_clone(&c_conv); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ), "LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ"); + *ret_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(a_ref, b_conv, c_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_NonePaymentErrorZ_is_ok(int64_t o) { - LDKCResult_NonePaymentErrorZ* o_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_NonePaymentErrorZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_NonePaymentErrorZ_free(int64_t _res) { +void CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_NonePaymentErrorZ _res_conv = *(LDKCResult_NonePaymentErrorZ*)(_res_ptr); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ _res_conv = *(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_NonePaymentErrorZ_free(_res_conv); -} - -static inline uint64_t CResult_NonePaymentErrorZ_clone_ptr(LDKCResult_NonePaymentErrorZ *NONNULL_PTR arg) { - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_NonePaymentErrorZ_clone_ptr(int64_t arg) { - LDKCResult_NonePaymentErrorZ* arg_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_NonePaymentErrorZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_NonePaymentErrorZ_clone(int64_t orig) { - LDKCResult_NonePaymentErrorZ* orig_conv = (LDKCResult_NonePaymentErrorZ*)untag_ptr(orig); - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = CResult_NonePaymentErrorZ_clone(orig_conv); - return tag_ptr(ret_conv, true); + C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(_res_conv); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(int64_tArray o) { - LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ o_constr; - o_constr.datalen = o->arr_len; - if (o_constr.datalen > 0) - o_constr.data = MALLOC(o_constr.datalen * sizeof(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ), "LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ Elements"); - else - o_constr.data = NULL; - int64_t* o_vals = o->elems; - for (size_t o = 0; o < o_constr.datalen; o++) { - int64_t o_conv_40 = o_vals[o]; - void* o_conv_40_ptr = untag_ptr(o_conv_40); - CHECK_ACCESS(o_conv_40_ptr); - LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ o_conv_40_conv = *(LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ*)(o_conv_40_ptr); - o_conv_40_conv = C2Tuple_ThirtyTwoBytesThirtyTwoBytesZ_clone((LDKC2Tuple_ThirtyTwoBytesThirtyTwoBytesZ*)untag_ptr(o_conv_40)); - o_constr.data[o] = o_conv_40_conv; - } - FREE(o); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(o_constr); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ o_conv = *(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)(o_ptr); + o_conv = C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone((LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ*)untag_ptr(o)); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(int64_t e) { - void* e_ptr = untag_ptr(e); - CHECK_ACCESS(e_ptr); - LDKProbingError e_conv = *(LDKProbingError*)(e_ptr); - e_conv = ProbingError_clone((LDKProbingError*)untag_ptr(e)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(e_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err() { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err(); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(int64_t o) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* o_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(int64_t o) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* o_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(o); + jboolean ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(int64_t _res) { +void CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ _res_conv = *(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)(_res_ptr); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ _res_conv = *(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(_res_conv); + CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(_res_conv); } -static inline uint64_t CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR arg) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(arg); +static inline uint64_t CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR arg) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(int64_t arg) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* arg_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(arg); - int64_t ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(arg_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(int64_t arg) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* arg_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(arg); + int64_t ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(int64_t orig) { - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* orig_conv = (LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ*)untag_ptr(orig); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(orig_conv); +int64_t CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(int64_t orig) { + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* orig_conv = (LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ*)untag_ptr(orig); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(orig_conv); return tag_ptr(ret_conv, true); } @@ -29199,75 +31095,25 @@ int64_t CS_LDK_CResult_TxOutUtxoLookupErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_ok(int64_t o) { - LDKOnionMessagePath o_conv; - o_conv.inner = untag_ptr(o); - o_conv.is_owned = ptr_is_owned(o); - CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); - o_conv = OnionMessagePath_clone(&o_conv); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_ok(o_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_err() { - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_err(); - return tag_ptr(ret_conv, true); -} - -jboolean CS_LDK_CResult_OnionMessagePathNoneZ_is_ok(int64_t o) { - LDKCResult_OnionMessagePathNoneZ* o_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(o); - jboolean ret_conv = CResult_OnionMessagePathNoneZ_is_ok(o_conv); - return ret_conv; -} - -void CS_LDK_CResult_OnionMessagePathNoneZ_free(int64_t _res) { - if (!ptr_is_owned(_res)) return; - void* _res_ptr = untag_ptr(_res); - CHECK_ACCESS(_res_ptr); - LDKCResult_OnionMessagePathNoneZ _res_conv = *(LDKCResult_OnionMessagePathNoneZ*)(_res_ptr); - FREE(untag_ptr(_res)); - CResult_OnionMessagePathNoneZ_free(_res_conv); -} - -static inline uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg) { - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_clone(arg); - return tag_ptr(ret_conv, true); -} -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr(int64_t arg) { - LDKCResult_OnionMessagePathNoneZ* arg_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(arg); - int64_t ret_conv = CResult_OnionMessagePathNoneZ_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_CResult_OnionMessagePathNoneZ_clone(int64_t orig) { - LDKCResult_OnionMessagePathNoneZ* orig_conv = (LDKCResult_OnionMessagePathNoneZ*)untag_ptr(orig); - LDKCResult_OnionMessagePathNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionMessagePathNoneZ), "LDKCResult_OnionMessagePathNoneZ"); - *ret_conv = CResult_OnionMessagePathNoneZ_clone(orig_conv); - return tag_ptr(ret_conv, true); -} - -static inline uint64_t C2Tuple_PublicKeyOnionMessageZ_clone_ptr(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR arg) { - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone(arg); +static inline uint64_t C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR arg) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(arg); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone_ptr(int64_t arg) { - LDKC2Tuple_PublicKeyOnionMessageZ* arg_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(arg); - int64_t ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone_ptr(arg_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(int64_t arg) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* arg_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(arg); + int64_t ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(arg_conv); return ret_conv; } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone(int64_t orig) { - LDKC2Tuple_PublicKeyOnionMessageZ* orig_conv = (LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(orig); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_clone(orig_conv); +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(int64_t orig) { + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* orig_conv = (LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(orig); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(orig_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_new(int8_tArray a, int64_t b) { +int64_t CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(int8_tArray a, int64_t b, int64_t c) { LDKPublicKey a_ref; CHECK(a->arr_len == 33); memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); @@ -29276,53 +31122,57 @@ int64_t CS_LDK_C2Tuple_PublicKeyOnionMessageZ_new(int8_tArray a, int64_t b) { b_conv.is_owned = ptr_is_owned(b); CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); b_conv = OnionMessage_clone(&b_conv); - LDKC2Tuple_PublicKeyOnionMessageZ* ret_conv = MALLOC(sizeof(LDKC2Tuple_PublicKeyOnionMessageZ), "LDKC2Tuple_PublicKeyOnionMessageZ"); - *ret_conv = C2Tuple_PublicKeyOnionMessageZ_new(a_ref, b_conv); + void* c_ptr = untag_ptr(c); + CHECK_ACCESS(c_ptr); + LDKCOption_CVec_SocketAddressZZ c_conv = *(LDKCOption_CVec_SocketAddressZZ*)(c_ptr); + c_conv = COption_CVec_SocketAddressZZ_clone((LDKCOption_CVec_SocketAddressZZ*)untag_ptr(c)); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ* ret_conv = MALLOC(sizeof(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ), "LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ"); + *ret_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(a_ref, b_conv, c_conv); return tag_ptr(ret_conv, true); } -void CS_LDK_C2Tuple_PublicKeyOnionMessageZ_free(int64_t _res) { +void CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKC2Tuple_PublicKeyOnionMessageZ _res_conv = *(LDKC2Tuple_PublicKeyOnionMessageZ*)(_res_ptr); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ _res_conv = *(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)(_res_ptr); FREE(untag_ptr(_res)); - C2Tuple_PublicKeyOnionMessageZ_free(_res_conv); + C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(_res_conv); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(int64_t o) { +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); - LDKC2Tuple_PublicKeyOnionMessageZ o_conv = *(LDKC2Tuple_PublicKeyOnionMessageZ*)(o_ptr); - o_conv = C2Tuple_PublicKeyOnionMessageZ_clone((LDKC2Tuple_PublicKeyOnionMessageZ*)untag_ptr(o)); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(o_conv); + LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ o_conv = *(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)(o_ptr); + o_conv = C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone((LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ*)untag_ptr(o)); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(int64_t e) { +int64_t CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(int64_t e) { void* e_ptr = untag_ptr(e); CHECK_ACCESS(e_ptr); LDKSendError e_conv = *(LDKSendError*)(e_ptr); e_conv = SendError_clone((LDKSendError*)untag_ptr(e)); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); - *ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(e_conv); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); + *ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(e_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(int64_t o) { - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* o_conv = (LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(int64_t o) { + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* o_conv = (LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(int64_t _res) { +void CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ _res_conv = *(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ*)(_res_ptr); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ _res_conv = *(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(_res_conv); + CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(_res_conv); } int64_t CS_LDK_CResult_PeeledOnionNoneZ_ok(int64_t o) { @@ -29356,35 +31206,39 @@ void CS_LDK_CResult_PeeledOnionNoneZ_free(int64_t _res) { CResult_PeeledOnionNoneZ_free(_res_conv); } -int64_t CS_LDK_CResult_NoneSendErrorZ_ok() { - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = CResult_NoneSendErrorZ_ok(); +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_ok(int64_t o) { + void* o_ptr = untag_ptr(o); + CHECK_ACCESS(o_ptr); + LDKSendSuccess o_conv = *(LDKSendSuccess*)(o_ptr); + o_conv = SendSuccess_clone((LDKSendSuccess*)untag_ptr(o)); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = CResult_SendSuccessSendErrorZ_ok(o_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_CResult_NoneSendErrorZ_err(int64_t e) { +int64_t CS_LDK_CResult_SendSuccessSendErrorZ_err(int64_t e) { void* e_ptr = untag_ptr(e); CHECK_ACCESS(e_ptr); LDKSendError e_conv = *(LDKSendError*)(e_ptr); e_conv = SendError_clone((LDKSendError*)untag_ptr(e)); - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = CResult_NoneSendErrorZ_err(e_conv); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = CResult_SendSuccessSendErrorZ_err(e_conv); return tag_ptr(ret_conv, true); } -jboolean CS_LDK_CResult_NoneSendErrorZ_is_ok(int64_t o) { - LDKCResult_NoneSendErrorZ* o_conv = (LDKCResult_NoneSendErrorZ*)untag_ptr(o); - jboolean ret_conv = CResult_NoneSendErrorZ_is_ok(o_conv); +jboolean CS_LDK_CResult_SendSuccessSendErrorZ_is_ok(int64_t o) { + LDKCResult_SendSuccessSendErrorZ* o_conv = (LDKCResult_SendSuccessSendErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_SendSuccessSendErrorZ_is_ok(o_conv); return ret_conv; } -void CS_LDK_CResult_NoneSendErrorZ_free(int64_t _res) { +void CS_LDK_CResult_SendSuccessSendErrorZ_free(int64_t _res) { if (!ptr_is_owned(_res)) return; void* _res_ptr = untag_ptr(_res); CHECK_ACCESS(_res_ptr); - LDKCResult_NoneSendErrorZ _res_conv = *(LDKCResult_NoneSendErrorZ*)(_res_ptr); + LDKCResult_SendSuccessSendErrorZ _res_conv = *(LDKCResult_SendSuccessSendErrorZ*)(_res_ptr); FREE(untag_ptr(_res)); - CResult_NoneSendErrorZ_free(_res_conv); + CResult_SendSuccessSendErrorZ_free(_res_conv); } int64_t CS_LDK_CResult_BlindedPathNoneZ_ok(int64_t o) { @@ -29486,6 +31340,26 @@ int64_t CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone(int64_t or return tag_ptr(ret_conv, true); } +void CS_LDK_CVec_ForwardNodeZ_free(int64_tArray _res) { + LDKCVec_ForwardNodeZ _res_constr; + _res_constr.datalen = _res->arr_len; + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKForwardNode), "LDKCVec_ForwardNodeZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = _res->elems; + for (size_t n = 0; n < _res_constr.datalen; n++) { + int64_t _res_conv_13 = _res_vals[n]; + LDKForwardNode _res_conv_13_conv; + _res_conv_13_conv.inner = untag_ptr(_res_conv_13); + _res_conv_13_conv.is_owned = ptr_is_owned(_res_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(_res_conv_13_conv); + _res_constr.data[n] = _res_conv_13_conv; + } + FREE(_res); + CVec_ForwardNodeZ_free(_res_constr); +} + int64_t CS_LDK_CResult_BlindedPathDecodeErrorZ_ok(int64_t o) { LDKBlindedPath o_conv; o_conv.inner = untag_ptr(o); @@ -29648,6 +31522,330 @@ int64_t CS_LDK_CResult_InvoiceErrorDecodeErrorZ_clone(int64_t orig) { return tag_ptr(ret_conv, true); } +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_ok(int64_t o) { + LDKDelayedPaymentBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = DelayedPaymentBasepoint_clone(&o_conv); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* o_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ _res_conv = *(LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_DelayedPaymentBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* arg_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* orig_conv = (LDKCResult_DelayedPaymentBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_ok(int64_t o) { + LDKDelayedPaymentKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = DelayedPaymentKey_clone(&o_conv); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* o_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_DelayedPaymentKeyDecodeErrorZ _res_conv = *(LDKCResult_DelayedPaymentKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_DelayedPaymentKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* arg_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_DelayedPaymentKeyDecodeErrorZ* orig_conv = (LDKCResult_DelayedPaymentKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = CResult_DelayedPaymentKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_ok(int64_t o) { + LDKHtlcBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = HtlcBasepoint_clone(&o_conv); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_HtlcBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_HtlcBasepointDecodeErrorZ* o_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_HtlcBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_HtlcBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_HtlcBasepointDecodeErrorZ _res_conv = *(LDKCResult_HtlcBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_HtlcBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_HtlcBasepointDecodeErrorZ_clone_ptr(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_HtlcBasepointDecodeErrorZ* arg_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_HtlcBasepointDecodeErrorZ* orig_conv = (LDKCResult_HtlcBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = CResult_HtlcBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_ok(int64_t o) { + LDKHtlcKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = HtlcKey_clone(&o_conv); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_HtlcKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_HtlcKeyDecodeErrorZ* o_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_HtlcKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_HtlcKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_HtlcKeyDecodeErrorZ _res_conv = *(LDKCResult_HtlcKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_HtlcKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_HtlcKeyDecodeErrorZ_clone_ptr(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_HtlcKeyDecodeErrorZ* arg_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_HtlcKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_HtlcKeyDecodeErrorZ* orig_conv = (LDKCResult_HtlcKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = CResult_HtlcKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_ok(int64_t o) { + LDKRevocationBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = RevocationBasepoint_clone(&o_conv); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_RevocationBasepointDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_RevocationBasepointDecodeErrorZ* o_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_RevocationBasepointDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_RevocationBasepointDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_RevocationBasepointDecodeErrorZ _res_conv = *(LDKCResult_RevocationBasepointDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_RevocationBasepointDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_RevocationBasepointDecodeErrorZ_clone_ptr(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_RevocationBasepointDecodeErrorZ* arg_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone(int64_t orig) { + LDKCResult_RevocationBasepointDecodeErrorZ* orig_conv = (LDKCResult_RevocationBasepointDecodeErrorZ*)untag_ptr(orig); + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = CResult_RevocationBasepointDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_ok(int64_t o) { + LDKRevocationKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv = RevocationKey_clone(&o_conv); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_ok(o_conv); + return tag_ptr(ret_conv, true); +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_err(int64_t e) { + void* e_ptr = untag_ptr(e); + CHECK_ACCESS(e_ptr); + LDKDecodeError e_conv = *(LDKDecodeError*)(e_ptr); + e_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(e)); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_err(e_conv); + return tag_ptr(ret_conv, true); +} + +jboolean CS_LDK_CResult_RevocationKeyDecodeErrorZ_is_ok(int64_t o) { + LDKCResult_RevocationKeyDecodeErrorZ* o_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(o); + jboolean ret_conv = CResult_RevocationKeyDecodeErrorZ_is_ok(o_conv); + return ret_conv; +} + +void CS_LDK_CResult_RevocationKeyDecodeErrorZ_free(int64_t _res) { + if (!ptr_is_owned(_res)) return; + void* _res_ptr = untag_ptr(_res); + CHECK_ACCESS(_res_ptr); + LDKCResult_RevocationKeyDecodeErrorZ _res_conv = *(LDKCResult_RevocationKeyDecodeErrorZ*)(_res_ptr); + FREE(untag_ptr(_res)); + CResult_RevocationKeyDecodeErrorZ_free(_res_conv); +} + +static inline uint64_t CResult_RevocationKeyDecodeErrorZ_clone_ptr(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR arg) { + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_clone(arg); + return tag_ptr(ret_conv, true); +} +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone_ptr(int64_t arg) { + LDKCResult_RevocationKeyDecodeErrorZ* arg_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(arg); + int64_t ret_conv = CResult_RevocationKeyDecodeErrorZ_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone(int64_t orig) { + LDKCResult_RevocationKeyDecodeErrorZ* orig_conv = (LDKCResult_RevocationKeyDecodeErrorZ*)untag_ptr(orig); + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = CResult_RevocationKeyDecodeErrorZ_clone(orig_conv); + return tag_ptr(ret_conv, true); +} + int64_t CS_LDK_COption_FilterZ_some(int64_t o) { void* o_ptr = untag_ptr(o); CHECK_ACCESS(o_ptr); @@ -30083,6 +32281,16 @@ int64_t CS_LDK_Hostname_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Hostname_hash(int64_t o) { + LDKHostname o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Hostname_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Hostname_eq(int64_t a, int64_t b) { LDKHostname a_conv; a_conv.inner = untag_ptr(a); @@ -30169,6 +32377,16 @@ int64_t CS_LDK_TransactionU16LenLimited_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TransactionU16LenLimited_hash(int64_t o) { + LDKTransactionU16LenLimited o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TransactionU16LenLimited_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TransactionU16LenLimited_eq(int64_t a, int64_t b) { LDKTransactionU16LenLimited a_conv; a_conv.inner = untag_ptr(a); @@ -30524,6 +32742,16 @@ jboolean CS_LDK_UntrustedString_eq(int64_t a, int64_t b) { return ret_conv; } +int64_t CS_LDK_UntrustedString_hash(int64_t o) { + LDKUntrustedString o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UntrustedString_hash(&o_conv); + return ret_conv; +} + int8_tArray CS_LDK_UntrustedString_write(int64_t obj) { LDKUntrustedString obj_conv; obj_conv.inner = untag_ptr(obj); @@ -30833,6 +33061,54 @@ void CS_LDK_Record_set_level(int64_t this_ptr, int32_t val) { Record_set_level(&this_ptr_conv, val_conv); } +int8_tArray CS_LDK_Record_get_peer_id(int64_t this_ptr) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, Record_get_peer_id(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_Record_set_peer_id(int64_t this_ptr, int8_tArray val) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + Record_set_peer_id(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Record_get_channel_id(int64_t this_ptr) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); + *ret_copy = Record_get_channel_id(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_Record_set_channel_id(int64_t this_ptr, int64_t val) { + LDKRecord this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_ThirtyTwoBytesZ val_conv = *(LDKCOption_ThirtyTwoBytesZ*)(val_ptr); + val_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(val)); + Record_set_channel_id(&this_ptr_conv, val_conv); +} + jstring CS_LDK_Record_get_args(int64_t this_ptr) { LDKRecord this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); @@ -30918,6 +33194,25 @@ void CS_LDK_Record_set_line(int64_t this_ptr, int32_t val) { Record_set_line(&this_ptr_conv, val); } +int64_t CS_LDK_Record_new(int32_t level_arg, int8_tArray peer_id_arg, int64_t channel_id_arg, jstring args_arg, jstring module_path_arg, jstring file_arg, int32_t line_arg) { + LDKLevel level_arg_conv = LDKLevel_from_cs(level_arg); + LDKPublicKey peer_id_arg_ref; + CHECK(peer_id_arg->arr_len == 33); + memcpy(peer_id_arg_ref.compressed_form, peer_id_arg->elems, 33); FREE(peer_id_arg); + void* channel_id_arg_ptr = untag_ptr(channel_id_arg); + CHECK_ACCESS(channel_id_arg_ptr); + LDKCOption_ThirtyTwoBytesZ channel_id_arg_conv = *(LDKCOption_ThirtyTwoBytesZ*)(channel_id_arg_ptr); + channel_id_arg_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(channel_id_arg)); + LDKStr args_arg_conv = str_ref_to_owned_c(args_arg); + LDKStr module_path_arg_conv = str_ref_to_owned_c(module_path_arg); + LDKStr file_arg_conv = str_ref_to_owned_c(file_arg); + LDKRecord ret_var = Record_new(level_arg_conv, peer_id_arg_ref, channel_id_arg_conv, args_arg_conv, module_path_arg_conv, file_arg_conv, line_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline uint64_t Record_clone_ptr(LDKRecord *NONNULL_PTR arg) { LDKRecord ret_var = Record_clone(arg); int64_t ret_ref = 0; @@ -32382,9 +34677,10 @@ int8_tArray CS_LDK_WatchedOutput_get_script_pubkey(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = WatchedOutput_get_script_pubkey(&this_ptr_conv); + LDKCVec_u8Z ret_var = WatchedOutput_get_script_pubkey(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -32497,11 +34793,6 @@ int32_t CS_LDK_ConfirmationTarget_on_chain_sweep() { return ret_conv; } -int32_t CS_LDK_ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee() { - int32_t ret_conv = LDKConfirmationTarget_to_cs(ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee()); - return ret_conv; -} - int32_t CS_LDK_ConfirmationTarget_min_allowed_anchor_channel_remote_fee() { int32_t ret_conv = LDKConfirmationTarget_to_cs(ConfirmationTarget_min_allowed_anchor_channel_remote_fee()); return ret_conv; @@ -33342,7 +35633,7 @@ int64_tArray CS_LDK_ChannelMonitor_get_outputs_to_watch(int64_t this_arg) { return ret_arr; } -void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filter) { +void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filter, int64_t logger) { LDKChannelMonitor this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); @@ -33351,7 +35642,10 @@ void CS_LDK_ChannelMonitor_load_outputs_to_watch(int64_t this_arg, int64_t filt void* filter_ptr = untag_ptr(filter); if (ptr_is_owned(filter)) { CHECK_ACCESS(filter_ptr); } LDKFilter* filter_conv = (LDKFilter*)filter_ptr; - ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv); + void* logger_ptr = untag_ptr(logger); + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; + ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv, logger_conv); } int64_tArray CS_LDK_ChannelMonitor_get_and_clear_pending_monitor_events(int64_t this_arg) { @@ -33520,12 +35814,8 @@ int64_tArray CS_LDK_ChannelMonitor_block_connected(int64_t this_arg, int8_tArra LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33565,12 +35855,8 @@ void CS_LDK_ChannelMonitor_block_disconnected(int64_t this_arg, int8_tArray hea LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_block_disconnected(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33615,12 +35901,8 @@ int64_tArray CS_LDK_ChannelMonitor_transactions_confirmed(int64_t this_arg, int LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_transactions_confirmed(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33660,12 +35942,8 @@ void CS_LDK_ChannelMonitor_transaction_unconfirmed(int64_t this_arg, int8_tArra LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_transaction_unconfirmed(&this_arg_conv, txid_ref, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33694,12 +35972,8 @@ int64_tArray CS_LDK_ChannelMonitor_best_block_updated(int64_t this_arg, int8_tA LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_best_block_updated(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); @@ -33720,14 +35994,14 @@ int64_tArray CS_LDK_ChannelMonitor_get_relevant_txids(int64_t this_arg) { this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv.is_owned = false; - LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ret_var = ChannelMonitor_get_relevant_txids(&this_arg_conv); + LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ret_var = ChannelMonitor_get_relevant_txids(&this_arg_conv); int64_tArray ret_arr = NULL; ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); - for (size_t x = 0; x < ret_var.datalen; x++) { - LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ* ret_conv_49_conv = MALLOC(sizeof(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ), "LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ"); - *ret_conv_49_conv = ret_var.data[x]; - ret_arr_ptr[x] = tag_ptr(ret_conv_49_conv, true); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ* ret_conv_54_conv = MALLOC(sizeof(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ), "LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ"); + *ret_conv_54_conv = ret_var.data[c]; + ret_arr_ptr[c] = tag_ptr(ret_conv_54_conv, true); } FREE(ret_var.data); @@ -33768,12 +36042,8 @@ void CS_LDK_ChannelMonitor_rebroadcast_pending_claims(int64_t this_arg, int64_t LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } void* logger_ptr = untag_ptr(logger); - CHECK_ACCESS(logger_ptr); - LDKLogger logger_conv = *(LDKLogger*)(logger_ptr); - if (logger_conv.free == LDKLogger_JCalls_free) { - // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_cloned(&logger_conv); - } + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; ChannelMonitor_rebroadcast_pending_claims(&this_arg_conv, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -33990,6 +36260,597 @@ int64_t CS_LDK_OutPoint_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +void CS_LDK_InboundHTLCErr_free(int64_t this_obj) { + LDKInboundHTLCErr this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + InboundHTLCErr_free(this_obj_conv); +} + +int16_t CS_LDK_InboundHTLCErr_get_err_code(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int16_t ret_conv = InboundHTLCErr_get_err_code(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_InboundHTLCErr_set_err_code(int64_t this_ptr, int16_t val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + InboundHTLCErr_set_err_code(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_InboundHTLCErr_get_err_data(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u8Z ret_var = InboundHTLCErr_get_err_data(&this_ptr_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +void CS_LDK_InboundHTLCErr_set_err_data(int64_t this_ptr, int8_tArray val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u8Z val_ref; + val_ref.datalen = val->arr_len; + val_ref.data = MALLOC(val_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(val_ref.data, val->elems, val_ref.datalen); FREE(val); + InboundHTLCErr_set_err_data(&this_ptr_conv, val_ref); +} + +jstring CS_LDK_InboundHTLCErr_get_msg(int64_t this_ptr) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKStr ret_str = InboundHTLCErr_get_msg(&this_ptr_conv); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + +void CS_LDK_InboundHTLCErr_set_msg(int64_t this_ptr, jstring val) { + LDKInboundHTLCErr this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKStr val_conv = str_ref_to_owned_c(val); + InboundHTLCErr_set_msg(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_InboundHTLCErr_new(int16_t err_code_arg, int8_tArray err_data_arg, jstring msg_arg) { + LDKCVec_u8Z err_data_arg_ref; + err_data_arg_ref.datalen = err_data_arg->arr_len; + err_data_arg_ref.data = MALLOC(err_data_arg_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(err_data_arg_ref.data, err_data_arg->elems, err_data_arg_ref.datalen); FREE(err_data_arg); + LDKStr msg_arg_conv = str_ref_to_owned_c(msg_arg); + LDKInboundHTLCErr ret_var = InboundHTLCErr_new(err_code_arg, err_data_arg_ref, msg_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_peel_payment_onion(int64_t msg, int64_t node_signer, int64_t logger, int32_t cur_height, jboolean accept_mpp_keysend, jboolean allow_skimmed_fees) { + LDKUpdateAddHTLC msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv.is_owned = false; + void* node_signer_ptr = untag_ptr(node_signer); + if (ptr_is_owned(node_signer)) { CHECK_ACCESS(node_signer_ptr); } + LDKNodeSigner* node_signer_conv = (LDKNodeSigner*)node_signer_ptr; + void* logger_ptr = untag_ptr(logger); + if (ptr_is_owned(logger)) { CHECK_ACCESS(logger_ptr); } + LDKLogger* logger_conv = (LDKLogger*)logger_ptr; + LDKCResult_PendingHTLCInfoInboundHTLCErrZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoInboundHTLCErrZ), "LDKCResult_PendingHTLCInfoInboundHTLCErrZ"); + *ret_conv = peel_payment_onion(&msg_conv, node_signer_conv, logger_conv, cur_height, accept_mpp_keysend, allow_skimmed_fees); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_PendingHTLCRouting_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKPendingHTLCRouting this_ptr_conv = *(LDKPendingHTLCRouting*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + PendingHTLCRouting_free(this_ptr_conv); +} + +static inline uint64_t PendingHTLCRouting_clone_ptr(LDKPendingHTLCRouting *NONNULL_PTR arg) { + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_PendingHTLCRouting_clone_ptr(int64_t arg) { + LDKPendingHTLCRouting* arg_conv = (LDKPendingHTLCRouting*)untag_ptr(arg); + int64_t ret_conv = PendingHTLCRouting_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PendingHTLCRouting_clone(int64_t orig) { + LDKPendingHTLCRouting* orig_conv = (LDKPendingHTLCRouting*)untag_ptr(orig); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_forward(int64_t onion_packet, int64_t short_channel_id, int64_t blinded) { + LDKOnionPacket onion_packet_conv; + onion_packet_conv.inner = untag_ptr(onion_packet); + onion_packet_conv.is_owned = ptr_is_owned(onion_packet); + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_packet_conv); + onion_packet_conv = OnionPacket_clone(&onion_packet_conv); + LDKBlindedForward blinded_conv; + blinded_conv.inner = untag_ptr(blinded); + blinded_conv.is_owned = ptr_is_owned(blinded); + CHECK_INNER_FIELD_ACCESS_OR_NULL(blinded_conv); + blinded_conv = BlindedForward_clone(&blinded_conv); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_forward(onion_packet_conv, short_channel_id, blinded_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_receive(int64_t payment_data, int64_t payment_metadata, int32_t incoming_cltv_expiry, int8_tArray phantom_shared_secret, int64_tArray custom_tlvs, jboolean requires_blinded_error) { + LDKFinalOnionHopData payment_data_conv; + payment_data_conv.inner = untag_ptr(payment_data); + payment_data_conv.is_owned = ptr_is_owned(payment_data); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_conv); + payment_data_conv = FinalOnionHopData_clone(&payment_data_conv); + void* payment_metadata_ptr = untag_ptr(payment_metadata); + CHECK_ACCESS(payment_metadata_ptr); + LDKCOption_CVec_u8ZZ payment_metadata_conv = *(LDKCOption_CVec_u8ZZ*)(payment_metadata_ptr); + payment_metadata_conv = COption_CVec_u8ZZ_clone((LDKCOption_CVec_u8ZZ*)untag_ptr(payment_metadata)); + LDKThirtyTwoBytes phantom_shared_secret_ref; + CHECK(phantom_shared_secret->arr_len == 32); + memcpy(phantom_shared_secret_ref.data, phantom_shared_secret->elems, 32); FREE(phantom_shared_secret); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_constr; + custom_tlvs_constr.datalen = custom_tlvs->arr_len; + if (custom_tlvs_constr.datalen > 0) + custom_tlvs_constr.data = MALLOC(custom_tlvs_constr.datalen * sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKCVec_C2Tuple_u64CVec_u8ZZZ Elements"); + else + custom_tlvs_constr.data = NULL; + int64_t* custom_tlvs_vals = custom_tlvs->elems; + for (size_t x = 0; x < custom_tlvs_constr.datalen; x++) { + int64_t custom_tlvs_conv_23 = custom_tlvs_vals[x]; + void* custom_tlvs_conv_23_ptr = untag_ptr(custom_tlvs_conv_23); + CHECK_ACCESS(custom_tlvs_conv_23_ptr); + LDKC2Tuple_u64CVec_u8ZZ custom_tlvs_conv_23_conv = *(LDKC2Tuple_u64CVec_u8ZZ*)(custom_tlvs_conv_23_ptr); + custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone((LDKC2Tuple_u64CVec_u8ZZ*)untag_ptr(custom_tlvs_conv_23)); + custom_tlvs_constr.data[x] = custom_tlvs_conv_23_conv; + } + FREE(custom_tlvs); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_receive(payment_data_conv, payment_metadata_conv, incoming_cltv_expiry, phantom_shared_secret_ref, custom_tlvs_constr, requires_blinded_error); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_PendingHTLCRouting_receive_keysend(int64_t payment_data, int8_tArray payment_preimage, int64_t payment_metadata, int32_t incoming_cltv_expiry, int64_tArray custom_tlvs) { + LDKFinalOnionHopData payment_data_conv; + payment_data_conv.inner = untag_ptr(payment_data); + payment_data_conv.is_owned = ptr_is_owned(payment_data); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payment_data_conv); + payment_data_conv = FinalOnionHopData_clone(&payment_data_conv); + LDKThirtyTwoBytes payment_preimage_ref; + CHECK(payment_preimage->arr_len == 32); + memcpy(payment_preimage_ref.data, payment_preimage->elems, 32); FREE(payment_preimage); + void* payment_metadata_ptr = untag_ptr(payment_metadata); + CHECK_ACCESS(payment_metadata_ptr); + LDKCOption_CVec_u8ZZ payment_metadata_conv = *(LDKCOption_CVec_u8ZZ*)(payment_metadata_ptr); + payment_metadata_conv = COption_CVec_u8ZZ_clone((LDKCOption_CVec_u8ZZ*)untag_ptr(payment_metadata)); + LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs_constr; + custom_tlvs_constr.datalen = custom_tlvs->arr_len; + if (custom_tlvs_constr.datalen > 0) + custom_tlvs_constr.data = MALLOC(custom_tlvs_constr.datalen * sizeof(LDKC2Tuple_u64CVec_u8ZZ), "LDKCVec_C2Tuple_u64CVec_u8ZZZ Elements"); + else + custom_tlvs_constr.data = NULL; + int64_t* custom_tlvs_vals = custom_tlvs->elems; + for (size_t x = 0; x < custom_tlvs_constr.datalen; x++) { + int64_t custom_tlvs_conv_23 = custom_tlvs_vals[x]; + void* custom_tlvs_conv_23_ptr = untag_ptr(custom_tlvs_conv_23); + CHECK_ACCESS(custom_tlvs_conv_23_ptr); + LDKC2Tuple_u64CVec_u8ZZ custom_tlvs_conv_23_conv = *(LDKC2Tuple_u64CVec_u8ZZ*)(custom_tlvs_conv_23_ptr); + custom_tlvs_conv_23_conv = C2Tuple_u64CVec_u8ZZ_clone((LDKC2Tuple_u64CVec_u8ZZ*)untag_ptr(custom_tlvs_conv_23)); + custom_tlvs_constr.data[x] = custom_tlvs_conv_23_conv; + } + FREE(custom_tlvs); + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCRouting_receive_keysend(payment_data_conv, payment_preimage_ref, payment_metadata_conv, incoming_cltv_expiry, custom_tlvs_constr); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_BlindedForward_free(int64_t this_obj) { + LDKBlindedForward this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + BlindedForward_free(this_obj_conv); +} + +int8_tArray CS_LDK_BlindedForward_get_inbound_blinding_point(int64_t this_ptr) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, BlindedForward_get_inbound_blinding_point(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_BlindedForward_set_inbound_blinding_point(int64_t this_ptr, int8_tArray val) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + BlindedForward_set_inbound_blinding_point(&this_ptr_conv, val_ref); +} + +int32_t CS_LDK_BlindedForward_get_failure(int64_t this_ptr) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedForward_get_failure(&this_ptr_conv)); + return ret_conv; +} + +void CS_LDK_BlindedForward_set_failure(int64_t this_ptr, int32_t val) { + LDKBlindedForward this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKBlindedFailure val_conv = LDKBlindedFailure_from_cs(val); + BlindedForward_set_failure(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_BlindedForward_new(int8_tArray inbound_blinding_point_arg, int32_t failure_arg) { + LDKPublicKey inbound_blinding_point_arg_ref; + CHECK(inbound_blinding_point_arg->arr_len == 33); + memcpy(inbound_blinding_point_arg_ref.compressed_form, inbound_blinding_point_arg->elems, 33); FREE(inbound_blinding_point_arg); + LDKBlindedFailure failure_arg_conv = LDKBlindedFailure_from_cs(failure_arg); + LDKBlindedForward ret_var = BlindedForward_new(inbound_blinding_point_arg_ref, failure_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t BlindedForward_clone_ptr(LDKBlindedForward *NONNULL_PTR arg) { + LDKBlindedForward ret_var = BlindedForward_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_BlindedForward_clone_ptr(int64_t arg) { + LDKBlindedForward arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = BlindedForward_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedForward_clone(int64_t orig) { + LDKBlindedForward orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKBlindedForward ret_var = BlindedForward_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_BlindedForward_hash(int64_t o) { + LDKBlindedForward o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = BlindedForward_hash(&o_conv); + return ret_conv; +} + +jboolean CS_LDK_BlindedForward_eq(int64_t a, int64_t b) { + LDKBlindedForward a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKBlindedForward b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = BlindedForward_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_free(int64_t this_obj) { + LDKPendingHTLCInfo this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PendingHTLCInfo_free(this_obj_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_get_routing(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPendingHTLCRouting *ret_copy = MALLOC(sizeof(LDKPendingHTLCRouting), "LDKPendingHTLCRouting"); + *ret_copy = PendingHTLCInfo_get_routing(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_routing(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKPendingHTLCRouting val_conv = *(LDKPendingHTLCRouting*)(val_ptr); + val_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(val)); + PendingHTLCInfo_set_routing(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_PendingHTLCInfo_get_incoming_shared_secret(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *PendingHTLCInfo_get_incoming_shared_secret(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_PendingHTLCInfo_set_incoming_shared_secret(int64_t this_ptr, int8_tArray val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + PendingHTLCInfo_set_incoming_shared_secret(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_PendingHTLCInfo_get_payment_hash(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *PendingHTLCInfo_get_payment_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_PendingHTLCInfo_set_payment_hash(int64_t this_ptr, int8_tArray val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + PendingHTLCInfo_set_payment_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_PendingHTLCInfo_get_incoming_amt_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = PendingHTLCInfo_get_incoming_amt_msat(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_incoming_amt_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr); + val_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(val)); + PendingHTLCInfo_set_incoming_amt_msat(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_get_outgoing_amt_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = PendingHTLCInfo_get_outgoing_amt_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_set_outgoing_amt_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PendingHTLCInfo_set_outgoing_amt_msat(&this_ptr_conv, val); +} + +int32_t CS_LDK_PendingHTLCInfo_get_outgoing_cltv_value(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = PendingHTLCInfo_get_outgoing_cltv_value(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PendingHTLCInfo_set_outgoing_cltv_value(int64_t this_ptr, int32_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PendingHTLCInfo_set_outgoing_cltv_value(&this_ptr_conv, val); +} + +int64_t CS_LDK_PendingHTLCInfo_get_skimmed_fee_msat(int64_t this_ptr) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = PendingHTLCInfo_get_skimmed_fee_msat(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_PendingHTLCInfo_set_skimmed_fee_msat(int64_t this_ptr, int64_t val) { + LDKPendingHTLCInfo this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_u64Z val_conv = *(LDKCOption_u64Z*)(val_ptr); + val_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(val)); + PendingHTLCInfo_set_skimmed_fee_msat(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_PendingHTLCInfo_new(int64_t routing_arg, int8_tArray incoming_shared_secret_arg, int8_tArray payment_hash_arg, int64_t incoming_amt_msat_arg, int64_t outgoing_amt_msat_arg, int32_t outgoing_cltv_value_arg, int64_t skimmed_fee_msat_arg) { + void* routing_arg_ptr = untag_ptr(routing_arg); + CHECK_ACCESS(routing_arg_ptr); + LDKPendingHTLCRouting routing_arg_conv = *(LDKPendingHTLCRouting*)(routing_arg_ptr); + routing_arg_conv = PendingHTLCRouting_clone((LDKPendingHTLCRouting*)untag_ptr(routing_arg)); + LDKThirtyTwoBytes incoming_shared_secret_arg_ref; + CHECK(incoming_shared_secret_arg->arr_len == 32); + memcpy(incoming_shared_secret_arg_ref.data, incoming_shared_secret_arg->elems, 32); FREE(incoming_shared_secret_arg); + LDKThirtyTwoBytes payment_hash_arg_ref; + CHECK(payment_hash_arg->arr_len == 32); + memcpy(payment_hash_arg_ref.data, payment_hash_arg->elems, 32); FREE(payment_hash_arg); + void* incoming_amt_msat_arg_ptr = untag_ptr(incoming_amt_msat_arg); + CHECK_ACCESS(incoming_amt_msat_arg_ptr); + LDKCOption_u64Z incoming_amt_msat_arg_conv = *(LDKCOption_u64Z*)(incoming_amt_msat_arg_ptr); + incoming_amt_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(incoming_amt_msat_arg)); + void* skimmed_fee_msat_arg_ptr = untag_ptr(skimmed_fee_msat_arg); + CHECK_ACCESS(skimmed_fee_msat_arg_ptr); + LDKCOption_u64Z skimmed_fee_msat_arg_conv = *(LDKCOption_u64Z*)(skimmed_fee_msat_arg_ptr); + skimmed_fee_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(skimmed_fee_msat_arg)); + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_new(routing_arg_conv, incoming_shared_secret_arg_ref, payment_hash_arg_ref, incoming_amt_msat_arg_conv, outgoing_amt_msat_arg, outgoing_cltv_value_arg, skimmed_fee_msat_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t PendingHTLCInfo_clone_ptr(LDKPendingHTLCInfo *NONNULL_PTR arg) { + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PendingHTLCInfo_clone_ptr(int64_t arg) { + LDKPendingHTLCInfo arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PendingHTLCInfo_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PendingHTLCInfo_clone(int64_t orig) { + LDKPendingHTLCInfo orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPendingHTLCInfo ret_var = PendingHTLCInfo_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int32_t CS_LDK_BlindedFailure_clone(int64_t orig) { + LDKBlindedFailure* orig_conv = (LDKBlindedFailure*)untag_ptr(orig); + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_clone(orig_conv)); + return ret_conv; +} + +int32_t CS_LDK_BlindedFailure_from_introduction_node() { + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_from_introduction_node()); + return ret_conv; +} + +int32_t CS_LDK_BlindedFailure_from_blinded_node() { + int32_t ret_conv = LDKBlindedFailure_to_cs(BlindedFailure_from_blinded_node()); + return ret_conv; +} + +int64_t CS_LDK_BlindedFailure_hash(int64_t o) { + LDKBlindedFailure* o_conv = (LDKBlindedFailure*)untag_ptr(o); + int64_t ret_conv = BlindedFailure_hash(o_conv); + return ret_conv; +} + +jboolean CS_LDK_BlindedFailure_eq(int64_t a, int64_t b) { + LDKBlindedFailure* a_conv = (LDKBlindedFailure*)untag_ptr(a); + LDKBlindedFailure* b_conv = (LDKBlindedFailure*)untag_ptr(b); + jboolean ret_conv = BlindedFailure_eq(a_conv, b_conv); + return ret_conv; +} + void CS_LDK_FailureCode_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -35592,7 +38453,7 @@ int64_t CS_LDK_ChannelManager_get_current_default_configuration(int64_t this_ar return ret_ref; } -int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray their_network_key, int64_t channel_value_satoshis, int64_t push_msat, int8_tArray user_channel_id, int64_t override_config) { +int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray their_network_key, int64_t channel_value_satoshis, int64_t push_msat, int8_tArray user_channel_id, int64_t temporary_channel_id, int64_t override_config) { LDKChannelManager this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); @@ -35604,13 +38465,17 @@ int64_t CS_LDK_ChannelManager_create_channel(int64_t this_arg, int8_tArray thei LDKU128 user_channel_id_ref; CHECK(user_channel_id->arr_len == 16); memcpy(user_channel_id_ref.le_bytes, user_channel_id->elems, 16); FREE(user_channel_id); + void* temporary_channel_id_ptr = untag_ptr(temporary_channel_id); + CHECK_ACCESS(temporary_channel_id_ptr); + LDKCOption_ThirtyTwoBytesZ temporary_channel_id_conv = *(LDKCOption_ThirtyTwoBytesZ*)(temporary_channel_id_ptr); + temporary_channel_id_conv = COption_ThirtyTwoBytesZ_clone((LDKCOption_ThirtyTwoBytesZ*)untag_ptr(temporary_channel_id)); LDKUserConfig override_config_conv; override_config_conv.inner = untag_ptr(override_config); override_config_conv.is_owned = ptr_is_owned(override_config); CHECK_INNER_FIELD_ACCESS_OR_NULL(override_config_conv); override_config_conv = UserConfig_clone(&override_config_conv); LDKCResult_ThirtyTwoBytesAPIErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesAPIErrorZ), "LDKCResult_ThirtyTwoBytesAPIErrorZ"); - *ret_conv = ChannelManager_create_channel(&this_arg_conv, their_network_key_ref, channel_value_satoshis, push_msat, user_channel_id_ref, override_config_conv); + *ret_conv = ChannelManager_create_channel(&this_arg_conv, their_network_key_ref, channel_value_satoshis, push_msat, user_channel_id_ref, temporary_channel_id_conv, override_config_conv); return tag_ptr(ret_conv, true); } @@ -36688,6 +39553,90 @@ int64_t CS_LDK_PhantomRouteHints_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_BlindedForward_write(int64_t obj) { + LDKBlindedForward obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = BlindedForward_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_BlindedForward_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_BlindedForwardDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedForwardDecodeErrorZ), "LDKCResult_BlindedForwardDecodeErrorZ"); + *ret_conv = BlindedForward_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_PendingHTLCRouting_write(int64_t obj) { + LDKPendingHTLCRouting* obj_conv = (LDKPendingHTLCRouting*)untag_ptr(obj); + LDKCVec_u8Z ret_var = PendingHTLCRouting_write(obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_PendingHTLCRouting_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_PendingHTLCRoutingDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCRoutingDecodeErrorZ), "LDKCResult_PendingHTLCRoutingDecodeErrorZ"); + *ret_conv = PendingHTLCRouting_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_PendingHTLCInfo_write(int64_t obj) { + LDKPendingHTLCInfo obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = PendingHTLCInfo_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_PendingHTLCInfo_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_PendingHTLCInfoDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PendingHTLCInfoDecodeErrorZ), "LDKCResult_PendingHTLCInfoDecodeErrorZ"); + *ret_conv = PendingHTLCInfo_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_BlindedFailure_write(int64_t obj) { + LDKBlindedFailure* obj_conv = (LDKBlindedFailure*)untag_ptr(obj); + LDKCVec_u8Z ret_var = BlindedFailure_write(obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_BlindedFailure_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_BlindedFailureDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_BlindedFailureDecodeErrorZ), "LDKCResult_BlindedFailureDecodeErrorZ"); + *ret_conv = BlindedFailure_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_ChannelManager_write(int64_t obj) { LDKChannelManager obj_conv; obj_conv.inner = untag_ptr(obj); @@ -37073,6 +40022,844 @@ int64_t CS_LDK_C2Tuple_ThirtyTwoBytesChannelManagerZ_read(int8_tArray ser, int6 return tag_ptr(ret_conv, true); } +void CS_LDK_DelayedPaymentBasepoint_free(int64_t this_obj) { + LDKDelayedPaymentBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + DelayedPaymentBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_get_a(int64_t this_ptr) { + LDKDelayedPaymentBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_DelayedPaymentBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKDelayedPaymentBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + DelayedPaymentBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_DelayedPaymentBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_DelayedPaymentBasepoint_eq(int64_t a, int64_t b) { + LDKDelayedPaymentBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKDelayedPaymentBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = DelayedPaymentBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t DelayedPaymentBasepoint_clone_ptr(LDKDelayedPaymentBasepoint *NONNULL_PTR arg) { + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_DelayedPaymentBasepoint_clone_ptr(int64_t arg) { + LDKDelayedPaymentBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_clone(int64_t orig) { + LDKDelayedPaymentBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKDelayedPaymentBasepoint ret_var = DelayedPaymentBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_hash(int64_t o) { + LDKDelayedPaymentBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_to_public_key(int64_t this_arg) { + LDKDelayedPaymentBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_DelayedPaymentBasepoint_write(int64_t obj) { + LDKDelayedPaymentBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = DelayedPaymentBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_DelayedPaymentBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_DelayedPaymentBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentBasepointDecodeErrorZ), "LDKCResult_DelayedPaymentBasepointDecodeErrorZ"); + *ret_conv = DelayedPaymentBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_DelayedPaymentKey_free(int64_t this_obj) { + LDKDelayedPaymentKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + DelayedPaymentKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_DelayedPaymentKey_get_a(int64_t this_ptr) { + LDKDelayedPaymentKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_DelayedPaymentKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKDelayedPaymentKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + DelayedPaymentKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_DelayedPaymentKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_DelayedPaymentKey_eq(int64_t a, int64_t b) { + LDKDelayedPaymentKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKDelayedPaymentKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = DelayedPaymentKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t DelayedPaymentKey_clone_ptr(LDKDelayedPaymentKey *NONNULL_PTR arg) { + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_DelayedPaymentKey_clone_ptr(int64_t arg) { + LDKDelayedPaymentKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = DelayedPaymentKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_DelayedPaymentKey_clone(int64_t orig) { + LDKDelayedPaymentKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKDelayedPaymentBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_DelayedPaymentKey_from_secret_key(int8_tArray sk) { + uint8_t sk_arr[32]; + CHECK(sk->arr_len == 32); + memcpy(sk_arr, sk->elems, 32); FREE(sk); + uint8_t (*sk_ref)[32] = &sk_arr; + LDKDelayedPaymentKey ret_var = DelayedPaymentKey_from_secret_key(sk_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_DelayedPaymentKey_to_public_key(int64_t this_arg) { + LDKDelayedPaymentKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, DelayedPaymentKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_DelayedPaymentKey_write(int64_t obj) { + LDKDelayedPaymentKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = DelayedPaymentKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_DelayedPaymentKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_DelayedPaymentKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_DelayedPaymentKeyDecodeErrorZ), "LDKCResult_DelayedPaymentKeyDecodeErrorZ"); + *ret_conv = DelayedPaymentKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_HtlcBasepoint_free(int64_t this_obj) { + LDKHtlcBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + HtlcBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_HtlcBasepoint_get_a(int64_t this_ptr) { + LDKHtlcBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_HtlcBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKHtlcBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + HtlcBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_HtlcBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKHtlcBasepoint ret_var = HtlcBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_HtlcBasepoint_eq(int64_t a, int64_t b) { + LDKHtlcBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKHtlcBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = HtlcBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t HtlcBasepoint_clone_ptr(LDKHtlcBasepoint *NONNULL_PTR arg) { + LDKHtlcBasepoint ret_var = HtlcBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_HtlcBasepoint_clone_ptr(int64_t arg) { + LDKHtlcBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = HtlcBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_HtlcBasepoint_clone(int64_t orig) { + LDKHtlcBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKHtlcBasepoint ret_var = HtlcBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcBasepoint_hash(int64_t o) { + LDKHtlcBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = HtlcBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_HtlcBasepoint_to_public_key(int64_t this_arg) { + LDKHtlcBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_HtlcBasepoint_write(int64_t obj) { + LDKHtlcBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = HtlcBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_HtlcBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_HtlcBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcBasepointDecodeErrorZ), "LDKCResult_HtlcBasepointDecodeErrorZ"); + *ret_conv = HtlcBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_HtlcKey_free(int64_t this_obj) { + LDKHtlcKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + HtlcKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_HtlcKey_get_a(int64_t this_ptr) { + LDKHtlcKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_HtlcKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKHtlcKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + HtlcKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_HtlcKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKHtlcKey ret_var = HtlcKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_HtlcKey_eq(int64_t a, int64_t b) { + LDKHtlcKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKHtlcKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = HtlcKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t HtlcKey_clone_ptr(LDKHtlcKey *NONNULL_PTR arg) { + LDKHtlcKey ret_var = HtlcKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_HtlcKey_clone_ptr(int64_t arg) { + LDKHtlcKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = HtlcKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_HtlcKey_clone(int64_t orig) { + LDKHtlcKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKHtlcKey ret_var = HtlcKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKHtlcBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKHtlcKey ret_var = HtlcKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_HtlcKey_from_secret_key(int8_tArray sk) { + uint8_t sk_arr[32]; + CHECK(sk->arr_len == 32); + memcpy(sk_arr, sk->elems, 32); FREE(sk); + uint8_t (*sk_ref)[32] = &sk_arr; + LDKHtlcKey ret_var = HtlcKey_from_secret_key(sk_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_HtlcKey_to_public_key(int64_t this_arg) { + LDKHtlcKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, HtlcKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_HtlcKey_write(int64_t obj) { + LDKHtlcKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = HtlcKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_HtlcKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_HtlcKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_HtlcKeyDecodeErrorZ), "LDKCResult_HtlcKeyDecodeErrorZ"); + *ret_conv = HtlcKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_RevocationBasepoint_free(int64_t this_obj) { + LDKRevocationBasepoint this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + RevocationBasepoint_free(this_obj_conv); +} + +int8_tArray CS_LDK_RevocationBasepoint_get_a(int64_t this_ptr) { + LDKRevocationBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationBasepoint_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_RevocationBasepoint_set_a(int64_t this_ptr, int8_tArray val) { + LDKRevocationBasepoint this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + RevocationBasepoint_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_RevocationBasepoint_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKRevocationBasepoint ret_var = RevocationBasepoint_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_RevocationBasepoint_eq(int64_t a, int64_t b) { + LDKRevocationBasepoint a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKRevocationBasepoint b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = RevocationBasepoint_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t RevocationBasepoint_clone_ptr(LDKRevocationBasepoint *NONNULL_PTR arg) { + LDKRevocationBasepoint ret_var = RevocationBasepoint_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_RevocationBasepoint_clone_ptr(int64_t arg) { + LDKRevocationBasepoint arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = RevocationBasepoint_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationBasepoint_clone(int64_t orig) { + LDKRevocationBasepoint orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKRevocationBasepoint ret_var = RevocationBasepoint_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_RevocationBasepoint_hash(int64_t o) { + LDKRevocationBasepoint o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevocationBasepoint_hash(&o_conv); + return ret_conv; +} + +int8_tArray CS_LDK_RevocationBasepoint_to_public_key(int64_t this_arg) { + LDKRevocationBasepoint this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationBasepoint_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_RevocationBasepoint_write(int64_t obj) { + LDKRevocationBasepoint obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = RevocationBasepoint_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_RevocationBasepoint_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_RevocationBasepointDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationBasepointDecodeErrorZ), "LDKCResult_RevocationBasepointDecodeErrorZ"); + *ret_conv = RevocationBasepoint_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_RevocationKey_free(int64_t this_obj) { + LDKRevocationKey this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + RevocationKey_free(this_obj_conv); +} + +int8_tArray CS_LDK_RevocationKey_get_a(int64_t this_ptr) { + LDKRevocationKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationKey_get_a(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_RevocationKey_set_a(int64_t this_ptr, int8_tArray val) { + LDKRevocationKey this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + RevocationKey_set_a(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_RevocationKey_new(int8_tArray a_arg) { + LDKPublicKey a_arg_ref; + CHECK(a_arg->arr_len == 33); + memcpy(a_arg_ref.compressed_form, a_arg->elems, 33); FREE(a_arg); + LDKRevocationKey ret_var = RevocationKey_new(a_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_RevocationKey_eq(int64_t a, int64_t b) { + LDKRevocationKey a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKRevocationKey b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = RevocationKey_eq(&a_conv, &b_conv); + return ret_conv; +} + +static inline uint64_t RevocationKey_clone_ptr(LDKRevocationKey *NONNULL_PTR arg) { + LDKRevocationKey ret_var = RevocationKey_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_RevocationKey_clone_ptr(int64_t arg) { + LDKRevocationKey arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = RevocationKey_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationKey_clone(int64_t orig) { + LDKRevocationKey orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKRevocationKey ret_var = RevocationKey_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_RevocationKey_hash(int64_t o) { + LDKRevocationKey o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevocationKey_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_RevocationKey_from_basepoint(int64_t countersignatory_basepoint, int8_tArray per_commitment_point) { + LDKRevocationBasepoint countersignatory_basepoint_conv; + countersignatory_basepoint_conv.inner = untag_ptr(countersignatory_basepoint); + countersignatory_basepoint_conv.is_owned = ptr_is_owned(countersignatory_basepoint); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_basepoint_conv); + countersignatory_basepoint_conv.is_owned = false; + LDKPublicKey per_commitment_point_ref; + CHECK(per_commitment_point->arr_len == 33); + memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); + LDKRevocationKey ret_var = RevocationKey_from_basepoint(&countersignatory_basepoint_conv, per_commitment_point_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_RevocationKey_to_public_key(int64_t this_arg) { + LDKRevocationKey this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, RevocationKey_to_public_key(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + +int8_tArray CS_LDK_RevocationKey_write(int64_t obj) { + LDKRevocationKey obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = RevocationKey_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_RevocationKey_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_RevocationKeyDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RevocationKeyDecodeErrorZ), "LDKCResult_RevocationKeyDecodeErrorZ"); + *ret_conv = RevocationKey_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + void CS_LDK_ExpandedKey_free(int64_t this_obj) { LDKExpandedKey this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -37216,6 +41003,12 @@ int64_t CS_LDK_DecodeError_unsupported_compression() { return ret_ref; } +int64_t CS_LDK_DecodeError_hash(int64_t o) { + LDKDecodeError* o_conv = (LDKDecodeError*)untag_ptr(o); + int64_t ret_conv = DecodeError_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_DecodeError_eq(int64_t a, int64_t b) { LDKDecodeError* a_conv = (LDKDecodeError*)untag_ptr(a); LDKDecodeError* b_conv = (LDKDecodeError*)untag_ptr(b); @@ -37358,6 +41151,16 @@ int64_t CS_LDK_Init_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Init_hash(int64_t o) { + LDKInit o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Init_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Init_eq(int64_t a, int64_t b) { LDKInit a_conv; a_conv.inner = untag_ptr(a); @@ -37468,6 +41271,16 @@ int64_t CS_LDK_ErrorMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ErrorMessage_hash(int64_t o) { + LDKErrorMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ErrorMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ErrorMessage_eq(int64_t a, int64_t b) { LDKErrorMessage a_conv; a_conv.inner = untag_ptr(a); @@ -37578,6 +41391,16 @@ int64_t CS_LDK_WarningMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_WarningMessage_hash(int64_t o) { + LDKWarningMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = WarningMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_WarningMessage_eq(int64_t a, int64_t b) { LDKWarningMessage a_conv; a_conv.inner = untag_ptr(a); @@ -37677,6 +41500,16 @@ int64_t CS_LDK_Ping_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Ping_hash(int64_t o) { + LDKPing o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Ping_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Ping_eq(int64_t a, int64_t b) { LDKPing a_conv; a_conv.inner = untag_ptr(a); @@ -37757,6 +41590,16 @@ int64_t CS_LDK_Pong_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Pong_hash(int64_t o) { + LDKPong o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Pong_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Pong_eq(int64_t a, int64_t b) { LDKPong a_conv; a_conv.inner = untag_ptr(a); @@ -38277,6 +42120,16 @@ int64_t CS_LDK_OpenChannel_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OpenChannel_hash(int64_t o) { + LDKOpenChannel o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OpenChannel_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OpenChannel_eq(int64_t a, int64_t b) { LDKOpenChannel a_conv; a_conv.inner = untag_ptr(a); @@ -38844,6 +42697,16 @@ int64_t CS_LDK_OpenChannelV2_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OpenChannelV2_hash(int64_t o) { + LDKOpenChannelV2 o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OpenChannelV2_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OpenChannelV2_eq(int64_t a, int64_t b) { LDKOpenChannelV2 a_conv; a_conv.inner = untag_ptr(a); @@ -39281,6 +43144,16 @@ int64_t CS_LDK_AcceptChannel_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AcceptChannel_hash(int64_t o) { + LDKAcceptChannel o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AcceptChannel_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AcceptChannel_eq(int64_t a, int64_t b) { LDKAcceptChannel a_conv; a_conv.inner = untag_ptr(a); @@ -39765,6 +43638,16 @@ int64_t CS_LDK_AcceptChannelV2_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AcceptChannelV2_hash(int64_t o) { + LDKAcceptChannelV2 o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AcceptChannelV2_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AcceptChannelV2_eq(int64_t a, int64_t b) { LDKAcceptChannelV2 a_conv; a_conv.inner = untag_ptr(a); @@ -39923,6 +43806,16 @@ int64_t CS_LDK_FundingCreated_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_FundingCreated_hash(int64_t o) { + LDKFundingCreated o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = FundingCreated_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_FundingCreated_eq(int64_t a, int64_t b) { LDKFundingCreated a_conv; a_conv.inner = untag_ptr(a); @@ -40036,6 +43929,16 @@ int64_t CS_LDK_FundingSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_FundingSigned_hash(int64_t o) { + LDKFundingSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = FundingSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_FundingSigned_eq(int64_t a, int64_t b) { LDKFundingSigned a_conv; a_conv.inner = untag_ptr(a); @@ -40178,6 +44081,16 @@ int64_t CS_LDK_ChannelReady_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelReady_hash(int64_t o) { + LDKChannelReady o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelReady_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelReady_eq(int64_t a, int64_t b) { LDKChannelReady a_conv; a_conv.inner = untag_ptr(a); @@ -40193,6 +44106,553 @@ jboolean CS_LDK_ChannelReady_eq(int64_t a, int64_t b) { return ret_conv; } +void CS_LDK_Stfu_free(int64_t this_obj) { + LDKStfu this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + Stfu_free(this_obj_conv); +} + +int8_tArray CS_LDK_Stfu_get_channel_id(int64_t this_ptr) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Stfu_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Stfu_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Stfu_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_t CS_LDK_Stfu_get_initiator(int64_t this_ptr) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_t ret_conv = Stfu_get_initiator(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Stfu_set_initiator(int64_t this_ptr, int8_t val) { + LDKStfu this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Stfu_set_initiator(&this_ptr_conv, val); +} + +int64_t CS_LDK_Stfu_new(int8_tArray channel_id_arg, int8_t initiator_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKStfu ret_var = Stfu_new(channel_id_arg_ref, initiator_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t Stfu_clone_ptr(LDKStfu *NONNULL_PTR arg) { + LDKStfu ret_var = Stfu_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_Stfu_clone_ptr(int64_t arg) { + LDKStfu arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = Stfu_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_Stfu_clone(int64_t orig) { + LDKStfu orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKStfu ret_var = Stfu_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_Stfu_eq(int64_t a, int64_t b) { + LDKStfu a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKStfu b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = Stfu_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_Splice_free(int64_t this_obj) { + LDKSplice this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + Splice_free(this_obj_conv); +} + +int8_tArray CS_LDK_Splice_get_channel_id(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Splice_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Splice_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Splice_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_Splice_get_chain_hash(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *Splice_get_chain_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_Splice_set_chain_hash(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + Splice_set_chain_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Splice_get_relative_satoshis(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = Splice_get_relative_satoshis(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_relative_satoshis(int64_t this_ptr, int64_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_relative_satoshis(&this_ptr_conv, val); +} + +int32_t CS_LDK_Splice_get_funding_feerate_perkw(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = Splice_get_funding_feerate_perkw(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_funding_feerate_perkw(int64_t this_ptr, int32_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_funding_feerate_perkw(&this_ptr_conv, val); +} + +int32_t CS_LDK_Splice_get_locktime(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int32_t ret_conv = Splice_get_locktime(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_Splice_set_locktime(int64_t this_ptr, int32_t val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + Splice_set_locktime(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_Splice_get_funding_pubkey(int64_t this_ptr) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, Splice_get_funding_pubkey(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_Splice_set_funding_pubkey(int64_t this_ptr, int8_tArray val) { + LDKSplice this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + Splice_set_funding_pubkey(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_Splice_new(int8_tArray channel_id_arg, int8_tArray chain_hash_arg, int64_t relative_satoshis_arg, int32_t funding_feerate_perkw_arg, int32_t locktime_arg, int8_tArray funding_pubkey_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes chain_hash_arg_ref; + CHECK(chain_hash_arg->arr_len == 32); + memcpy(chain_hash_arg_ref.data, chain_hash_arg->elems, 32); FREE(chain_hash_arg); + LDKPublicKey funding_pubkey_arg_ref; + CHECK(funding_pubkey_arg->arr_len == 33); + memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); + LDKSplice ret_var = Splice_new(channel_id_arg_ref, chain_hash_arg_ref, relative_satoshis_arg, funding_feerate_perkw_arg, locktime_arg, funding_pubkey_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t Splice_clone_ptr(LDKSplice *NONNULL_PTR arg) { + LDKSplice ret_var = Splice_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_Splice_clone_ptr(int64_t arg) { + LDKSplice arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = Splice_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_Splice_clone(int64_t orig) { + LDKSplice orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSplice ret_var = Splice_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_Splice_eq(int64_t a, int64_t b) { + LDKSplice a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSplice b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = Splice_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_SpliceAck_free(int64_t this_obj) { + LDKSpliceAck this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + SpliceAck_free(this_obj_conv); +} + +int8_tArray CS_LDK_SpliceAck_get_channel_id(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceAck_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceAck_set_channel_id(&this_ptr_conv, val_ref); +} + +int8_tArray CS_LDK_SpliceAck_get_chain_hash(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceAck_get_chain_hash(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_chain_hash(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceAck_set_chain_hash(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceAck_get_relative_satoshis(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = SpliceAck_get_relative_satoshis(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_SpliceAck_set_relative_satoshis(int64_t this_ptr, int64_t val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + SpliceAck_set_relative_satoshis(&this_ptr_conv, val); +} + +int8_tArray CS_LDK_SpliceAck_get_funding_pubkey(int64_t this_ptr) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, SpliceAck_get_funding_pubkey(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_SpliceAck_set_funding_pubkey(int64_t this_ptr, int8_tArray val) { + LDKSpliceAck this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + SpliceAck_set_funding_pubkey(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceAck_new(int8_tArray channel_id_arg, int8_tArray chain_hash_arg, int64_t relative_satoshis_arg, int8_tArray funding_pubkey_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes chain_hash_arg_ref; + CHECK(chain_hash_arg->arr_len == 32); + memcpy(chain_hash_arg_ref.data, chain_hash_arg->elems, 32); FREE(chain_hash_arg); + LDKPublicKey funding_pubkey_arg_ref; + CHECK(funding_pubkey_arg->arr_len == 33); + memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); + LDKSpliceAck ret_var = SpliceAck_new(channel_id_arg_ref, chain_hash_arg_ref, relative_satoshis_arg, funding_pubkey_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t SpliceAck_clone_ptr(LDKSpliceAck *NONNULL_PTR arg) { + LDKSpliceAck ret_var = SpliceAck_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_SpliceAck_clone_ptr(int64_t arg) { + LDKSpliceAck arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = SpliceAck_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SpliceAck_clone(int64_t orig) { + LDKSpliceAck orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSpliceAck ret_var = SpliceAck_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_SpliceAck_eq(int64_t a, int64_t b) { + LDKSpliceAck a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSpliceAck b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = SpliceAck_eq(&a_conv, &b_conv); + return ret_conv; +} + +void CS_LDK_SpliceLocked_free(int64_t this_obj) { + LDKSpliceLocked this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + SpliceLocked_free(this_obj_conv); +} + +int8_tArray CS_LDK_SpliceLocked_get_channel_id(int64_t this_ptr) { + LDKSpliceLocked this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *SpliceLocked_get_channel_id(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_SpliceLocked_set_channel_id(int64_t this_ptr, int8_tArray val) { + LDKSpliceLocked this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + SpliceLocked_set_channel_id(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_SpliceLocked_new(int8_tArray channel_id_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKSpliceLocked ret_var = SpliceLocked_new(channel_id_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t SpliceLocked_clone_ptr(LDKSpliceLocked *NONNULL_PTR arg) { + LDKSpliceLocked ret_var = SpliceLocked_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_SpliceLocked_clone_ptr(int64_t arg) { + LDKSpliceLocked arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = SpliceLocked_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SpliceLocked_clone(int64_t orig) { + LDKSpliceLocked orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKSpliceLocked ret_var = SpliceLocked_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jboolean CS_LDK_SpliceLocked_eq(int64_t a, int64_t b) { + LDKSpliceLocked a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKSpliceLocked b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = SpliceLocked_eq(&a_conv, &b_conv); + return ret_conv; +} + void CS_LDK_TxAddInput_free(int64_t this_obj) { LDKTxAddInput this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -40354,6 +44814,16 @@ int64_t CS_LDK_TxAddInput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAddInput_hash(int64_t o) { + LDKTxAddInput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAddInput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAddInput_eq(int64_t a, int64_t b) { LDKTxAddInput a_conv; a_conv.inner = untag_ptr(a); @@ -40444,9 +44914,10 @@ int8_tArray CS_LDK_TxAddOutput_get_script(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = TxAddOutput_get_script(&this_ptr_conv); + LDKCVec_u8Z ret_var = TxAddOutput_get_script(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -40508,6 +44979,16 @@ int64_t CS_LDK_TxAddOutput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAddOutput_hash(int64_t o) { + LDKTxAddOutput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAddOutput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAddOutput_eq(int64_t a, int64_t b) { LDKTxAddOutput a_conv; a_conv.inner = untag_ptr(a); @@ -40614,6 +45095,16 @@ int64_t CS_LDK_TxRemoveInput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxRemoveInput_hash(int64_t o) { + LDKTxRemoveInput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxRemoveInput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxRemoveInput_eq(int64_t a, int64_t b) { LDKTxRemoveInput a_conv; a_conv.inner = untag_ptr(a); @@ -40720,6 +45211,16 @@ int64_t CS_LDK_TxRemoveOutput_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxRemoveOutput_hash(int64_t o) { + LDKTxRemoveOutput o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxRemoveOutput_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxRemoveOutput_eq(int64_t a, int64_t b) { LDKTxRemoveOutput a_conv; a_conv.inner = untag_ptr(a); @@ -40807,6 +45308,16 @@ int64_t CS_LDK_TxComplete_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxComplete_hash(int64_t o) { + LDKTxComplete o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxComplete_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxComplete_eq(int64_t a, int64_t b) { LDKTxComplete a_conv; a_conv.inner = untag_ptr(a); @@ -40985,6 +45496,16 @@ int64_t CS_LDK_TxSignatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxSignatures_hash(int64_t o) { + LDKTxSignatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxSignatures_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxSignatures_eq(int64_t a, int64_t b) { LDKTxSignatures a_conv; a_conv.inner = untag_ptr(a); @@ -41139,6 +45660,16 @@ int64_t CS_LDK_TxInitRbf_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxInitRbf_hash(int64_t o) { + LDKTxInitRbf o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxInitRbf_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxInitRbf_eq(int64_t a, int64_t b) { LDKTxInitRbf a_conv; a_conv.inner = untag_ptr(a); @@ -41255,6 +45786,16 @@ int64_t CS_LDK_TxAckRbf_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAckRbf_hash(int64_t o) { + LDKTxAckRbf o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAckRbf_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAckRbf_eq(int64_t a, int64_t b) { LDKTxAckRbf a_conv; a_conv.inner = untag_ptr(a); @@ -41372,6 +45913,16 @@ int64_t CS_LDK_TxAbort_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_TxAbort_hash(int64_t o) { + LDKTxAbort o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = TxAbort_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_TxAbort_eq(int64_t a, int64_t b) { LDKTxAbort a_conv; a_conv.inner = untag_ptr(a); @@ -41424,9 +45975,10 @@ int8_tArray CS_LDK_Shutdown_get_scriptpubkey(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = Shutdown_get_scriptpubkey(&this_ptr_conv); + LDKCVec_u8Z ret_var = Shutdown_get_scriptpubkey(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -41488,6 +46040,16 @@ int64_t CS_LDK_Shutdown_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Shutdown_hash(int64_t o) { + LDKShutdown o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Shutdown_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Shutdown_eq(int64_t a, int64_t b) { LDKShutdown a_conv; a_conv.inner = untag_ptr(a); @@ -41587,6 +46149,16 @@ int64_t CS_LDK_ClosingSignedFeeRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ClosingSignedFeeRange_hash(int64_t o) { + LDKClosingSignedFeeRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ClosingSignedFeeRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ClosingSignedFeeRange_eq(int64_t a, int64_t b) { LDKClosingSignedFeeRange a_conv; a_conv.inner = untag_ptr(a); @@ -41751,6 +46323,16 @@ int64_t CS_LDK_ClosingSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ClosingSigned_hash(int64_t o) { + LDKClosingSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ClosingSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ClosingSigned_eq(int64_t a, int64_t b) { LDKClosingSigned a_conv; a_conv.inner = untag_ptr(a); @@ -41902,6 +46484,82 @@ void CS_LDK_UpdateAddHTLC_set_skimmed_fee_msat(int64_t this_ptr, int64_t val) { UpdateAddHTLC_set_skimmed_fee_msat(&this_ptr_conv, val_conv); } +int64_t CS_LDK_UpdateAddHTLC_get_onion_routing_packet(int64_t this_ptr) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKOnionPacket ret_var = UpdateAddHTLC_get_onion_routing_packet(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_UpdateAddHTLC_set_onion_routing_packet(int64_t this_ptr, int64_t val) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKOnionPacket val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = OnionPacket_clone(&val_conv); + UpdateAddHTLC_set_onion_routing_packet(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_UpdateAddHTLC_get_blinding_point(int64_t this_ptr) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, UpdateAddHTLC_get_blinding_point(&this_ptr_conv).compressed_form, 33); + return ret_arr; +} + +void CS_LDK_UpdateAddHTLC_set_blinding_point(int64_t this_ptr, int8_tArray val) { + LDKUpdateAddHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKPublicKey val_ref; + CHECK(val->arr_len == 33); + memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); + UpdateAddHTLC_set_blinding_point(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_UpdateAddHTLC_new(int8_tArray channel_id_arg, int64_t htlc_id_arg, int64_t amount_msat_arg, int8_tArray payment_hash_arg, int32_t cltv_expiry_arg, int64_t skimmed_fee_msat_arg, int64_t onion_routing_packet_arg, int8_tArray blinding_point_arg) { + LDKThirtyTwoBytes channel_id_arg_ref; + CHECK(channel_id_arg->arr_len == 32); + memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); + LDKThirtyTwoBytes payment_hash_arg_ref; + CHECK(payment_hash_arg->arr_len == 32); + memcpy(payment_hash_arg_ref.data, payment_hash_arg->elems, 32); FREE(payment_hash_arg); + void* skimmed_fee_msat_arg_ptr = untag_ptr(skimmed_fee_msat_arg); + CHECK_ACCESS(skimmed_fee_msat_arg_ptr); + LDKCOption_u64Z skimmed_fee_msat_arg_conv = *(LDKCOption_u64Z*)(skimmed_fee_msat_arg_ptr); + skimmed_fee_msat_arg_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(skimmed_fee_msat_arg)); + LDKOnionPacket onion_routing_packet_arg_conv; + onion_routing_packet_arg_conv.inner = untag_ptr(onion_routing_packet_arg); + onion_routing_packet_arg_conv.is_owned = ptr_is_owned(onion_routing_packet_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(onion_routing_packet_arg_conv); + onion_routing_packet_arg_conv = OnionPacket_clone(&onion_routing_packet_arg_conv); + LDKPublicKey blinding_point_arg_ref; + CHECK(blinding_point_arg->arr_len == 33); + memcpy(blinding_point_arg_ref.compressed_form, blinding_point_arg->elems, 33); FREE(blinding_point_arg); + LDKUpdateAddHTLC ret_var = UpdateAddHTLC_new(channel_id_arg_ref, htlc_id_arg, amount_msat_arg, payment_hash_arg_ref, cltv_expiry_arg, skimmed_fee_msat_arg_conv, onion_routing_packet_arg_conv, blinding_point_arg_ref); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + static inline uint64_t UpdateAddHTLC_clone_ptr(LDKUpdateAddHTLC *NONNULL_PTR arg) { LDKUpdateAddHTLC ret_var = UpdateAddHTLC_clone(arg); int64_t ret_ref = 0; @@ -41932,6 +46590,16 @@ int64_t CS_LDK_UpdateAddHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateAddHTLC_hash(int64_t o) { + LDKUpdateAddHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateAddHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateAddHTLC_eq(int64_t a, int64_t b) { LDKUpdateAddHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42051,6 +46719,16 @@ int64_t CS_LDK_OnionMessage_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_OnionMessage_hash(int64_t o) { + LDKOnionMessage o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OnionMessage_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_OnionMessage_eq(int64_t a, int64_t b) { LDKOnionMessage a_conv; a_conv.inner = untag_ptr(a); @@ -42183,6 +46861,16 @@ int64_t CS_LDK_UpdateFulfillHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFulfillHTLC_hash(int64_t o) { + LDKUpdateFulfillHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFulfillHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFulfillHTLC_eq(int64_t a, int64_t b) { LDKUpdateFulfillHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42278,6 +46966,16 @@ int64_t CS_LDK_UpdateFailHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFailHTLC_hash(int64_t o) { + LDKUpdateFailHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFailHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFailHTLC_eq(int64_t a, int64_t b) { LDKUpdateFailHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42392,6 +47090,16 @@ int64_t CS_LDK_UpdateFailMalformedHTLC_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFailMalformedHTLC_hash(int64_t o) { + LDKUpdateFailMalformedHTLC o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFailMalformedHTLC_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFailMalformedHTLC_eq(int64_t a, int64_t b) { LDKUpdateFailMalformedHTLC a_conv; a_conv.inner = untag_ptr(a); @@ -42564,6 +47272,16 @@ int64_t CS_LDK_CommitmentSigned_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CommitmentSigned_hash(int64_t o) { + LDKCommitmentSigned o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = CommitmentSigned_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_CommitmentSigned_eq(int64_t a, int64_t b) { LDKCommitmentSigned a_conv; a_conv.inner = untag_ptr(a); @@ -42703,6 +47421,16 @@ int64_t CS_LDK_RevokeAndACK_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_RevokeAndACK_hash(int64_t o) { + LDKRevokeAndACK o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = RevokeAndACK_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_RevokeAndACK_eq(int64_t a, int64_t b) { LDKRevokeAndACK a_conv; a_conv.inner = untag_ptr(a); @@ -42809,6 +47537,16 @@ int64_t CS_LDK_UpdateFee_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UpdateFee_hash(int64_t o) { + LDKUpdateFee o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UpdateFee_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UpdateFee_eq(int64_t a, int64_t b) { LDKUpdateFee a_conv; a_conv.inner = untag_ptr(a); @@ -43015,6 +47753,16 @@ int64_t CS_LDK_ChannelReestablish_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelReestablish_hash(int64_t o) { + LDKChannelReestablish o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelReestablish_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelReestablish_eq(int64_t a, int64_t b) { LDKChannelReestablish a_conv; a_conv.inner = untag_ptr(a); @@ -43173,6 +47921,16 @@ int64_t CS_LDK_AnnouncementSignatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_AnnouncementSignatures_hash(int64_t o) { + LDKAnnouncementSignatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = AnnouncementSignatures_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_AnnouncementSignatures_eq(int64_t a, int64_t b) { LDKAnnouncementSignatures a_conv; a_conv.inner = untag_ptr(a); @@ -43269,6 +48027,12 @@ int64_t CS_LDK_SocketAddress_hostname(int64_t hostname, int16_t port) { return ret_ref; } +int64_t CS_LDK_SocketAddress_hash(int64_t o) { + LDKSocketAddress* o_conv = (LDKSocketAddress*)untag_ptr(o); + int64_t ret_conv = SocketAddress_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_SocketAddress_eq(int64_t a, int64_t b) { LDKSocketAddress* a_conv = (LDKSocketAddress*)untag_ptr(a); LDKSocketAddress* b_conv = (LDKSocketAddress*)untag_ptr(b); @@ -43321,6 +48085,12 @@ int32_t CS_LDK_SocketAddressParseError_invalid_onion_v3() { return ret_conv; } +int64_t CS_LDK_SocketAddressParseError_hash(int64_t o) { + LDKSocketAddressParseError* o_conv = (LDKSocketAddressParseError*)untag_ptr(o); + int64_t ret_conv = SocketAddressParseError_hash(o_conv); + return ret_conv; +} + jboolean CS_LDK_SocketAddressParseError_eq(int64_t a, int64_t b) { LDKSocketAddressParseError* a_conv = (LDKSocketAddressParseError*)untag_ptr(a); LDKSocketAddressParseError* b_conv = (LDKSocketAddressParseError*)untag_ptr(b); @@ -43631,6 +48401,16 @@ int64_t CS_LDK_UnsignedNodeAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedNodeAnnouncement_hash(int64_t o) { + LDKUnsignedNodeAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedNodeAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedNodeAnnouncement_eq(int64_t a, int64_t b) { LDKUnsignedNodeAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -43750,6 +48530,16 @@ int64_t CS_LDK_NodeAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_NodeAnnouncement_hash(int64_t o) { + LDKNodeAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_NodeAnnouncement_eq(int64_t a, int64_t b) { LDKNodeAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44046,6 +48836,16 @@ int64_t CS_LDK_UnsignedChannelAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedChannelAnnouncement_hash(int64_t o) { + LDKUnsignedChannelAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedChannelAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedChannelAnnouncement_eq(int64_t a, int64_t b) { LDKUnsignedChannelAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44243,6 +49043,16 @@ int64_t CS_LDK_ChannelAnnouncement_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelAnnouncement_hash(int64_t o) { + LDKChannelAnnouncement o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelAnnouncement_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelAnnouncement_eq(int64_t a, int64_t b) { LDKChannelAnnouncement a_conv; a_conv.inner = untag_ptr(a); @@ -44512,6 +49322,16 @@ int64_t CS_LDK_UnsignedChannelUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_UnsignedChannelUpdate_hash(int64_t o) { + LDKUnsignedChannelUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = UnsignedChannelUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_UnsignedChannelUpdate_eq(int64_t a, int64_t b) { LDKUnsignedChannelUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -44631,6 +49451,16 @@ int64_t CS_LDK_ChannelUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ChannelUpdate_hash(int64_t o) { + LDKChannelUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ChannelUpdate_eq(int64_t a, int64_t b) { LDKChannelUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -44756,6 +49586,16 @@ int64_t CS_LDK_QueryChannelRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_QueryChannelRange_hash(int64_t o) { + LDKQueryChannelRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = QueryChannelRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_QueryChannelRange_eq(int64_t a, int64_t b) { LDKQueryChannelRange a_conv; a_conv.inner = untag_ptr(a); @@ -44952,6 +49792,16 @@ int64_t CS_LDK_ReplyChannelRange_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ReplyChannelRange_hash(int64_t o) { + LDKReplyChannelRange o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ReplyChannelRange_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ReplyChannelRange_eq(int64_t a, int64_t b) { LDKReplyChannelRange a_conv; a_conv.inner = untag_ptr(a); @@ -45091,6 +49941,16 @@ int64_t CS_LDK_QueryShortChannelIds_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_QueryShortChannelIds_hash(int64_t o) { + LDKQueryShortChannelIds o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = QueryShortChannelIds_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_QueryShortChannelIds_eq(int64_t a, int64_t b) { LDKQueryShortChannelIds a_conv; a_conv.inner = untag_ptr(a); @@ -45197,6 +50057,16 @@ int64_t CS_LDK_ReplyShortChannelIdsEnd_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_ReplyShortChannelIdsEnd_hash(int64_t o) { + LDKReplyShortChannelIdsEnd o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ReplyShortChannelIdsEnd_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_ReplyShortChannelIdsEnd_eq(int64_t a, int64_t b) { LDKReplyShortChannelIdsEnd a_conv; a_conv.inner = untag_ptr(a); @@ -45322,6 +50192,16 @@ int64_t CS_LDK_GossipTimestampFilter_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_GossipTimestampFilter_hash(int64_t o) { + LDKGossipTimestampFilter o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = GossipTimestampFilter_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_GossipTimestampFilter_eq(int64_t a, int64_t b) { LDKGossipTimestampFilter a_conv; a_conv.inner = untag_ptr(a); @@ -45437,6 +50317,12 @@ int64_t CS_LDK_ErrorAction_send_warning_message(int64_t msg, int32_t log_level) return ret_ref; } +int64_t CS_LDK_ErrorAction_hash(int64_t o) { + LDKErrorAction* o_conv = (LDKErrorAction*)untag_ptr(o); + int64_t ret_conv = ErrorAction_hash(o_conv); + return ret_conv; +} + void CS_LDK_LightningError_free(int64_t this_obj) { LDKLightningError this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -45905,6 +50791,16 @@ int64_t CS_LDK_CommitmentUpdate_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_CommitmentUpdate_hash(int64_t o) { + LDKCommitmentUpdate o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = CommitmentUpdate_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_CommitmentUpdate_eq(int64_t a, int64_t b) { LDKCommitmentUpdate a_conv; a_conv.inner = untag_ptr(a); @@ -45947,6 +50843,226 @@ void CS_LDK_OnionMessageHandler_free(int64_t this_ptr) { OnionMessageHandler_free(this_ptr_conv); } +void CS_LDK_FinalOnionHopData_free(int64_t this_obj) { + LDKFinalOnionHopData this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + FinalOnionHopData_free(this_obj_conv); +} + +int8_tArray CS_LDK_FinalOnionHopData_get_payment_secret(int64_t this_ptr) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *FinalOnionHopData_get_payment_secret(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_FinalOnionHopData_set_payment_secret(int64_t this_ptr, int8_tArray val) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + FinalOnionHopData_set_payment_secret(&this_ptr_conv, val_ref); +} + +int64_t CS_LDK_FinalOnionHopData_get_total_msat(int64_t this_ptr) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = FinalOnionHopData_get_total_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_FinalOnionHopData_set_total_msat(int64_t this_ptr, int64_t val) { + LDKFinalOnionHopData this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + FinalOnionHopData_set_total_msat(&this_ptr_conv, val); +} + +int64_t CS_LDK_FinalOnionHopData_new(int8_tArray payment_secret_arg, int64_t total_msat_arg) { + LDKThirtyTwoBytes payment_secret_arg_ref; + CHECK(payment_secret_arg->arr_len == 32); + memcpy(payment_secret_arg_ref.data, payment_secret_arg->elems, 32); FREE(payment_secret_arg); + LDKFinalOnionHopData ret_var = FinalOnionHopData_new(payment_secret_arg_ref, total_msat_arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +static inline uint64_t FinalOnionHopData_clone_ptr(LDKFinalOnionHopData *NONNULL_PTR arg) { + LDKFinalOnionHopData ret_var = FinalOnionHopData_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_FinalOnionHopData_clone_ptr(int64_t arg) { + LDKFinalOnionHopData arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = FinalOnionHopData_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_FinalOnionHopData_clone(int64_t orig) { + LDKFinalOnionHopData orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKFinalOnionHopData ret_var = FinalOnionHopData_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_OnionPacket_free(int64_t this_obj) { + LDKOnionPacket this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + OnionPacket_free(this_obj_conv); +} + +int8_t CS_LDK_OnionPacket_get_version(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_t ret_conv = OnionPacket_get_version(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_OnionPacket_set_version(int64_t this_ptr, int8_t val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + OnionPacket_set_version(&this_ptr_conv, val); +} + +int64_t CS_LDK_OnionPacket_get_public_key(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCResult_PublicKeySecp256k1ErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_PublicKeySecp256k1ErrorZ), "LDKCResult_PublicKeySecp256k1ErrorZ"); + *ret_conv = OnionPacket_get_public_key(&this_ptr_conv); + return tag_ptr(ret_conv, true); +} + +void CS_LDK_OnionPacket_set_public_key(int64_t this_ptr, int64_t val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCResult_PublicKeySecp256k1ErrorZ val_conv = *(LDKCResult_PublicKeySecp256k1ErrorZ*)(val_ptr); + val_conv = CResult_PublicKeySecp256k1ErrorZ_clone((LDKCResult_PublicKeySecp256k1ErrorZ*)untag_ptr(val)); + OnionPacket_set_public_key(&this_ptr_conv, val_conv); +} + +int8_tArray CS_LDK_OnionPacket_get_hmac(int64_t this_ptr) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *OnionPacket_get_hmac(&this_ptr_conv), 32); + return ret_arr; +} + +void CS_LDK_OnionPacket_set_hmac(int64_t this_ptr, int8_tArray val) { + LDKOnionPacket this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKThirtyTwoBytes val_ref; + CHECK(val->arr_len == 32); + memcpy(val_ref.data, val->elems, 32); FREE(val); + OnionPacket_set_hmac(&this_ptr_conv, val_ref); +} + +static inline uint64_t OnionPacket_clone_ptr(LDKOnionPacket *NONNULL_PTR arg) { + LDKOnionPacket ret_var = OnionPacket_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_OnionPacket_clone_ptr(int64_t arg) { + LDKOnionPacket arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = OnionPacket_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_OnionPacket_clone(int64_t orig) { + LDKOnionPacket orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKOnionPacket ret_var = OnionPacket_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_OnionPacket_hash(int64_t o) { + LDKOnionPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OnionPacket_hash(&o_conv); + return ret_conv; +} + +jboolean CS_LDK_OnionPacket_eq(int64_t a, int64_t b) { + LDKOnionPacket a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv.is_owned = false; + LDKOnionPacket b_conv; + b_conv.inner = untag_ptr(b); + b_conv.is_owned = ptr_is_owned(b); + CHECK_INNER_FIELD_ACCESS_OR_NULL(b_conv); + b_conv.is_owned = false; + jboolean ret_conv = OnionPacket_eq(&a_conv, &b_conv); + return ret_conv; +} + int8_tArray CS_LDK_AcceptChannel_write(int64_t obj) { LDKAcceptChannel obj_conv; obj_conv.inner = untag_ptr(obj); @@ -45993,6 +51109,98 @@ int64_t CS_LDK_AcceptChannelV2_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_Stfu_write(int64_t obj) { + LDKStfu obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = Stfu_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_Stfu_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_StfuDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_StfuDecodeErrorZ), "LDKCResult_StfuDecodeErrorZ"); + *ret_conv = Stfu_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_Splice_write(int64_t obj) { + LDKSplice obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = Splice_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_Splice_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceDecodeErrorZ), "LDKCResult_SpliceDecodeErrorZ"); + *ret_conv = Splice_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_SpliceAck_write(int64_t obj) { + LDKSpliceAck obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = SpliceAck_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_SpliceAck_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceAckDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceAckDecodeErrorZ), "LDKCResult_SpliceAckDecodeErrorZ"); + *ret_conv = SpliceAck_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + +int8_tArray CS_LDK_SpliceLocked_write(int64_t obj) { + LDKSpliceLocked obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = SpliceLocked_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_SpliceLocked_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_SpliceLockedDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SpliceLockedDecodeErrorZ), "LDKCResult_SpliceLockedDecodeErrorZ"); + *ret_conv = SpliceLocked_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_TxAddInput_write(int64_t obj) { LDKTxAddInput obj_conv; obj_conv.inner = untag_ptr(obj); @@ -46591,6 +51799,29 @@ int64_t CS_LDK_UpdateFulfillHTLC_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +int8_tArray CS_LDK_OnionPacket_write(int64_t obj) { + LDKOnionPacket obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = OnionPacket_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_OnionPacket_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_OnionPacketDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_OnionPacketDecodeErrorZ), "LDKCResult_OnionPacketDecodeErrorZ"); + *ret_conv = OnionPacket_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_UpdateAddHTLC_write(int64_t obj) { LDKUpdateAddHTLC obj_conv; obj_conv.inner = untag_ptr(obj); @@ -46637,6 +51868,29 @@ int8_tArray CS_LDK_OnionMessage_write(int64_t obj) { return ret_arr; } +int8_tArray CS_LDK_FinalOnionHopData_write(int64_t obj) { + LDKFinalOnionHopData obj_conv; + obj_conv.inner = untag_ptr(obj); + obj_conv.is_owned = ptr_is_owned(obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(obj_conv); + obj_conv.is_owned = false; + LDKCVec_u8Z ret_var = FinalOnionHopData_write(&obj_conv); + int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); + memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); + return ret_arr; +} + +int64_t CS_LDK_FinalOnionHopData_read(int8_tArray ser) { + LDKu8slice ser_ref; + ser_ref.datalen = ser->arr_len; + ser_ref.data = ser->elems; + LDKCResult_FinalOnionHopDataDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_FinalOnionHopDataDecodeErrorZ), "LDKCResult_FinalOnionHopDataDecodeErrorZ"); + *ret_conv = FinalOnionHopData_read(ser_ref); + FREE(ser); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_Ping_write(int64_t obj) { LDKPing obj_conv; obj_conv.inner = untag_ptr(obj); @@ -47017,6 +52271,17 @@ int64_t CS_LDK_IgnoringMessageHandler_new() { return ret_ref; } +int64_t CS_LDK_IgnoringMessageHandler_as_EventsProvider(int64_t this_arg) { + LDKIgnoringMessageHandler this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKEventsProvider* ret_ret = MALLOC(sizeof(LDKEventsProvider), "LDKEventsProvider"); + *ret_ret = IgnoringMessageHandler_as_EventsProvider(&this_arg_conv); + return tag_ptr(ret_ret, true); +} + int64_t CS_LDK_IgnoringMessageHandler_as_MessageSendEventsProvider(int64_t this_arg) { LDKIgnoringMessageHandler this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -47797,18 +53062,6 @@ int8_tArray CS_LDK_derive_private_key(int8_tArray per_commitment_point, int8_tA return ret_arr; } -int8_tArray CS_LDK_derive_public_key(int8_tArray per_commitment_point, int8_tArray base_point) { - LDKPublicKey per_commitment_point_ref; - CHECK(per_commitment_point->arr_len == 33); - memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey base_point_ref; - CHECK(base_point->arr_len == 33); - memcpy(base_point_ref.compressed_form, base_point->elems, 33); FREE(base_point); - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, derive_public_key(per_commitment_point_ref, base_point_ref).compressed_form, 33); - return ret_arr; -} - int8_tArray CS_LDK_derive_private_revocation_key(int8_tArray per_commitment_secret, int8_tArray countersignatory_revocation_base_secret) { uint8_t per_commitment_secret_arr[32]; CHECK(per_commitment_secret->arr_len == 32); @@ -47823,18 +53076,6 @@ int8_tArray CS_LDK_derive_private_revocation_key(int8_tArray per_commitment_sec return ret_arr; } -int8_tArray CS_LDK_derive_public_revocation_key(int8_tArray per_commitment_point, int8_tArray countersignatory_revocation_base_point) { - LDKPublicKey per_commitment_point_ref; - CHECK(per_commitment_point->arr_len == 33); - memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey countersignatory_revocation_base_point_ref; - CHECK(countersignatory_revocation_base_point->arr_len == 33); - memcpy(countersignatory_revocation_base_point_ref.compressed_form, countersignatory_revocation_base_point->elems, 33); FREE(countersignatory_revocation_base_point); - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, derive_public_revocation_key(per_commitment_point_ref, countersignatory_revocation_base_point_ref).compressed_form, 33); - return ret_arr; -} - void CS_LDK_TxCreationKeys_free(int64_t this_obj) { LDKTxCreationKeys this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -47866,115 +53107,139 @@ void CS_LDK_TxCreationKeys_set_per_commitment_point(int64_t this_ptr, int8_tArr TxCreationKeys_set_per_commitment_point(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_TxCreationKeys_get_revocation_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_revocation_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_revocation_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationKey ret_var = TxCreationKeys_get_revocation_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_revocation_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_revocation_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_revocation_key(&this_ptr_conv, val_ref); + LDKRevocationKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationKey_clone(&val_conv); + TxCreationKeys_set_revocation_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_broadcaster_htlc_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_broadcaster_htlc_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_broadcaster_htlc_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcKey ret_var = TxCreationKeys_get_broadcaster_htlc_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_broadcaster_htlc_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_broadcaster_htlc_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_broadcaster_htlc_key(&this_ptr_conv, val_ref); + LDKHtlcKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcKey_clone(&val_conv); + TxCreationKeys_set_broadcaster_htlc_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_countersignatory_htlc_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_countersignatory_htlc_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_countersignatory_htlc_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcKey ret_var = TxCreationKeys_get_countersignatory_htlc_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_countersignatory_htlc_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_countersignatory_htlc_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_countersignatory_htlc_key(&this_ptr_conv, val_ref); + LDKHtlcKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcKey_clone(&val_conv); + TxCreationKeys_set_countersignatory_htlc_key(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_TxCreationKeys_get_broadcaster_delayed_payment_key(int64_t this_ptr) { +int64_t CS_LDK_TxCreationKeys_get_broadcaster_delayed_payment_key(int64_t this_ptr) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, TxCreationKeys_get_broadcaster_delayed_payment_key(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKDelayedPaymentKey ret_var = TxCreationKeys_get_broadcaster_delayed_payment_key(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_TxCreationKeys_set_broadcaster_delayed_payment_key(int64_t this_ptr, int8_tArray val) { +void CS_LDK_TxCreationKeys_set_broadcaster_delayed_payment_key(int64_t this_ptr, int64_t val) { LDKTxCreationKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - TxCreationKeys_set_broadcaster_delayed_payment_key(&this_ptr_conv, val_ref); + LDKDelayedPaymentKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = DelayedPaymentKey_clone(&val_conv); + TxCreationKeys_set_broadcaster_delayed_payment_key(&this_ptr_conv, val_conv); } -int64_t CS_LDK_TxCreationKeys_new(int8_tArray per_commitment_point_arg, int8_tArray revocation_key_arg, int8_tArray broadcaster_htlc_key_arg, int8_tArray countersignatory_htlc_key_arg, int8_tArray broadcaster_delayed_payment_key_arg) { +int64_t CS_LDK_TxCreationKeys_new(int8_tArray per_commitment_point_arg, int64_t revocation_key_arg, int64_t broadcaster_htlc_key_arg, int64_t countersignatory_htlc_key_arg, int64_t broadcaster_delayed_payment_key_arg) { LDKPublicKey per_commitment_point_arg_ref; CHECK(per_commitment_point_arg->arr_len == 33); memcpy(per_commitment_point_arg_ref.compressed_form, per_commitment_point_arg->elems, 33); FREE(per_commitment_point_arg); - LDKPublicKey revocation_key_arg_ref; - CHECK(revocation_key_arg->arr_len == 33); - memcpy(revocation_key_arg_ref.compressed_form, revocation_key_arg->elems, 33); FREE(revocation_key_arg); - LDKPublicKey broadcaster_htlc_key_arg_ref; - CHECK(broadcaster_htlc_key_arg->arr_len == 33); - memcpy(broadcaster_htlc_key_arg_ref.compressed_form, broadcaster_htlc_key_arg->elems, 33); FREE(broadcaster_htlc_key_arg); - LDKPublicKey countersignatory_htlc_key_arg_ref; - CHECK(countersignatory_htlc_key_arg->arr_len == 33); - memcpy(countersignatory_htlc_key_arg_ref.compressed_form, countersignatory_htlc_key_arg->elems, 33); FREE(countersignatory_htlc_key_arg); - LDKPublicKey broadcaster_delayed_payment_key_arg_ref; - CHECK(broadcaster_delayed_payment_key_arg->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_arg_ref.compressed_form, broadcaster_delayed_payment_key_arg->elems, 33); FREE(broadcaster_delayed_payment_key_arg); - LDKTxCreationKeys ret_var = TxCreationKeys_new(per_commitment_point_arg_ref, revocation_key_arg_ref, broadcaster_htlc_key_arg_ref, countersignatory_htlc_key_arg_ref, broadcaster_delayed_payment_key_arg_ref); + LDKRevocationKey revocation_key_arg_conv; + revocation_key_arg_conv.inner = untag_ptr(revocation_key_arg); + revocation_key_arg_conv.is_owned = ptr_is_owned(revocation_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_arg_conv); + revocation_key_arg_conv = RevocationKey_clone(&revocation_key_arg_conv); + LDKHtlcKey broadcaster_htlc_key_arg_conv; + broadcaster_htlc_key_arg_conv.inner = untag_ptr(broadcaster_htlc_key_arg); + broadcaster_htlc_key_arg_conv.is_owned = ptr_is_owned(broadcaster_htlc_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_htlc_key_arg_conv); + broadcaster_htlc_key_arg_conv = HtlcKey_clone(&broadcaster_htlc_key_arg_conv); + LDKHtlcKey countersignatory_htlc_key_arg_conv; + countersignatory_htlc_key_arg_conv.inner = untag_ptr(countersignatory_htlc_key_arg); + countersignatory_htlc_key_arg_conv.is_owned = ptr_is_owned(countersignatory_htlc_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_htlc_key_arg_conv); + countersignatory_htlc_key_arg_conv = HtlcKey_clone(&countersignatory_htlc_key_arg_conv); + LDKDelayedPaymentKey broadcaster_delayed_payment_key_arg_conv; + broadcaster_delayed_payment_key_arg_conv.inner = untag_ptr(broadcaster_delayed_payment_key_arg); + broadcaster_delayed_payment_key_arg_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_arg_conv); + broadcaster_delayed_payment_key_arg_conv = DelayedPaymentKey_clone(&broadcaster_delayed_payment_key_arg_conv); + LDKTxCreationKeys ret_var = TxCreationKeys_new(per_commitment_point_arg_ref, revocation_key_arg_conv, broadcaster_htlc_key_arg_conv, countersignatory_htlc_key_arg_conv, broadcaster_delayed_payment_key_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48080,27 +53345,31 @@ void CS_LDK_ChannelPublicKeys_set_funding_pubkey(int64_t this_ptr, int8_tArray ChannelPublicKeys_set_funding_pubkey(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_ChannelPublicKeys_get_revocation_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_revocation_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_revocation_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationBasepoint ret_var = ChannelPublicKeys_get_revocation_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_revocation_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_revocation_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_revocation_basepoint(&this_ptr_conv, val_ref); + LDKRevocationBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationBasepoint_clone(&val_conv); + ChannelPublicKeys_set_revocation_basepoint(&this_ptr_conv, val_conv); } int8_tArray CS_LDK_ChannelPublicKeys_get_payment_point(int64_t this_ptr) { @@ -48126,69 +53395,83 @@ void CS_LDK_ChannelPublicKeys_set_payment_point(int64_t this_ptr, int8_tArray v ChannelPublicKeys_set_payment_point(&this_ptr_conv, val_ref); } -int8_tArray CS_LDK_ChannelPublicKeys_get_delayed_payment_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_delayed_payment_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_delayed_payment_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKDelayedPaymentBasepoint ret_var = ChannelPublicKeys_get_delayed_payment_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_delayed_payment_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_delayed_payment_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_delayed_payment_basepoint(&this_ptr_conv, val_ref); + LDKDelayedPaymentBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = DelayedPaymentBasepoint_clone(&val_conv); + ChannelPublicKeys_set_delayed_payment_basepoint(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_ChannelPublicKeys_get_htlc_basepoint(int64_t this_ptr) { +int64_t CS_LDK_ChannelPublicKeys_get_htlc_basepoint(int64_t this_ptr) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, ChannelPublicKeys_get_htlc_basepoint(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKHtlcBasepoint ret_var = ChannelPublicKeys_get_htlc_basepoint(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_ChannelPublicKeys_set_htlc_basepoint(int64_t this_ptr, int8_tArray val) { +void CS_LDK_ChannelPublicKeys_set_htlc_basepoint(int64_t this_ptr, int64_t val) { LDKChannelPublicKeys this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - ChannelPublicKeys_set_htlc_basepoint(&this_ptr_conv, val_ref); + LDKHtlcBasepoint val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = HtlcBasepoint_clone(&val_conv); + ChannelPublicKeys_set_htlc_basepoint(&this_ptr_conv, val_conv); } -int64_t CS_LDK_ChannelPublicKeys_new(int8_tArray funding_pubkey_arg, int8_tArray revocation_basepoint_arg, int8_tArray payment_point_arg, int8_tArray delayed_payment_basepoint_arg, int8_tArray htlc_basepoint_arg) { +int64_t CS_LDK_ChannelPublicKeys_new(int8_tArray funding_pubkey_arg, int64_t revocation_basepoint_arg, int8_tArray payment_point_arg, int64_t delayed_payment_basepoint_arg, int64_t htlc_basepoint_arg) { LDKPublicKey funding_pubkey_arg_ref; CHECK(funding_pubkey_arg->arr_len == 33); memcpy(funding_pubkey_arg_ref.compressed_form, funding_pubkey_arg->elems, 33); FREE(funding_pubkey_arg); - LDKPublicKey revocation_basepoint_arg_ref; - CHECK(revocation_basepoint_arg->arr_len == 33); - memcpy(revocation_basepoint_arg_ref.compressed_form, revocation_basepoint_arg->elems, 33); FREE(revocation_basepoint_arg); + LDKRevocationBasepoint revocation_basepoint_arg_conv; + revocation_basepoint_arg_conv.inner = untag_ptr(revocation_basepoint_arg); + revocation_basepoint_arg_conv.is_owned = ptr_is_owned(revocation_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_basepoint_arg_conv); + revocation_basepoint_arg_conv = RevocationBasepoint_clone(&revocation_basepoint_arg_conv); LDKPublicKey payment_point_arg_ref; CHECK(payment_point_arg->arr_len == 33); memcpy(payment_point_arg_ref.compressed_form, payment_point_arg->elems, 33); FREE(payment_point_arg); - LDKPublicKey delayed_payment_basepoint_arg_ref; - CHECK(delayed_payment_basepoint_arg->arr_len == 33); - memcpy(delayed_payment_basepoint_arg_ref.compressed_form, delayed_payment_basepoint_arg->elems, 33); FREE(delayed_payment_basepoint_arg); - LDKPublicKey htlc_basepoint_arg_ref; - CHECK(htlc_basepoint_arg->arr_len == 33); - memcpy(htlc_basepoint_arg_ref.compressed_form, htlc_basepoint_arg->elems, 33); FREE(htlc_basepoint_arg); - LDKChannelPublicKeys ret_var = ChannelPublicKeys_new(funding_pubkey_arg_ref, revocation_basepoint_arg_ref, payment_point_arg_ref, delayed_payment_basepoint_arg_ref, htlc_basepoint_arg_ref); + LDKDelayedPaymentBasepoint delayed_payment_basepoint_arg_conv; + delayed_payment_basepoint_arg_conv.inner = untag_ptr(delayed_payment_basepoint_arg); + delayed_payment_basepoint_arg_conv.is_owned = ptr_is_owned(delayed_payment_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(delayed_payment_basepoint_arg_conv); + delayed_payment_basepoint_arg_conv = DelayedPaymentBasepoint_clone(&delayed_payment_basepoint_arg_conv); + LDKHtlcBasepoint htlc_basepoint_arg_conv; + htlc_basepoint_arg_conv.inner = untag_ptr(htlc_basepoint_arg); + htlc_basepoint_arg_conv.is_owned = ptr_is_owned(htlc_basepoint_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(htlc_basepoint_arg_conv); + htlc_basepoint_arg_conv = HtlcBasepoint_clone(&htlc_basepoint_arg_conv); + LDKChannelPublicKeys ret_var = ChannelPublicKeys_new(funding_pubkey_arg_ref, revocation_basepoint_arg_conv, payment_point_arg_ref, delayed_payment_basepoint_arg_conv, htlc_basepoint_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48273,23 +53556,31 @@ int64_t CS_LDK_ChannelPublicKeys_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } -int64_t CS_LDK_TxCreationKeys_derive_new(int8_tArray per_commitment_point, int8_tArray broadcaster_delayed_payment_base, int8_tArray broadcaster_htlc_base, int8_tArray countersignatory_revocation_base, int8_tArray countersignatory_htlc_base) { +int64_t CS_LDK_TxCreationKeys_derive_new(int8_tArray per_commitment_point, int64_t broadcaster_delayed_payment_base, int64_t broadcaster_htlc_base, int64_t countersignatory_revocation_base, int64_t countersignatory_htlc_base) { LDKPublicKey per_commitment_point_ref; CHECK(per_commitment_point->arr_len == 33); memcpy(per_commitment_point_ref.compressed_form, per_commitment_point->elems, 33); FREE(per_commitment_point); - LDKPublicKey broadcaster_delayed_payment_base_ref; - CHECK(broadcaster_delayed_payment_base->arr_len == 33); - memcpy(broadcaster_delayed_payment_base_ref.compressed_form, broadcaster_delayed_payment_base->elems, 33); FREE(broadcaster_delayed_payment_base); - LDKPublicKey broadcaster_htlc_base_ref; - CHECK(broadcaster_htlc_base->arr_len == 33); - memcpy(broadcaster_htlc_base_ref.compressed_form, broadcaster_htlc_base->elems, 33); FREE(broadcaster_htlc_base); - LDKPublicKey countersignatory_revocation_base_ref; - CHECK(countersignatory_revocation_base->arr_len == 33); - memcpy(countersignatory_revocation_base_ref.compressed_form, countersignatory_revocation_base->elems, 33); FREE(countersignatory_revocation_base); - LDKPublicKey countersignatory_htlc_base_ref; - CHECK(countersignatory_htlc_base->arr_len == 33); - memcpy(countersignatory_htlc_base_ref.compressed_form, countersignatory_htlc_base->elems, 33); FREE(countersignatory_htlc_base); - LDKTxCreationKeys ret_var = TxCreationKeys_derive_new(per_commitment_point_ref, broadcaster_delayed_payment_base_ref, broadcaster_htlc_base_ref, countersignatory_revocation_base_ref, countersignatory_htlc_base_ref); + LDKDelayedPaymentBasepoint broadcaster_delayed_payment_base_conv; + broadcaster_delayed_payment_base_conv.inner = untag_ptr(broadcaster_delayed_payment_base); + broadcaster_delayed_payment_base_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_base_conv); + broadcaster_delayed_payment_base_conv.is_owned = false; + LDKHtlcBasepoint broadcaster_htlc_base_conv; + broadcaster_htlc_base_conv.inner = untag_ptr(broadcaster_htlc_base); + broadcaster_htlc_base_conv.is_owned = ptr_is_owned(broadcaster_htlc_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_htlc_base_conv); + broadcaster_htlc_base_conv.is_owned = false; + LDKRevocationBasepoint countersignatory_revocation_base_conv; + countersignatory_revocation_base_conv.inner = untag_ptr(countersignatory_revocation_base); + countersignatory_revocation_base_conv.is_owned = ptr_is_owned(countersignatory_revocation_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_revocation_base_conv); + countersignatory_revocation_base_conv.is_owned = false; + LDKHtlcBasepoint countersignatory_htlc_base_conv; + countersignatory_htlc_base_conv.inner = untag_ptr(countersignatory_htlc_base); + countersignatory_htlc_base_conv.is_owned = ptr_is_owned(countersignatory_htlc_base); + CHECK_INNER_FIELD_ACCESS_OR_NULL(countersignatory_htlc_base_conv); + countersignatory_htlc_base_conv.is_owned = false; + LDKTxCreationKeys ret_var = TxCreationKeys_derive_new(per_commitment_point_ref, &broadcaster_delayed_payment_base_conv, &broadcaster_htlc_base_conv, &countersignatory_revocation_base_conv, &countersignatory_htlc_base_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -48317,14 +53608,18 @@ int64_t CS_LDK_TxCreationKeys_from_channel_static_keys(int8_tArray per_commitme return ret_ref; } -int8_tArray CS_LDK_get_revokeable_redeemscript(int8_tArray revocation_key, int16_t contest_delay, int8_tArray broadcaster_delayed_payment_key) { - LDKPublicKey revocation_key_ref; - CHECK(revocation_key->arr_len == 33); - memcpy(revocation_key_ref.compressed_form, revocation_key->elems, 33); FREE(revocation_key); - LDKPublicKey broadcaster_delayed_payment_key_ref; - CHECK(broadcaster_delayed_payment_key->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_ref.compressed_form, broadcaster_delayed_payment_key->elems, 33); FREE(broadcaster_delayed_payment_key); - LDKCVec_u8Z ret_var = get_revokeable_redeemscript(revocation_key_ref, contest_delay, broadcaster_delayed_payment_key_ref); +int8_tArray CS_LDK_get_revokeable_redeemscript(int64_t revocation_key, int16_t contest_delay, int64_t broadcaster_delayed_payment_key) { + LDKRevocationKey revocation_key_conv; + revocation_key_conv.inner = untag_ptr(revocation_key); + revocation_key_conv.is_owned = ptr_is_owned(revocation_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_conv); + revocation_key_conv.is_owned = false; + LDKDelayedPaymentKey broadcaster_delayed_payment_key_conv; + broadcaster_delayed_payment_key_conv.inner = untag_ptr(broadcaster_delayed_payment_key); + broadcaster_delayed_payment_key_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_conv); + broadcaster_delayed_payment_key_conv.is_owned = false; + LDKCVec_u8Z ret_var = get_revokeable_redeemscript(&revocation_key_conv, contest_delay, &broadcaster_delayed_payment_key_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); CVec_u8Z_free(ret_var); @@ -48580,7 +53875,7 @@ int8_tArray CS_LDK_make_funding_redeemscript(int8_tArray broadcaster, int8_tArr return ret_arr; } -int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t feerate_per_kw, int16_t contest_delay, int64_t htlc, int64_t channel_type_features, int8_tArray broadcaster_delayed_payment_key, int8_tArray revocation_key) { +int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t feerate_per_kw, int16_t contest_delay, int64_t htlc, int64_t channel_type_features, int64_t broadcaster_delayed_payment_key, int64_t revocation_key) { uint8_t commitment_txid_arr[32]; CHECK(commitment_txid->arr_len == 32); memcpy(commitment_txid_arr, commitment_txid->elems, 32); FREE(commitment_txid); @@ -48595,13 +53890,17 @@ int8_tArray CS_LDK_build_htlc_transaction(int8_tArray commitment_txid, int32_t channel_type_features_conv.is_owned = ptr_is_owned(channel_type_features); CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_type_features_conv); channel_type_features_conv.is_owned = false; - LDKPublicKey broadcaster_delayed_payment_key_ref; - CHECK(broadcaster_delayed_payment_key->arr_len == 33); - memcpy(broadcaster_delayed_payment_key_ref.compressed_form, broadcaster_delayed_payment_key->elems, 33); FREE(broadcaster_delayed_payment_key); - LDKPublicKey revocation_key_ref; - CHECK(revocation_key->arr_len == 33); - memcpy(revocation_key_ref.compressed_form, revocation_key->elems, 33); FREE(revocation_key); - LDKTransaction ret_var = build_htlc_transaction(commitment_txid_ref, feerate_per_kw, contest_delay, &htlc_conv, &channel_type_features_conv, broadcaster_delayed_payment_key_ref, revocation_key_ref); + LDKDelayedPaymentKey broadcaster_delayed_payment_key_conv; + broadcaster_delayed_payment_key_conv.inner = untag_ptr(broadcaster_delayed_payment_key); + broadcaster_delayed_payment_key_conv.is_owned = ptr_is_owned(broadcaster_delayed_payment_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(broadcaster_delayed_payment_key_conv); + broadcaster_delayed_payment_key_conv.is_owned = false; + LDKRevocationKey revocation_key_conv; + revocation_key_conv.inner = untag_ptr(revocation_key); + revocation_key_conv.is_owned = ptr_is_owned(revocation_key); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_key_conv); + revocation_key_conv.is_owned = false; + LDKTransaction ret_var = build_htlc_transaction(commitment_txid_ref, feerate_per_kw, contest_delay, &htlc_conv, &channel_type_features_conv, &broadcaster_delayed_payment_key_conv, &revocation_key_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); Transaction_free(ret_var); @@ -50427,6 +55726,96 @@ int64_t CS_LDK_ChannelTypeFeatures_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_InitFeatures_hash(int64_t o) { + LDKInitFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = InitFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_NodeFeatures_hash(int64_t o) { + LDKNodeFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_ChannelFeatures_hash(int64_t o) { + LDKChannelFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_Bolt11InvoiceFeatures_hash(int64_t o) { + LDKBolt11InvoiceFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Bolt11InvoiceFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_OfferFeatures_hash(int64_t o) { + LDKOfferFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = OfferFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_InvoiceRequestFeatures_hash(int64_t o) { + LDKInvoiceRequestFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = InvoiceRequestFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_Bolt12InvoiceFeatures_hash(int64_t o) { + LDKBolt12InvoiceFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Bolt12InvoiceFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedHopFeatures_hash(int64_t o) { + LDKBlindedHopFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = BlindedHopFeatures_hash(&o_conv); + return ret_conv; +} + +int64_t CS_LDK_ChannelTypeFeatures_hash(int64_t o) { + LDKChannelTypeFeatures o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = ChannelTypeFeatures_hash(&o_conv); + return ret_conv; +} + void CS_LDK_InitFeatures_free(int64_t this_obj) { LDKInitFeatures this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -52407,6 +57796,82 @@ jboolean CS_LDK_ChannelTypeFeatures_requires_anchors_zero_fee_htlc_tx(int64_t t return ret_conv; } +void CS_LDK_InitFeatures_set_route_blinding_optional(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + InitFeatures_set_route_blinding_optional(&this_arg_conv); +} + +void CS_LDK_InitFeatures_set_route_blinding_required(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + InitFeatures_set_route_blinding_required(&this_arg_conv); +} + +jboolean CS_LDK_InitFeatures_supports_route_blinding(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = InitFeatures_supports_route_blinding(&this_arg_conv); + return ret_conv; +} + +void CS_LDK_NodeFeatures_set_route_blinding_optional(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + NodeFeatures_set_route_blinding_optional(&this_arg_conv); +} + +void CS_LDK_NodeFeatures_set_route_blinding_required(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + NodeFeatures_set_route_blinding_required(&this_arg_conv); +} + +jboolean CS_LDK_NodeFeatures_supports_route_blinding(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = NodeFeatures_supports_route_blinding(&this_arg_conv); + return ret_conv; +} + +jboolean CS_LDK_InitFeatures_requires_route_blinding(int64_t this_arg) { + LDKInitFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = InitFeatures_requires_route_blinding(&this_arg_conv); + return ret_conv; +} + +jboolean CS_LDK_NodeFeatures_requires_route_blinding(int64_t this_arg) { + LDKNodeFeatures this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = NodeFeatures_requires_route_blinding(&this_arg_conv); + return ret_conv; +} + void CS_LDK_InitFeatures_set_shutdown_any_segwit_optional(int64_t this_arg) { LDKInitFeatures this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -53120,9 +58585,10 @@ int8_tArray CS_LDK_InvalidShutdownScript_get_script(int64_t this_ptr) { this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKu8slice ret_var = InvalidShutdownScript_get_script(&this_ptr_conv); + LDKCVec_u8Z ret_var = InvalidShutdownScript_get_script(&this_ptr_conv); int8_tArray ret_arr = init_int8_tArray(ret_var.datalen, __LINE__); memcpy(ret_arr->elems, ret_var.data, ret_var.datalen); + CVec_u8Z_free(ret_var); return ret_arr; } @@ -53228,14 +58694,13 @@ int64_t CS_LDK_ShutdownScript_new_p2wsh(int8_tArray script_hash) { return ret_ref; } -int64_t CS_LDK_ShutdownScript_new_witness_program(int8_t version, int8_tArray program) { - - LDKu8slice program_ref; - program_ref.datalen = program->arr_len; - program_ref.data = program->elems; +int64_t CS_LDK_ShutdownScript_new_witness_program(int64_t witness_program) { + void* witness_program_ptr = untag_ptr(witness_program); + CHECK_ACCESS(witness_program_ptr); + LDKWitnessProgram witness_program_conv = *(LDKWitnessProgram*)(witness_program_ptr); + witness_program_conv = WitnessProgram_clone((LDKWitnessProgram*)untag_ptr(witness_program)); LDKCResult_ShutdownScriptInvalidShutdownScriptZ* ret_conv = MALLOC(sizeof(LDKCResult_ShutdownScriptInvalidShutdownScriptZ), "LDKCResult_ShutdownScriptInvalidShutdownScriptZ"); - *ret_conv = ShutdownScript_new_witness_program((LDKWitnessVersion){ ._0 = version }, program_ref); - FREE(program); + *ret_conv = ShutdownScript_new_witness_program(witness_program_conv); return tag_ptr(ret_conv, true); } @@ -54000,6 +59465,16 @@ jboolean CS_LDK_Offer_is_expired(int64_t this_arg) { return ret_conv; } +jboolean CS_LDK_Offer_is_expired_no_std(int64_t this_arg, int64_t duration_since_epoch) { + LDKOffer this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = Offer_is_expired_no_std(&this_arg_conv, duration_since_epoch); + return ret_conv; +} + jboolean CS_LDK_Offer_is_valid_quantity(int64_t this_arg, int64_t quantity) { LDKOffer this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -56097,6 +61572,70 @@ void CS_LDK_TaggedHash_free(int64_t this_obj) { TaggedHash_free(this_obj_conv); } +static inline uint64_t TaggedHash_clone_ptr(LDKTaggedHash *NONNULL_PTR arg) { + LDKTaggedHash ret_var = TaggedHash_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_TaggedHash_clone_ptr(int64_t arg) { + LDKTaggedHash arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = TaggedHash_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_TaggedHash_clone(int64_t orig) { + LDKTaggedHash orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKTaggedHash ret_var = TaggedHash_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int8_tArray CS_LDK_TaggedHash_as_digest(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, *TaggedHash_as_digest(&this_arg_conv), 32); + return ret_arr; +} + +jstring CS_LDK_TaggedHash_tag(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKStr ret_str = TaggedHash_tag(&this_arg_conv); + jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); + Str_free(ret_str); + return ret_conv; +} + +int8_tArray CS_LDK_TaggedHash_merkle_root(int64_t this_arg) { + LDKTaggedHash this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(32, __LINE__); + memcpy(ret_arr->elems, TaggedHash_merkle_root(&this_arg_conv).data, 32); + return ret_arr; +} + void CS_LDK_Bolt12ParseError_free(int64_t this_obj) { LDKBolt12ParseError this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -56349,6 +61888,16 @@ jboolean CS_LDK_Refund_is_expired(int64_t this_arg) { return ret_conv; } +jboolean CS_LDK_Refund_is_expired_no_std(int64_t this_arg, int64_t duration_since_epoch) { + LDKRefund this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + jboolean ret_conv = Refund_is_expired_no_std(&this_arg_conv, duration_since_epoch); + return ret_conv; +} + int64_t CS_LDK_Refund_issuer(int64_t this_arg) { LDKRefund this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -56709,6 +62258,17 @@ int8_tArray CS_LDK_NodeId_as_slice(int64_t this_arg) { return ret_arr; } +int8_tArray CS_LDK_NodeId_as_array(int64_t this_arg) { + LDKNodeId this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, *NodeId_as_array(&this_arg_conv), 33); + return ret_arr; +} + int64_t CS_LDK_NodeId_as_pubkey(int64_t this_arg) { LDKNodeId this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -57547,16 +63107,6 @@ int64_t CS_LDK_DirectedChannelInfo_channel(int64_t this_arg) { return ret_ref; } -int64_t CS_LDK_DirectedChannelInfo_htlc_maximum_msat(int64_t this_arg) { - LDKDirectedChannelInfo this_arg_conv; - this_arg_conv.inner = untag_ptr(this_arg); - this_arg_conv.is_owned = ptr_is_owned(this_arg); - CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); - this_arg_conv.is_owned = false; - int64_t ret_conv = DirectedChannelInfo_htlc_maximum_msat(&this_arg_conv); - return ret_conv; -} - int64_t CS_LDK_DirectedChannelInfo_effective_capacity(int64_t this_arg) { LDKDirectedChannelInfo this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); @@ -58096,6 +63646,16 @@ int64_t CS_LDK_NodeAlias_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_NodeAlias_hash(int64_t o) { + LDKNodeAlias o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = NodeAlias_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_NodeAlias_eq(int64_t a, int64_t b) { LDKNodeAlias a_conv; a_conv.inner = untag_ptr(a); @@ -58688,7 +64248,7 @@ void CS_LDK_DefaultRouter_free(int64_t this_obj) { DefaultRouter_free(this_obj_conv); } -int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tArray random_seed_bytes, int64_t scorer, int64_t score_params) { +int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int64_t entropy_source, int64_t scorer, int64_t score_params) { LDKNetworkGraph network_graph_conv; network_graph_conv.inner = untag_ptr(network_graph); network_graph_conv.is_owned = ptr_is_owned(network_graph); @@ -58701,9 +64261,13 @@ int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tA // If this_arg is a JCalls struct, then we need to increment the refcnt in it. LDKLogger_JCalls_cloned(&logger_conv); } - LDKThirtyTwoBytes random_seed_bytes_ref; - CHECK(random_seed_bytes->arr_len == 32); - memcpy(random_seed_bytes_ref.data, random_seed_bytes->elems, 32); FREE(random_seed_bytes); + void* entropy_source_ptr = untag_ptr(entropy_source); + CHECK_ACCESS(entropy_source_ptr); + LDKEntropySource entropy_source_conv = *(LDKEntropySource*)(entropy_source_ptr); + if (entropy_source_conv.free == LDKEntropySource_JCalls_free) { + // If this_arg is a JCalls struct, then we need to increment the refcnt in it. + LDKEntropySource_JCalls_cloned(&entropy_source_conv); + } void* scorer_ptr = untag_ptr(scorer); CHECK_ACCESS(scorer_ptr); LDKLockableScore scorer_conv = *(LDKLockableScore*)(scorer_ptr); @@ -58716,7 +64280,7 @@ int64_t CS_LDK_DefaultRouter_new(int64_t network_graph, int64_t logger, int8_tA score_params_conv.is_owned = ptr_is_owned(score_params); CHECK_INNER_FIELD_ACCESS_OR_NULL(score_params_conv); score_params_conv = ProbabilisticScoringFeeParameters_clone(&score_params_conv); - LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv, random_seed_bytes_ref, scorer_conv, score_params_conv); + LDKDefaultRouter ret_var = DefaultRouter_new(&network_graph_conv, logger_conv, entropy_source_conv, scorer_conv, score_params_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -58734,6 +64298,17 @@ int64_t CS_LDK_DefaultRouter_as_Router(int64_t this_arg) { return tag_ptr(ret_ret, true); } +int64_t CS_LDK_DefaultRouter_as_MessageRouter(int64_t this_arg) { + LDKDefaultRouter this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + LDKMessageRouter* ret_ret = MALLOC(sizeof(LDKMessageRouter), "LDKMessageRouter"); + *ret_ret = DefaultRouter_as_MessageRouter(&this_arg_conv); + return tag_ptr(ret_ret, true); +} + void CS_LDK_Router_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -60145,7 +65720,47 @@ void CS_LDK_PaymentParameters_set_previously_failed_channels(int64_t this_ptr, PaymentParameters_set_previously_failed_channels(&this_ptr_conv, val_constr); } -int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg, int32_t max_total_cltv_expiry_delta_arg, int8_t max_path_count_arg, int8_t max_channel_saturation_power_of_half_arg, int64_tArray previously_failed_channels_arg) { +int64_tArray CS_LDK_PaymentParameters_get_previously_failed_blinded_path_idxs(int64_t this_ptr) { + LDKPaymentParameters this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u64Z ret_var = PaymentParameters_get_previously_failed_blinded_path_idxs(&this_ptr_conv); + int64_tArray ret_arr = NULL; + ret_arr = init_int64_tArray(ret_var.datalen, __LINE__); + int64_t *ret_arr_ptr = (int64_t*)(((uint8_t*)ret_arr) + 8); + for (size_t g = 0; g < ret_var.datalen; g++) { + int64_t ret_conv_6_conv = ret_var.data[g]; + ret_arr_ptr[g] = ret_conv_6_conv; + } + + FREE(ret_var.data); + return ret_arr; +} + +void CS_LDK_PaymentParameters_set_previously_failed_blinded_path_idxs(int64_t this_ptr, int64_tArray val) { + LDKPaymentParameters this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCVec_u64Z val_constr; + val_constr.datalen = val->arr_len; + if (val_constr.datalen > 0) + val_constr.data = MALLOC(val_constr.datalen * sizeof(int64_t), "LDKCVec_u64Z Elements"); + else + val_constr.data = NULL; + int64_t* val_vals = val->elems; + for (size_t g = 0; g < val_constr.datalen; g++) { + int64_t val_conv_6 = val_vals[g]; + val_constr.data[g] = val_conv_6; + } + FREE(val); + PaymentParameters_set_previously_failed_blinded_path_idxs(&this_ptr_conv, val_constr); +} + +int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg, int32_t max_total_cltv_expiry_delta_arg, int8_t max_path_count_arg, int8_t max_channel_saturation_power_of_half_arg, int64_tArray previously_failed_channels_arg, int64_tArray previously_failed_blinded_path_idxs_arg) { void* payee_arg_ptr = untag_ptr(payee_arg); CHECK_ACCESS(payee_arg_ptr); LDKPayee payee_arg_conv = *(LDKPayee*)(payee_arg_ptr); @@ -60166,7 +65781,19 @@ int64_t CS_LDK_PaymentParameters_new(int64_t payee_arg, int64_t expiry_time_arg previously_failed_channels_arg_constr.data[g] = previously_failed_channels_arg_conv_6; } FREE(previously_failed_channels_arg); - LDKPaymentParameters ret_var = PaymentParameters_new(payee_arg_conv, expiry_time_arg_conv, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, previously_failed_channels_arg_constr); + LDKCVec_u64Z previously_failed_blinded_path_idxs_arg_constr; + previously_failed_blinded_path_idxs_arg_constr.datalen = previously_failed_blinded_path_idxs_arg->arr_len; + if (previously_failed_blinded_path_idxs_arg_constr.datalen > 0) + previously_failed_blinded_path_idxs_arg_constr.data = MALLOC(previously_failed_blinded_path_idxs_arg_constr.datalen * sizeof(int64_t), "LDKCVec_u64Z Elements"); + else + previously_failed_blinded_path_idxs_arg_constr.data = NULL; + int64_t* previously_failed_blinded_path_idxs_arg_vals = previously_failed_blinded_path_idxs_arg->elems; + for (size_t g = 0; g < previously_failed_blinded_path_idxs_arg_constr.datalen; g++) { + int64_t previously_failed_blinded_path_idxs_arg_conv_6 = previously_failed_blinded_path_idxs_arg_vals[g]; + previously_failed_blinded_path_idxs_arg_constr.data[g] = previously_failed_blinded_path_idxs_arg_conv_6; + } + FREE(previously_failed_blinded_path_idxs_arg); + LDKPaymentParameters ret_var = PaymentParameters_new(payee_arg_conv, expiry_time_arg_conv, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, previously_failed_channels_arg_constr, previously_failed_blinded_path_idxs_arg_constr); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -60819,6 +66446,351 @@ int64_t CS_LDK_RouteHintHop_read(int8_tArray ser) { return tag_ptr(ret_conv, true); } +void CS_LDK_FirstHopCandidate_free(int64_t this_obj) { + LDKFirstHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + FirstHopCandidate_free(this_obj_conv); +} + +static inline uint64_t FirstHopCandidate_clone_ptr(LDKFirstHopCandidate *NONNULL_PTR arg) { + LDKFirstHopCandidate ret_var = FirstHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_FirstHopCandidate_clone_ptr(int64_t arg) { + LDKFirstHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = FirstHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_FirstHopCandidate_clone(int64_t orig) { + LDKFirstHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKFirstHopCandidate ret_var = FirstHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_PublicHopCandidate_free(int64_t this_obj) { + LDKPublicHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PublicHopCandidate_free(this_obj_conv); +} + +int64_t CS_LDK_PublicHopCandidate_get_short_channel_id(int64_t this_ptr) { + LDKPublicHopCandidate this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = PublicHopCandidate_get_short_channel_id(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_PublicHopCandidate_set_short_channel_id(int64_t this_ptr, int64_t val) { + LDKPublicHopCandidate this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + PublicHopCandidate_set_short_channel_id(&this_ptr_conv, val); +} + +static inline uint64_t PublicHopCandidate_clone_ptr(LDKPublicHopCandidate *NONNULL_PTR arg) { + LDKPublicHopCandidate ret_var = PublicHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PublicHopCandidate_clone_ptr(int64_t arg) { + LDKPublicHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PublicHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PublicHopCandidate_clone(int64_t orig) { + LDKPublicHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPublicHopCandidate ret_var = PublicHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_PrivateHopCandidate_free(int64_t this_obj) { + LDKPrivateHopCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + PrivateHopCandidate_free(this_obj_conv); +} + +static inline uint64_t PrivateHopCandidate_clone_ptr(LDKPrivateHopCandidate *NONNULL_PTR arg) { + LDKPrivateHopCandidate ret_var = PrivateHopCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_PrivateHopCandidate_clone_ptr(int64_t arg) { + LDKPrivateHopCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = PrivateHopCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_PrivateHopCandidate_clone(int64_t orig) { + LDKPrivateHopCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKPrivateHopCandidate ret_var = PrivateHopCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_BlindedPathCandidate_free(int64_t this_obj) { + LDKBlindedPathCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + BlindedPathCandidate_free(this_obj_conv); +} + +static inline uint64_t BlindedPathCandidate_clone_ptr(LDKBlindedPathCandidate *NONNULL_PTR arg) { + LDKBlindedPathCandidate ret_var = BlindedPathCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_BlindedPathCandidate_clone_ptr(int64_t arg) { + LDKBlindedPathCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = BlindedPathCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_BlindedPathCandidate_clone(int64_t orig) { + LDKBlindedPathCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKBlindedPathCandidate ret_var = BlindedPathCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_OneHopBlindedPathCandidate_free(int64_t this_obj) { + LDKOneHopBlindedPathCandidate this_obj_conv; + this_obj_conv.inner = untag_ptr(this_obj); + this_obj_conv.is_owned = ptr_is_owned(this_obj); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_obj_conv); + OneHopBlindedPathCandidate_free(this_obj_conv); +} + +static inline uint64_t OneHopBlindedPathCandidate_clone_ptr(LDKOneHopBlindedPathCandidate *NONNULL_PTR arg) { + LDKOneHopBlindedPathCandidate ret_var = OneHopBlindedPathCandidate_clone(arg); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} +int64_t CS_LDK_OneHopBlindedPathCandidate_clone_ptr(int64_t arg) { + LDKOneHopBlindedPathCandidate arg_conv; + arg_conv.inner = untag_ptr(arg); + arg_conv.is_owned = ptr_is_owned(arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(arg_conv); + arg_conv.is_owned = false; + int64_t ret_conv = OneHopBlindedPathCandidate_clone_ptr(&arg_conv); + return ret_conv; +} + +int64_t CS_LDK_OneHopBlindedPathCandidate_clone(int64_t orig) { + LDKOneHopBlindedPathCandidate orig_conv; + orig_conv.inner = untag_ptr(orig); + orig_conv.is_owned = ptr_is_owned(orig); + CHECK_INNER_FIELD_ACCESS_OR_NULL(orig_conv); + orig_conv.is_owned = false; + LDKOneHopBlindedPathCandidate ret_var = OneHopBlindedPathCandidate_clone(&orig_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +void CS_LDK_CandidateRouteHop_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKCandidateRouteHop this_ptr_conv = *(LDKCandidateRouteHop*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + CandidateRouteHop_free(this_ptr_conv); +} + +static inline uint64_t CandidateRouteHop_clone_ptr(LDKCandidateRouteHop *NONNULL_PTR arg) { + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_CandidateRouteHop_clone_ptr(int64_t arg) { + LDKCandidateRouteHop* arg_conv = (LDKCandidateRouteHop*)untag_ptr(arg); + int64_t ret_conv = CandidateRouteHop_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_clone(int64_t orig) { + LDKCandidateRouteHop* orig_conv = (LDKCandidateRouteHop*)untag_ptr(orig); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_first_hop(int64_t a) { + LDKFirstHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = FirstHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_first_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_public_hop(int64_t a) { + LDKPublicHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = PublicHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_public_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_private_hop(int64_t a) { + LDKPrivateHopCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = PrivateHopCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_private_hop(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_blinded(int64_t a) { + LDKBlindedPathCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = BlindedPathCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_blinded(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_one_hop_blinded(int64_t a) { + LDKOneHopBlindedPathCandidate a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = OneHopBlindedPathCandidate_clone(&a_conv); + LDKCandidateRouteHop *ret_copy = MALLOC(sizeof(LDKCandidateRouteHop), "LDKCandidateRouteHop"); + *ret_copy = CandidateRouteHop_one_hop_blinded(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_globally_unique_short_channel_id(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKCOption_u64Z *ret_copy = MALLOC(sizeof(LDKCOption_u64Z), "LDKCOption_u64Z"); + *ret_copy = CandidateRouteHop_globally_unique_short_channel_id(this_arg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int32_t CS_LDK_CandidateRouteHop_cltv_expiry_delta(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + int32_t ret_conv = CandidateRouteHop_cltv_expiry_delta(this_arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_htlc_minimum_msat(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + int64_t ret_conv = CandidateRouteHop_htlc_minimum_msat(this_arg_conv); + return ret_conv; +} + +int64_t CS_LDK_CandidateRouteHop_fees(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKRoutingFees ret_var = CandidateRouteHop_fees(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_source(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKNodeId ret_var = CandidateRouteHop_source(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +int64_t CS_LDK_CandidateRouteHop_target(int64_t this_arg) { + LDKCandidateRouteHop* this_arg_conv = (LDKCandidateRouteHop*)untag_ptr(this_arg); + LDKNodeId ret_var = CandidateRouteHop_target(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + int64_t CS_LDK_find_route(int8_tArray our_node_pubkey, int64_t route_params, int64_t network_graph, int64_tArray first_hops, int64_t logger, int64_t scorer, int64_t score_params, int8_tArray random_seed_bytes) { LDKPublicKey our_node_pubkey_ref; CHECK(our_node_pubkey->arr_len == 33); @@ -61954,27 +67926,31 @@ void CS_LDK_DelayedPaymentOutputDescriptor_set_output(int64_t this_ptr, int64_t DelayedPaymentOutputDescriptor_set_output(&this_ptr_conv, val_conv); } -int8_tArray CS_LDK_DelayedPaymentOutputDescriptor_get_revocation_pubkey(int64_t this_ptr) { +int64_t CS_LDK_DelayedPaymentOutputDescriptor_get_revocation_pubkey(int64_t this_ptr) { LDKDelayedPaymentOutputDescriptor this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - int8_tArray ret_arr = init_int8_tArray(33, __LINE__); - memcpy(ret_arr->elems, DelayedPaymentOutputDescriptor_get_revocation_pubkey(&this_ptr_conv).compressed_form, 33); - return ret_arr; + LDKRevocationKey ret_var = DelayedPaymentOutputDescriptor_get_revocation_pubkey(&this_ptr_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; } -void CS_LDK_DelayedPaymentOutputDescriptor_set_revocation_pubkey(int64_t this_ptr, int8_tArray val) { +void CS_LDK_DelayedPaymentOutputDescriptor_set_revocation_pubkey(int64_t this_ptr, int64_t val) { LDKDelayedPaymentOutputDescriptor this_ptr_conv; this_ptr_conv.inner = untag_ptr(this_ptr); this_ptr_conv.is_owned = ptr_is_owned(this_ptr); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); this_ptr_conv.is_owned = false; - LDKPublicKey val_ref; - CHECK(val->arr_len == 33); - memcpy(val_ref.compressed_form, val->elems, 33); FREE(val); - DelayedPaymentOutputDescriptor_set_revocation_pubkey(&this_ptr_conv, val_ref); + LDKRevocationKey val_conv; + val_conv.inner = untag_ptr(val); + val_conv.is_owned = ptr_is_owned(val); + CHECK_INNER_FIELD_ACCESS_OR_NULL(val_conv); + val_conv = RevocationKey_clone(&val_conv); + DelayedPaymentOutputDescriptor_set_revocation_pubkey(&this_ptr_conv, val_conv); } int8_tArray CS_LDK_DelayedPaymentOutputDescriptor_get_channel_keys_id(int64_t this_ptr) { @@ -62019,7 +67995,7 @@ void CS_LDK_DelayedPaymentOutputDescriptor_set_channel_value_satoshis(int64_t t DelayedPaymentOutputDescriptor_set_channel_value_satoshis(&this_ptr_conv, val); } -int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tArray per_commitment_point_arg, int16_t to_self_delay_arg, int64_t output_arg, int8_tArray revocation_pubkey_arg, int8_tArray channel_keys_id_arg, int64_t channel_value_satoshis_arg) { +int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tArray per_commitment_point_arg, int16_t to_self_delay_arg, int64_t output_arg, int64_t revocation_pubkey_arg, int8_tArray channel_keys_id_arg, int64_t channel_value_satoshis_arg) { LDKOutPoint outpoint_arg_conv; outpoint_arg_conv.inner = untag_ptr(outpoint_arg); outpoint_arg_conv.is_owned = ptr_is_owned(outpoint_arg); @@ -62032,13 +68008,15 @@ int64_t CS_LDK_DelayedPaymentOutputDescriptor_new(int64_t outpoint_arg, int8_tA CHECK_ACCESS(output_arg_ptr); LDKTxOut output_arg_conv = *(LDKTxOut*)(output_arg_ptr); output_arg_conv = TxOut_clone((LDKTxOut*)untag_ptr(output_arg)); - LDKPublicKey revocation_pubkey_arg_ref; - CHECK(revocation_pubkey_arg->arr_len == 33); - memcpy(revocation_pubkey_arg_ref.compressed_form, revocation_pubkey_arg->elems, 33); FREE(revocation_pubkey_arg); + LDKRevocationKey revocation_pubkey_arg_conv; + revocation_pubkey_arg_conv.inner = untag_ptr(revocation_pubkey_arg); + revocation_pubkey_arg_conv.is_owned = ptr_is_owned(revocation_pubkey_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(revocation_pubkey_arg_conv); + revocation_pubkey_arg_conv = RevocationKey_clone(&revocation_pubkey_arg_conv); LDKThirtyTwoBytes channel_keys_id_arg_ref; CHECK(channel_keys_id_arg->arr_len == 32); memcpy(channel_keys_id_arg_ref.data, channel_keys_id_arg->elems, 32); FREE(channel_keys_id_arg); - LDKDelayedPaymentOutputDescriptor ret_var = DelayedPaymentOutputDescriptor_new(outpoint_arg_conv, per_commitment_point_arg_ref, to_self_delay_arg, output_arg_conv, revocation_pubkey_arg_ref, channel_keys_id_arg_ref, channel_value_satoshis_arg); + LDKDelayedPaymentOutputDescriptor ret_var = DelayedPaymentOutputDescriptor_new(outpoint_arg_conv, per_commitment_point_arg_ref, to_self_delay_arg, output_arg_conv, revocation_pubkey_arg_conv, channel_keys_id_arg_ref, channel_value_satoshis_arg); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -62405,7 +68383,7 @@ int64_t CS_LDK_SpendableOutputDescriptor_clone(int64_t orig) { return ret_ref; } -int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_t output) { +int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_t output, int8_tArray channel_keys_id) { LDKOutPoint outpoint_conv; outpoint_conv.inner = untag_ptr(outpoint); outpoint_conv.is_owned = ptr_is_owned(outpoint); @@ -62415,8 +68393,11 @@ int64_t CS_LDK_SpendableOutputDescriptor_static_output(int64_t outpoint, int64_ CHECK_ACCESS(output_ptr); LDKTxOut output_conv = *(LDKTxOut*)(output_ptr); output_conv = TxOut_clone((LDKTxOut*)untag_ptr(output)); + LDKThirtyTwoBytes channel_keys_id_ref; + CHECK(channel_keys_id->arr_len == 32); + memcpy(channel_keys_id_ref.data, channel_keys_id->elems, 32); FREE(channel_keys_id); LDKSpendableOutputDescriptor *ret_copy = MALLOC(sizeof(LDKSpendableOutputDescriptor), "LDKSpendableOutputDescriptor"); - *ret_copy = SpendableOutputDescriptor_static_output(outpoint_conv, output_conv); + *ret_copy = SpendableOutputDescriptor_static_output(outpoint_conv, output_conv, channel_keys_id_ref); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -62518,7 +68499,7 @@ int64_t CS_LDK_SpendableOutputDescriptor_create_spendable_outputs_psbt(int64_tA CHECK_ACCESS(locktime_ptr); LDKCOption_u32Z locktime_conv = *(LDKCOption_u32Z*)(locktime_ptr); locktime_conv = COption_u32Z_clone((LDKCOption_u32Z*)untag_ptr(locktime)); - LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ), "LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ"); + LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ), "LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ"); *ret_conv = SpendableOutputDescriptor_create_spendable_outputs_psbt(descriptors_constr, outputs_constr, change_destination_script_ref, feerate_sat_per_1000_weight, locktime_conv); return tag_ptr(ret_conv, true); } @@ -63025,46 +69006,6 @@ void CS_LDK_ChannelSigner_free(int64_t this_ptr) { ChannelSigner_free(this_ptr_conv); } -void CS_LDK_EcdsaChannelSigner_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKEcdsaChannelSigner this_ptr_conv = *(LDKEcdsaChannelSigner*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - EcdsaChannelSigner_free(this_ptr_conv); -} - -static inline uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg) { - LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); - *ret_ret = WriteableEcdsaChannelSigner_clone(arg); - return tag_ptr(ret_ret, true); -} -int64_t CS_LDK_WriteableEcdsaChannelSigner_clone_ptr(int64_t arg) { - void* arg_ptr = untag_ptr(arg); - if (ptr_is_owned(arg)) { CHECK_ACCESS(arg_ptr); } - LDKWriteableEcdsaChannelSigner* arg_conv = (LDKWriteableEcdsaChannelSigner*)arg_ptr; - int64_t ret_conv = WriteableEcdsaChannelSigner_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_WriteableEcdsaChannelSigner_clone(int64_t orig) { - void* orig_ptr = untag_ptr(orig); - if (ptr_is_owned(orig)) { CHECK_ACCESS(orig_ptr); } - LDKWriteableEcdsaChannelSigner* orig_conv = (LDKWriteableEcdsaChannelSigner*)orig_ptr; - LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); - *ret_ret = WriteableEcdsaChannelSigner_clone(orig_conv); - return tag_ptr(ret_ret, true); -} - -void CS_LDK_WriteableEcdsaChannelSigner_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKWriteableEcdsaChannelSigner this_ptr_conv = *(LDKWriteableEcdsaChannelSigner*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - WriteableEcdsaChannelSigner_free(this_ptr_conv); -} - int32_t CS_LDK_Recipient_clone(int64_t orig) { LDKRecipient* orig_conv = (LDKRecipient*)untag_ptr(orig); int32_t ret_conv = LDKRecipient_to_cs(Recipient_clone(orig_conv)); @@ -63420,7 +69361,7 @@ int64_t CS_LDK_InMemorySigner_sign_counterparty_payment_input(int64_t this_arg, descriptor_conv.is_owned = ptr_is_owned(descriptor); CHECK_INNER_FIELD_ACCESS_OR_NULL(descriptor_conv); descriptor_conv.is_owned = false; - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); *ret_conv = InMemorySigner_sign_counterparty_payment_input(&this_arg_conv, spend_tx_ref, input_idx, &descriptor_conv); return tag_ptr(ret_conv, true); } @@ -63441,7 +69382,7 @@ int64_t CS_LDK_InMemorySigner_sign_dynamic_p2wsh_input(int64_t this_arg, int8_t descriptor_conv.is_owned = ptr_is_owned(descriptor); CHECK_INNER_FIELD_ACCESS_OR_NULL(descriptor_conv); descriptor_conv.is_owned = false; - LDKCResult_CVec_CVec_u8ZZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_CVec_u8ZZNoneZ), "LDKCResult_CVec_CVec_u8ZZNoneZ"); + LDKCResult_WitnessNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_WitnessNoneZ), "LDKCResult_WitnessNoneZ"); *ret_conv = InMemorySigner_sign_dynamic_p2wsh_input(&this_arg_conv, spend_tx_ref, input_idx, &descriptor_conv); return tag_ptr(ret_conv, true); } @@ -63830,6 +69771,46 @@ int8_tArray CS_LDK_PhantomKeysManager_get_phantom_node_secret_key(int64_t this_ return ret_arr; } +void CS_LDK_EcdsaChannelSigner_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKEcdsaChannelSigner this_ptr_conv = *(LDKEcdsaChannelSigner*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + EcdsaChannelSigner_free(this_ptr_conv); +} + +static inline uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg) { + LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); + *ret_ret = WriteableEcdsaChannelSigner_clone(arg); + return tag_ptr(ret_ret, true); +} +int64_t CS_LDK_WriteableEcdsaChannelSigner_clone_ptr(int64_t arg) { + void* arg_ptr = untag_ptr(arg); + if (ptr_is_owned(arg)) { CHECK_ACCESS(arg_ptr); } + LDKWriteableEcdsaChannelSigner* arg_conv = (LDKWriteableEcdsaChannelSigner*)arg_ptr; + int64_t ret_conv = WriteableEcdsaChannelSigner_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_WriteableEcdsaChannelSigner_clone(int64_t orig) { + void* orig_ptr = untag_ptr(orig); + if (ptr_is_owned(orig)) { CHECK_ACCESS(orig_ptr); } + LDKWriteableEcdsaChannelSigner* orig_conv = (LDKWriteableEcdsaChannelSigner*)orig_ptr; + LDKWriteableEcdsaChannelSigner* ret_ret = MALLOC(sizeof(LDKWriteableEcdsaChannelSigner), "LDKWriteableEcdsaChannelSigner"); + *ret_ret = WriteableEcdsaChannelSigner_clone(orig_conv); + return tag_ptr(ret_ret, true); +} + +void CS_LDK_WriteableEcdsaChannelSigner_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKWriteableEcdsaChannelSigner this_ptr_conv = *(LDKWriteableEcdsaChannelSigner*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + WriteableEcdsaChannelSigner_free(this_ptr_conv); +} + void CS_LDK_OnionMessenger_free(int64_t this_obj) { LDKOnionMessenger this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -63855,8 +69836,20 @@ void CS_LDK_DefaultMessageRouter_free(int64_t this_obj) { DefaultMessageRouter_free(this_obj_conv); } -int64_t CS_LDK_DefaultMessageRouter_new() { - LDKDefaultMessageRouter ret_var = DefaultMessageRouter_new(); +int64_t CS_LDK_DefaultMessageRouter_new(int64_t network_graph, int64_t entropy_source) { + LDKNetworkGraph network_graph_conv; + network_graph_conv.inner = untag_ptr(network_graph); + network_graph_conv.is_owned = ptr_is_owned(network_graph); + CHECK_INNER_FIELD_ACCESS_OR_NULL(network_graph_conv); + network_graph_conv.is_owned = false; + void* entropy_source_ptr = untag_ptr(entropy_source); + CHECK_ACCESS(entropy_source_ptr); + LDKEntropySource entropy_source_conv = *(LDKEntropySource*)(entropy_source_ptr); + if (entropy_source_conv.free == LDKEntropySource_JCalls_free) { + // If this_arg is a JCalls struct, then we need to increment the refcnt in it. + LDKEntropySource_JCalls_cloned(&entropy_source_conv); + } + LDKDefaultMessageRouter ret_var = DefaultMessageRouter_new(&network_graph_conv, entropy_source_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -63951,7 +69944,32 @@ void CS_LDK_OnionMessagePath_set_destination(int64_t this_ptr, int64_t val) { OnionMessagePath_set_destination(&this_ptr_conv, val_conv); } -int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t destination_arg) { +int64_t CS_LDK_OnionMessagePath_get_first_node_addresses(int64_t this_ptr) { + LDKOnionMessagePath this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + LDKCOption_CVec_SocketAddressZZ *ret_copy = MALLOC(sizeof(LDKCOption_CVec_SocketAddressZZ), "LDKCOption_CVec_SocketAddressZZ"); + *ret_copy = OnionMessagePath_get_first_node_addresses(&this_ptr_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +void CS_LDK_OnionMessagePath_set_first_node_addresses(int64_t this_ptr, int64_t val) { + LDKOnionMessagePath this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + void* val_ptr = untag_ptr(val); + CHECK_ACCESS(val_ptr); + LDKCOption_CVec_SocketAddressZZ val_conv = *(LDKCOption_CVec_SocketAddressZZ*)(val_ptr); + val_conv = COption_CVec_SocketAddressZZ_clone((LDKCOption_CVec_SocketAddressZZ*)untag_ptr(val)); + OnionMessagePath_set_first_node_addresses(&this_ptr_conv, val_conv); +} + +int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t destination_arg, int64_t first_node_addresses_arg) { LDKCVec_PublicKeyZ intermediate_nodes_arg_constr; intermediate_nodes_arg_constr.datalen = intermediate_nodes_arg->arr_len; if (intermediate_nodes_arg_constr.datalen > 0) @@ -63971,7 +69989,10 @@ int64_t CS_LDK_OnionMessagePath_new(ptrArray intermediate_nodes_arg, int64_t de CHECK_ACCESS(destination_arg_ptr); LDKDestination destination_arg_conv = *(LDKDestination*)(destination_arg_ptr); destination_arg_conv = Destination_clone((LDKDestination*)untag_ptr(destination_arg)); - LDKOnionMessagePath ret_var = OnionMessagePath_new(intermediate_nodes_arg_constr, destination_arg_conv); + void* first_node_addresses_arg_ptr = untag_ptr(first_node_addresses_arg); + CHECK_ACCESS(first_node_addresses_arg_ptr); + LDKCOption_CVec_SocketAddressZZ first_node_addresses_arg_conv = *(LDKCOption_CVec_SocketAddressZZ*)(first_node_addresses_arg_ptr); + LDKOnionMessagePath ret_var = OnionMessagePath_new(intermediate_nodes_arg_constr, destination_arg_conv, first_node_addresses_arg_conv); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -64008,6 +70029,17 @@ int64_t CS_LDK_OnionMessagePath_clone(int64_t orig) { return ret_ref; } +int8_tArray CS_LDK_OnionMessagePath_first_node(int64_t this_arg) { + LDKOnionMessagePath this_arg_conv; + this_arg_conv.inner = untag_ptr(this_arg); + this_arg_conv.is_owned = ptr_is_owned(this_arg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); + this_arg_conv.is_owned = false; + int8_tArray ret_arr = init_int8_tArray(33, __LINE__); + memcpy(ret_arr->elems, OnionMessagePath_first_node(&this_arg_conv).compressed_form, 33); + return ret_arr; +} + void CS_LDK_Destination_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -64059,6 +70091,59 @@ int64_t CS_LDK_Destination_blinded_path(int64_t a) { return ret_ref; } +void CS_LDK_SendSuccess_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKSendSuccess this_ptr_conv = *(LDKSendSuccess*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + SendSuccess_free(this_ptr_conv); +} + +static inline uint64_t SendSuccess_clone_ptr(LDKSendSuccess *NONNULL_PTR arg) { + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_SendSuccess_clone_ptr(int64_t arg) { + LDKSendSuccess* arg_conv = (LDKSendSuccess*)untag_ptr(arg); + int64_t ret_conv = SendSuccess_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_SendSuccess_clone(int64_t orig) { + LDKSendSuccess* orig_conv = (LDKSendSuccess*)untag_ptr(orig); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendSuccess_buffered() { + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_buffered(); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendSuccess_buffered_awaiting_connection(int8_tArray a) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKSendSuccess *ret_copy = MALLOC(sizeof(LDKSendSuccess), "LDKSendSuccess"); + *ret_copy = SendSuccess_buffered_awaiting_connection(a_ref); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +jboolean CS_LDK_SendSuccess_eq(int64_t a, int64_t b) { + LDKSendSuccess* a_conv = (LDKSendSuccess*)untag_ptr(a); + LDKSendSuccess* b_conv = (LDKSendSuccess*)untag_ptr(b); + jboolean ret_conv = SendSuccess_eq(a_conv, b_conv); + return ret_conv; +} + void CS_LDK_SendError_free(int64_t this_ptr) { if (!ptr_is_owned(this_ptr)) return; void* this_ptr_ptr = untag_ptr(this_ptr); @@ -64110,9 +70195,19 @@ int64_t CS_LDK_SendError_too_few_blinded_hops() { return ret_ref; } -int64_t CS_LDK_SendError_invalid_first_hop() { +int64_t CS_LDK_SendError_invalid_first_hop(int8_tArray a) { + LDKPublicKey a_ref; + CHECK(a->arr_len == 33); + memcpy(a_ref.compressed_form, a->elems, 33); FREE(a); + LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); + *ret_copy = SendError_invalid_first_hop(a_ref); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_SendError_path_not_found() { LDKSendError *ret_copy = MALLOC(sizeof(LDKSendError), "LDKSendError"); - *ret_copy = SendError_invalid_first_hop(); + *ret_copy = SendError_path_not_found(); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -64248,7 +70343,7 @@ int64_t CS_LDK_create_onion_message(int64_t entropy_source, int64_t node_signer reply_path_conv.is_owned = ptr_is_owned(reply_path); CHECK_INNER_FIELD_ACCESS_OR_NULL(reply_path_conv); reply_path_conv = BlindedPath_clone(&reply_path_conv); - LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ), "LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ"); + LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ), "LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ"); *ret_conv = create_onion_message(entropy_source_conv, node_signer_conv, path_conv, contents_conv, reply_path_conv); return tag_ptr(ret_conv, true); } @@ -64335,17 +70430,12 @@ int64_t CS_LDK_OnionMessenger_new(int64_t entropy_source, int64_t node_signer, return ret_ref; } -int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t path, int64_t contents, int64_t reply_path) { +int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t contents, int64_t destination, int64_t reply_path) { LDKOnionMessenger this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv.is_owned = false; - LDKOnionMessagePath path_conv; - path_conv.inner = untag_ptr(path); - path_conv.is_owned = ptr_is_owned(path); - CHECK_INNER_FIELD_ACCESS_OR_NULL(path_conv); - path_conv = OnionMessagePath_clone(&path_conv); void* contents_ptr = untag_ptr(contents); CHECK_ACCESS(contents_ptr); LDKOnionMessageContents contents_conv = *(LDKOnionMessageContents*)(contents_ptr); @@ -64353,13 +70443,17 @@ int64_t CS_LDK_OnionMessenger_send_onion_message(int64_t this_arg, int64_t path // If this_arg is a JCalls struct, then we need to increment the refcnt in it. LDKOnionMessageContents_JCalls_cloned(&contents_conv); } + void* destination_ptr = untag_ptr(destination); + CHECK_ACCESS(destination_ptr); + LDKDestination destination_conv = *(LDKDestination*)(destination_ptr); + destination_conv = Destination_clone((LDKDestination*)untag_ptr(destination)); LDKBlindedPath reply_path_conv; reply_path_conv.inner = untag_ptr(reply_path); reply_path_conv.is_owned = ptr_is_owned(reply_path); CHECK_INNER_FIELD_ACCESS_OR_NULL(reply_path_conv); reply_path_conv = BlindedPath_clone(&reply_path_conv); - LDKCResult_NoneSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneSendErrorZ), "LDKCResult_NoneSendErrorZ"); - *ret_conv = OnionMessenger_send_onion_message(&this_arg_conv, path_conv, contents_conv, reply_path_conv); + LDKCResult_SendSuccessSendErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SendSuccessSendErrorZ), "LDKCResult_SendSuccessSendErrorZ"); + *ret_conv = OnionMessenger_send_onion_message(&this_arg_conv, contents_conv, destination_conv, reply_path_conv); return tag_ptr(ret_conv, true); } @@ -64453,6 +70547,13 @@ jboolean CS_LDK_OffersMessage_is_known_type(int64_t tlv_type) { return ret_conv; } +int64_t CS_LDK_OffersMessage_as_OnionMessageContents(int64_t this_arg) { + LDKOffersMessage* this_arg_conv = (LDKOffersMessage*)untag_ptr(this_arg); + LDKOnionMessageContents* ret_ret = MALLOC(sizeof(LDKOnionMessageContents), "LDKOnionMessageContents"); + *ret_ret = OffersMessage_as_OnionMessageContents(this_arg_conv); + return tag_ptr(ret_ret, true); +} + int8_tArray CS_LDK_OffersMessage_write(int64_t obj) { LDKOffersMessage* obj_conv = (LDKOffersMessage*)untag_ptr(obj); LDKCVec_u8Z ret_var = OffersMessage_write(obj_conv); @@ -64622,6 +70723,16 @@ int64_t CS_LDK_Packet_clone(int64_t orig) { return ret_ref; } +int64_t CS_LDK_Packet_hash(int64_t o) { + LDKPacket o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + int64_t ret_conv = Packet_hash(&o_conv); + return ret_conv; +} + jboolean CS_LDK_Packet_eq(int64_t a, int64_t b) { LDKPacket a_conv; a_conv.inner = untag_ptr(a); @@ -65119,6 +71230,40 @@ int64_t CS_LDK_BlindedPath_one_hop_for_payment(int8_tArray payee_node_id, int64 return tag_ptr(ret_conv, true); } +int64_t CS_LDK_BlindedPath_new_for_payment(int64_tArray intermediate_nodes, int8_tArray payee_node_id, int64_t payee_tlvs, int64_t htlc_maximum_msat, int64_t entropy_source) { + LDKCVec_ForwardNodeZ intermediate_nodes_constr; + intermediate_nodes_constr.datalen = intermediate_nodes->arr_len; + if (intermediate_nodes_constr.datalen > 0) + intermediate_nodes_constr.data = MALLOC(intermediate_nodes_constr.datalen * sizeof(LDKForwardNode), "LDKCVec_ForwardNodeZ Elements"); + else + intermediate_nodes_constr.data = NULL; + int64_t* intermediate_nodes_vals = intermediate_nodes->elems; + for (size_t n = 0; n < intermediate_nodes_constr.datalen; n++) { + int64_t intermediate_nodes_conv_13 = intermediate_nodes_vals[n]; + LDKForwardNode intermediate_nodes_conv_13_conv; + intermediate_nodes_conv_13_conv.inner = untag_ptr(intermediate_nodes_conv_13); + intermediate_nodes_conv_13_conv.is_owned = ptr_is_owned(intermediate_nodes_conv_13); + CHECK_INNER_FIELD_ACCESS_OR_NULL(intermediate_nodes_conv_13_conv); + intermediate_nodes_conv_13_conv = ForwardNode_clone(&intermediate_nodes_conv_13_conv); + intermediate_nodes_constr.data[n] = intermediate_nodes_conv_13_conv; + } + FREE(intermediate_nodes); + LDKPublicKey payee_node_id_ref; + CHECK(payee_node_id->arr_len == 33); + memcpy(payee_node_id_ref.compressed_form, payee_node_id->elems, 33); FREE(payee_node_id); + LDKReceiveTlvs payee_tlvs_conv; + payee_tlvs_conv.inner = untag_ptr(payee_tlvs); + payee_tlvs_conv.is_owned = ptr_is_owned(payee_tlvs); + CHECK_INNER_FIELD_ACCESS_OR_NULL(payee_tlvs_conv); + payee_tlvs_conv = ReceiveTlvs_clone(&payee_tlvs_conv); + void* entropy_source_ptr = untag_ptr(entropy_source); + if (ptr_is_owned(entropy_source)) { CHECK_ACCESS(entropy_source_ptr); } + LDKEntropySource* entropy_source_conv = (LDKEntropySource*)entropy_source_ptr; + LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ), "LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ"); + *ret_conv = BlindedPath_new_for_payment(intermediate_nodes_constr, payee_node_id_ref, payee_tlvs_conv, htlc_maximum_msat, entropy_source_conv); + return tag_ptr(ret_conv, true); +} + int8_tArray CS_LDK_BlindedPath_write(int64_t obj) { LDKBlindedPath obj_conv; obj_conv.inner = untag_ptr(obj); @@ -65766,16 +71911,6 @@ int8_tArray CS_LDK_ReceiveTlvs_write(int64_t obj) { return ret_arr; } -int64_t CS_LDK_ReceiveTlvs_read(int8_tArray ser) { - LDKu8slice ser_ref; - ser_ref.datalen = ser->arr_len; - ser_ref.data = ser->elems; - LDKCResult_ReceiveTlvsDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ReceiveTlvsDecodeErrorZ), "LDKCResult_ReceiveTlvsDecodeErrorZ"); - *ret_conv = ReceiveTlvs_read(ser_ref); - FREE(ser); - return tag_ptr(ret_conv, true); -} - int8_tArray CS_LDK_PaymentRelay_write(int64_t obj) { LDKPaymentRelay obj_conv; obj_conv.inner = untag_ptr(obj); @@ -65882,6 +72017,14 @@ jboolean CS_LDK_PaymentPurpose_eq(int64_t a, int64_t b) { return ret_conv; } +int64_t CS_LDK_PaymentPurpose_preimage(int64_t this_arg) { + LDKPaymentPurpose* this_arg_conv = (LDKPaymentPurpose*)untag_ptr(this_arg); + LDKCOption_ThirtyTwoBytesZ *ret_copy = MALLOC(sizeof(LDKCOption_ThirtyTwoBytesZ), "LDKCOption_ThirtyTwoBytesZ"); + *ret_copy = PaymentPurpose_preimage(this_arg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int8_tArray CS_LDK_PaymentPurpose_write(int64_t obj) { LDKPaymentPurpose* obj_conv = (LDKPaymentPurpose*)untag_ptr(obj); LDKCVec_u8Z ret_var = PaymentPurpose_write(obj_conv); @@ -65993,14 +72136,33 @@ void CS_LDK_ClaimedHTLC_set_value_msat(int64_t this_ptr, int64_t val) { ClaimedHTLC_set_value_msat(&this_ptr_conv, val); } -int64_t CS_LDK_ClaimedHTLC_new(int8_tArray channel_id_arg, int8_tArray user_channel_id_arg, int32_t cltv_expiry_arg, int64_t value_msat_arg) { +int64_t CS_LDK_ClaimedHTLC_get_counterparty_skimmed_fee_msat(int64_t this_ptr) { + LDKClaimedHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + int64_t ret_conv = ClaimedHTLC_get_counterparty_skimmed_fee_msat(&this_ptr_conv); + return ret_conv; +} + +void CS_LDK_ClaimedHTLC_set_counterparty_skimmed_fee_msat(int64_t this_ptr, int64_t val) { + LDKClaimedHTLC this_ptr_conv; + this_ptr_conv.inner = untag_ptr(this_ptr); + this_ptr_conv.is_owned = ptr_is_owned(this_ptr); + CHECK_INNER_FIELD_ACCESS_OR_NULL(this_ptr_conv); + this_ptr_conv.is_owned = false; + ClaimedHTLC_set_counterparty_skimmed_fee_msat(&this_ptr_conv, val); +} + +int64_t CS_LDK_ClaimedHTLC_new(int8_tArray channel_id_arg, int8_tArray user_channel_id_arg, int32_t cltv_expiry_arg, int64_t value_msat_arg, int64_t counterparty_skimmed_fee_msat_arg) { LDKThirtyTwoBytes channel_id_arg_ref; CHECK(channel_id_arg->arr_len == 32); memcpy(channel_id_arg_ref.data, channel_id_arg->elems, 32); FREE(channel_id_arg); LDKU128 user_channel_id_arg_ref; CHECK(user_channel_id_arg->arr_len == 16); memcpy(user_channel_id_arg_ref.le_bytes, user_channel_id_arg->elems, 16); FREE(user_channel_id_arg); - LDKClaimedHTLC ret_var = ClaimedHTLC_new(channel_id_arg_ref, user_channel_id_arg_ref, cltv_expiry_arg, value_msat_arg); + LDKClaimedHTLC ret_var = ClaimedHTLC_new(channel_id_arg_ref, user_channel_id_arg_ref, cltv_expiry_arg, value_msat_arg, counterparty_skimmed_fee_msat_arg); int64_t ret_ref = 0; CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); @@ -66558,6 +72720,31 @@ int64_t CS_LDK_Event_payment_claimed(int8_tArray receiver_node_id, int8_tArray return ret_ref; } +int64_t CS_LDK_Event_connection_needed(int8_tArray node_id, int64_tArray addresses) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKCVec_SocketAddressZ addresses_constr; + addresses_constr.datalen = addresses->arr_len; + if (addresses_constr.datalen > 0) + addresses_constr.data = MALLOC(addresses_constr.datalen * sizeof(LDKSocketAddress), "LDKCVec_SocketAddressZ Elements"); + else + addresses_constr.data = NULL; + int64_t* addresses_vals = addresses->elems; + for (size_t p = 0; p < addresses_constr.datalen; p++) { + int64_t addresses_conv_15 = addresses_vals[p]; + void* addresses_conv_15_ptr = untag_ptr(addresses_conv_15); + CHECK_ACCESS(addresses_conv_15_ptr); + LDKSocketAddress addresses_conv_15_conv = *(LDKSocketAddress*)(addresses_conv_15_ptr); + addresses_constr.data[p] = addresses_conv_15_conv; + } + FREE(addresses); + LDKEvent *ret_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); + *ret_copy = Event_connection_needed(node_id_ref, addresses_constr); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int64_t CS_LDK_Event_invoice_request_failed(int8_tArray payment_id) { LDKThirtyTwoBytes payment_id_ref; CHECK(payment_id->arr_len == 32); @@ -66808,7 +72995,7 @@ int64_t CS_LDK_Event_channel_ready(int8_tArray channel_id, int8_tArray user_cha return ret_ref; } -int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_channel_id, int64_t reason, int8_tArray counterparty_node_id, int64_t channel_capacity_sats) { +int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_channel_id, int64_t reason, int8_tArray counterparty_node_id, int64_t channel_capacity_sats, int64_t channel_funding_txo) { LDKThirtyTwoBytes channel_id_ref; CHECK(channel_id->arr_len == 32); memcpy(channel_id_ref.data, channel_id->elems, 32); FREE(channel_id); @@ -66826,8 +73013,13 @@ int64_t CS_LDK_Event_channel_closed(int8_tArray channel_id, int8_tArray user_ch CHECK_ACCESS(channel_capacity_sats_ptr); LDKCOption_u64Z channel_capacity_sats_conv = *(LDKCOption_u64Z*)(channel_capacity_sats_ptr); channel_capacity_sats_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(channel_capacity_sats)); + LDKOutPoint channel_funding_txo_conv; + channel_funding_txo_conv.inner = untag_ptr(channel_funding_txo); + channel_funding_txo_conv.is_owned = ptr_is_owned(channel_funding_txo); + CHECK_INNER_FIELD_ACCESS_OR_NULL(channel_funding_txo_conv); + channel_funding_txo_conv = OutPoint_clone(&channel_funding_txo_conv); LDKEvent *ret_copy = MALLOC(sizeof(LDKEvent), "LDKEvent"); - *ret_copy = Event_channel_closed(channel_id_ref, user_channel_id_ref, reason_conv, counterparty_node_id_ref, channel_capacity_sats_conv); + *ret_copy = Event_channel_closed(channel_id_ref, user_channel_id_ref, reason_conv, counterparty_node_id_ref, channel_capacity_sats_conv, channel_funding_txo_conv); int64_t ret_ref = tag_ptr(ret_copy, true); return ret_ref; } @@ -67035,6 +73227,66 @@ int64_t CS_LDK_MessageSendEvent_send_funding_signed(int8_tArray node_id, int64_ return ret_ref; } +int64_t CS_LDK_MessageSendEvent_send_stfu(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKStfu msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = Stfu_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_stfu(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSplice msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = Splice_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice_ack(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSpliceAck msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = SpliceAck_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice_ack(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_MessageSendEvent_send_splice_locked(int8_tArray node_id, int64_t msg) { + LDKPublicKey node_id_ref; + CHECK(node_id->arr_len == 33); + memcpy(node_id_ref.compressed_form, node_id->elems, 33); FREE(node_id); + LDKSpliceLocked msg_conv; + msg_conv.inner = untag_ptr(msg); + msg_conv.is_owned = ptr_is_owned(msg); + CHECK_INNER_FIELD_ACCESS_OR_NULL(msg_conv); + msg_conv = SpliceLocked_clone(&msg_conv); + LDKMessageSendEvent *ret_copy = MALLOC(sizeof(LDKMessageSendEvent), "LDKMessageSendEvent"); + *ret_copy = MessageSendEvent_send_splice_locked(node_id_ref, msg_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + int64_t CS_LDK_MessageSendEvent_send_tx_add_input(int8_tArray node_id, int64_t msg) { LDKPublicKey node_id_ref; CHECK(node_id->arr_len == 33); @@ -70342,13 +76594,26 @@ int64_t CS_LDK_Description_new(jstring description) { return tag_ptr(ret_conv, true); } -jstring CS_LDK_Description_into_inner(int64_t this_arg) { +int64_t CS_LDK_Description_into_inner(int64_t this_arg) { LDKDescription this_arg_conv; this_arg_conv.inner = untag_ptr(this_arg); this_arg_conv.is_owned = ptr_is_owned(this_arg); CHECK_INNER_FIELD_ACCESS_OR_NULL(this_arg_conv); this_arg_conv = Description_clone(&this_arg_conv); - LDKStr ret_str = Description_into_inner(this_arg_conv); + LDKUntrustedString ret_var = Description_into_inner(this_arg_conv); + int64_t ret_ref = 0; + CHECK_INNER_FIELD_ACCESS_OR_NULL(ret_var); + ret_ref = tag_ptr(ret_var.inner, ret_var.is_owned); + return ret_ref; +} + +jstring CS_LDK_Description_to_str(int64_t o) { + LDKDescription o_conv; + o_conv.inner = untag_ptr(o); + o_conv.is_owned = ptr_is_owned(o); + CHECK_INNER_FIELD_ACCESS_OR_NULL(o_conv); + o_conv.is_owned = false; + LDKStr ret_str = Description_to_str(&o_conv); jstring ret_conv = str_ref_to_cs(ret_str.chars, ret_str.len); Str_free(ret_str); return ret_conv; @@ -70595,239 +76860,28 @@ jstring CS_LDK_SignOrCreationError_to_str(int64_t o) { return ret_conv; } -int64_t CS_LDK_pay_invoice(int64_t invoice, int64_t retry_strategy, int64_t channelmanager) { +int64_t CS_LDK_payment_parameters_from_zero_amount_invoice(int64_t invoice, int64_t amount_msat) { LDKBolt11Invoice invoice_conv; invoice_conv.inner = untag_ptr(invoice); invoice_conv.is_owned = ptr_is_owned(invoice); CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); invoice_conv.is_owned = false; - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = pay_invoice(&invoice_conv, retry_strategy_conv, &channelmanager_conv); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = payment_parameters_from_zero_amount_invoice(&invoice_conv, amount_msat); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_pay_invoice_with_id(int64_t invoice, int8_tArray payment_id, int64_t retry_strategy, int64_t channelmanager) { +int64_t CS_LDK_payment_parameters_from_invoice(int64_t invoice) { LDKBolt11Invoice invoice_conv; invoice_conv.inner = untag_ptr(invoice); invoice_conv.is_owned = ptr_is_owned(invoice); CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); invoice_conv.is_owned = false; - LDKThirtyTwoBytes payment_id_ref; - CHECK(payment_id->arr_len == 32); - memcpy(payment_id_ref.data, payment_id->elems, 32); FREE(payment_id); - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = pay_invoice_with_id(&invoice_conv, payment_id_ref, retry_strategy_conv, &channelmanager_conv); + LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ* ret_conv = MALLOC(sizeof(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ), "LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ"); + *ret_conv = payment_parameters_from_invoice(&invoice_conv); return tag_ptr(ret_conv, true); } -int64_t CS_LDK_pay_zero_value_invoice(int64_t invoice, int64_t amount_msats, int64_t retry_strategy, int64_t channelmanager) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_ThirtyTwoBytesPaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_ThirtyTwoBytesPaymentErrorZ), "LDKCResult_ThirtyTwoBytesPaymentErrorZ"); - *ret_conv = pay_zero_value_invoice(&invoice_conv, amount_msats, retry_strategy_conv, &channelmanager_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_pay_zero_value_invoice_with_id(int64_t invoice, int64_t amount_msats, int8_tArray payment_id, int64_t retry_strategy, int64_t channelmanager) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKThirtyTwoBytes payment_id_ref; - CHECK(payment_id->arr_len == 32); - memcpy(payment_id_ref.data, payment_id->elems, 32); FREE(payment_id); - void* retry_strategy_ptr = untag_ptr(retry_strategy); - CHECK_ACCESS(retry_strategy_ptr); - LDKRetry retry_strategy_conv = *(LDKRetry*)(retry_strategy_ptr); - retry_strategy_conv = Retry_clone((LDKRetry*)untag_ptr(retry_strategy)); - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - LDKCResult_NonePaymentErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePaymentErrorZ), "LDKCResult_NonePaymentErrorZ"); - *ret_conv = pay_zero_value_invoice_with_id(&invoice_conv, amount_msats, payment_id_ref, retry_strategy_conv, &channelmanager_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_preflight_probe_invoice(int64_t invoice, int64_t channelmanager, int64_t liquidity_limit_multiplier) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - void* liquidity_limit_multiplier_ptr = untag_ptr(liquidity_limit_multiplier); - CHECK_ACCESS(liquidity_limit_multiplier_ptr); - LDKCOption_u64Z liquidity_limit_multiplier_conv = *(LDKCOption_u64Z*)(liquidity_limit_multiplier_ptr); - liquidity_limit_multiplier_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(liquidity_limit_multiplier)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = preflight_probe_invoice(&invoice_conv, &channelmanager_conv, liquidity_limit_multiplier_conv); - return tag_ptr(ret_conv, true); -} - -int64_t CS_LDK_preflight_probe_zero_value_invoice(int64_t invoice, int64_t amount_msat, int64_t channelmanager, int64_t liquidity_limit_multiplier) { - LDKBolt11Invoice invoice_conv; - invoice_conv.inner = untag_ptr(invoice); - invoice_conv.is_owned = ptr_is_owned(invoice); - CHECK_INNER_FIELD_ACCESS_OR_NULL(invoice_conv); - invoice_conv.is_owned = false; - LDKChannelManager channelmanager_conv; - channelmanager_conv.inner = untag_ptr(channelmanager); - channelmanager_conv.is_owned = ptr_is_owned(channelmanager); - CHECK_INNER_FIELD_ACCESS_OR_NULL(channelmanager_conv); - channelmanager_conv.is_owned = false; - void* liquidity_limit_multiplier_ptr = untag_ptr(liquidity_limit_multiplier); - CHECK_ACCESS(liquidity_limit_multiplier_ptr); - LDKCOption_u64Z liquidity_limit_multiplier_conv = *(LDKCOption_u64Z*)(liquidity_limit_multiplier_ptr); - liquidity_limit_multiplier_conv = COption_u64Z_clone((LDKCOption_u64Z*)untag_ptr(liquidity_limit_multiplier)); - LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ), "LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ"); - *ret_conv = preflight_probe_zero_value_invoice(&invoice_conv, amount_msat, &channelmanager_conv, liquidity_limit_multiplier_conv); - return tag_ptr(ret_conv, true); -} - -void CS_LDK_PaymentError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKPaymentError this_ptr_conv = *(LDKPaymentError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - PaymentError_free(this_ptr_conv); -} - -static inline uint64_t PaymentError_clone_ptr(LDKPaymentError *NONNULL_PTR arg) { - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_PaymentError_clone_ptr(int64_t arg) { - LDKPaymentError* arg_conv = (LDKPaymentError*)untag_ptr(arg); - int64_t ret_conv = PaymentError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_PaymentError_clone(int64_t orig) { - LDKPaymentError* orig_conv = (LDKPaymentError*)untag_ptr(orig); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_PaymentError_invoice(jstring a) { - LDKStr a_conv = str_ref_to_owned_c(a); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_invoice(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_PaymentError_sending(int32_t a) { - LDKRetryableSendFailure a_conv = LDKRetryableSendFailure_from_cs(a); - LDKPaymentError *ret_copy = MALLOC(sizeof(LDKPaymentError), "LDKPaymentError"); - *ret_copy = PaymentError_sending(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -jboolean CS_LDK_PaymentError_eq(int64_t a, int64_t b) { - LDKPaymentError* a_conv = (LDKPaymentError*)untag_ptr(a); - LDKPaymentError* b_conv = (LDKPaymentError*)untag_ptr(b); - jboolean ret_conv = PaymentError_eq(a_conv, b_conv); - return ret_conv; -} - -void CS_LDK_ProbingError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKProbingError this_ptr_conv = *(LDKProbingError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - ProbingError_free(this_ptr_conv); -} - -static inline uint64_t ProbingError_clone_ptr(LDKProbingError *NONNULL_PTR arg) { - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_ProbingError_clone_ptr(int64_t arg) { - LDKProbingError* arg_conv = (LDKProbingError*)untag_ptr(arg); - int64_t ret_conv = ProbingError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_ProbingError_clone(int64_t orig) { - LDKProbingError* orig_conv = (LDKProbingError*)untag_ptr(orig); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_ProbingError_invoice(jstring a) { - LDKStr a_conv = str_ref_to_owned_c(a); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_invoice(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_ProbingError_sending(int64_t a) { - void* a_ptr = untag_ptr(a); - CHECK_ACCESS(a_ptr); - LDKProbeSendFailure a_conv = *(LDKProbeSendFailure*)(a_ptr); - a_conv = ProbeSendFailure_clone((LDKProbeSendFailure*)untag_ptr(a)); - LDKProbingError *ret_copy = MALLOC(sizeof(LDKProbingError), "LDKProbingError"); - *ret_copy = ProbingError_sending(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -jboolean CS_LDK_ProbingError_eq(int64_t a, int64_t b) { - LDKProbingError* a_conv = (LDKProbingError*)untag_ptr(a); - LDKProbingError* b_conv = (LDKProbingError*)untag_ptr(b); - jboolean ret_conv = ProbingError_eq(a_conv, b_conv); - return ret_conv; -} - int64_t CS_LDK_create_phantom_invoice(int64_t amt_msat, int64_t payment_hash, jstring description, int32_t invoice_expiry_delta_secs, int64_tArray phantom_route_hints, int64_t entropy_source, int64_t node_signer, int64_t logger, int32_t network, int64_t min_final_cltv_expiry_delta, int64_t duration_since_epoch) { void* amt_msat_ptr = untag_ptr(amt_msat); CHECK_ACCESS(amt_msat_ptr); @@ -71211,6 +77265,58 @@ jstring CS_LDK_SiPrefix_to_str(int64_t o) { return ret_conv; } +void CS_LDK_GraphSyncError_free(int64_t this_ptr) { + if (!ptr_is_owned(this_ptr)) return; + void* this_ptr_ptr = untag_ptr(this_ptr); + CHECK_ACCESS(this_ptr_ptr); + LDKGraphSyncError this_ptr_conv = *(LDKGraphSyncError*)(this_ptr_ptr); + FREE(untag_ptr(this_ptr)); + GraphSyncError_free(this_ptr_conv); +} + +static inline uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg) { + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_clone(arg); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} +int64_t CS_LDK_GraphSyncError_clone_ptr(int64_t arg) { + LDKGraphSyncError* arg_conv = (LDKGraphSyncError*)untag_ptr(arg); + int64_t ret_conv = GraphSyncError_clone_ptr(arg_conv); + return ret_conv; +} + +int64_t CS_LDK_GraphSyncError_clone(int64_t orig) { + LDKGraphSyncError* orig_conv = (LDKGraphSyncError*)untag_ptr(orig); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_clone(orig_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_GraphSyncError_decode_error(int64_t a) { + void* a_ptr = untag_ptr(a); + CHECK_ACCESS(a_ptr); + LDKDecodeError a_conv = *(LDKDecodeError*)(a_ptr); + a_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(a)); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_decode_error(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + +int64_t CS_LDK_GraphSyncError_lightning_error(int64_t a) { + LDKLightningError a_conv; + a_conv.inner = untag_ptr(a); + a_conv.is_owned = ptr_is_owned(a); + CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); + a_conv = LightningError_clone(&a_conv); + LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); + *ret_copy = GraphSyncError_lightning_error(a_conv); + int64_t ret_ref = tag_ptr(ret_copy, true); + return ret_ref; +} + void CS_LDK_RapidGossipSync_free(int64_t this_obj) { LDKRapidGossipSync this_obj_conv; this_obj_conv.inner = untag_ptr(this_obj); @@ -71295,55 +77401,3 @@ jboolean CS_LDK_RapidGossipSync_is_initial_sync_complete(int64_t this_arg) { return ret_conv; } -void CS_LDK_GraphSyncError_free(int64_t this_ptr) { - if (!ptr_is_owned(this_ptr)) return; - void* this_ptr_ptr = untag_ptr(this_ptr); - CHECK_ACCESS(this_ptr_ptr); - LDKGraphSyncError this_ptr_conv = *(LDKGraphSyncError*)(this_ptr_ptr); - FREE(untag_ptr(this_ptr)); - GraphSyncError_free(this_ptr_conv); -} - -static inline uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg) { - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_clone(arg); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} -int64_t CS_LDK_GraphSyncError_clone_ptr(int64_t arg) { - LDKGraphSyncError* arg_conv = (LDKGraphSyncError*)untag_ptr(arg); - int64_t ret_conv = GraphSyncError_clone_ptr(arg_conv); - return ret_conv; -} - -int64_t CS_LDK_GraphSyncError_clone(int64_t orig) { - LDKGraphSyncError* orig_conv = (LDKGraphSyncError*)untag_ptr(orig); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_clone(orig_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_GraphSyncError_decode_error(int64_t a) { - void* a_ptr = untag_ptr(a); - CHECK_ACCESS(a_ptr); - LDKDecodeError a_conv = *(LDKDecodeError*)(a_ptr); - a_conv = DecodeError_clone((LDKDecodeError*)untag_ptr(a)); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_decode_error(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - -int64_t CS_LDK_GraphSyncError_lightning_error(int64_t a) { - LDKLightningError a_conv; - a_conv.inner = untag_ptr(a); - a_conv.is_owned = ptr_is_owned(a); - CHECK_INNER_FIELD_ACCESS_OR_NULL(a_conv); - a_conv = LightningError_clone(&a_conv); - LDKGraphSyncError *ret_copy = MALLOC(sizeof(LDKGraphSyncError), "LDKGraphSyncError"); - *ret_copy = GraphSyncError_lightning_error(a_conv); - int64_t ret_ref = tag_ptr(ret_copy, true); - return ret_ref; -} - diff --git a/c_sharp/src/org/ldk/enums/BlindedFailure.cs b/c_sharp/src/org/ldk/enums/BlindedFailure.cs new file mode 100644 index 00000000..230b434d --- /dev/null +++ b/c_sharp/src/org/ldk/enums/BlindedFailure.cs @@ -0,0 +1,16 @@ +namespace org { namespace ldk { namespace enums {/** + * Whether this blinded HTLC is being failed backwards by the introduction node or a blinded node, + * which determines the failure message that should be used. + */ +public enum BlindedFailure { + /** + * This HTLC is being failed backwards by the introduction node, and thus should be failed with + * [`msgs::UpdateFailHTLC`] and error code `0x8000|0x4000|24`. + */ + LDKBlindedFailure_FromIntroductionNode, + /** + * This HTLC is being failed backwards by a blinded node within the path, and thus should be + * failed with [`msgs::UpdateFailMalformedHTLC`] and error code `0x8000|0x4000|24`. + */ + LDKBlindedFailure_FromBlindedNode, +}} } } diff --git a/c_sharp/src/org/ldk/enums/ConfirmationTarget.cs b/c_sharp/src/org/ldk/enums/ConfirmationTarget.cs index dceec736..c5b9fcde 100644 --- a/c_sharp/src/org/ldk/enums/ConfirmationTarget.cs +++ b/c_sharp/src/org/ldk/enums/ConfirmationTarget.cs @@ -10,25 +10,6 @@ public enum ConfirmationTarget { * fee - this should be a relatively high priority feerate. */ LDKConfirmationTarget_OnChainSweep, - /** - * The highest feerate we will allow our channel counterparty to have in a non-anchor channel. - * - * This is the feerate on the transaction which we (or our counterparty) will broadcast in - * order to close the channel unilaterally. Because our counterparty must ensure they can - * always broadcast the latest state, this value being too low will cause immediate - * force-closures. - * - * Allowing this value to be too high can allow our counterparty to burn our HTLC outputs to - * dust, which can result in HTLCs failing or force-closures (when the dust HTLCs exceed - * [`ChannelConfig::max_dust_htlc_exposure`]). - * - * Because most nodes use a feerate estimate which is based on a relatively high priority - * transaction entering the current mempool, setting this to a small multiple of your current - * high priority feerate estimate should suffice. - * - * [`ChannelConfig::max_dust_htlc_exposure`]: crate::util::config::ChannelConfig::max_dust_htlc_exposure - */ - LDKConfirmationTarget_MaxAllowedNonAnchorChannelRemoteFee, /** * This is the lowest feerate we will allow our channel counterparty to have in an anchor * channel in order to close the channel if a channel party goes away. diff --git a/c_sharp/src/org/ldk/impl/bindings.cs b/c_sharp/src/org/ldk/impl/bindings.cs index 8e1e194c..e3c3a6e4 100644 --- a/c_sharp/src/org/ldk/impl/bindings.cs +++ b/c_sharp/src/org/ldk/impl/bindings.cs @@ -25,20 +25,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKBech32Error_ty_from_ptr")] public static extern long LDKBech32Error_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKBech32Error_InvalidChar_get_invalid_char")] public static extern int LDKBech32Error_InvalidChar_get_invalid_char(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKBech32Error_InvalidData_get_invalid_data")] public static extern byte LDKBech32Error_InvalidData_get_invalid_data(long ptr); - // struct LDKWitness TxIn_get_witness (struct LDKTxIn* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_witness")] public static extern long TxIn_get_witness(long _thing); - // struct LDKCVec_u8Z TxIn_get_script_sig (struct LDKTxIn* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_script_sig")] public static extern long TxIn_get_script_sig(long _thing); - // LDKThirtyTwoBytes TxIn_get_previous_txid (struct LDKTxIn* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_previous_txid")] public static extern long TxIn_get_previous_txid(long _thing); - // uint32_t TxIn_get_previous_vout (struct LDKTxIn* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_previous_vout")] public static extern int TxIn_get_previous_vout(long _thing); - // uint32_t TxIn_get_sequence (struct LDKTxIn* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_sequence")] public static extern int TxIn_get_sequence(long _thing); - // struct LDKCVec_u8Z TxOut_get_script_pubkey (struct LDKTxOut* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_get_script_pubkey")] public static extern long TxOut_get_script_pubkey(long _thing); - // uint64_t TxOut_get_value (struct LDKTxOut* thing) - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_get_value")] public static extern long TxOut_get_value(long _thing); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_u64Z_ty_from_ptr")] public static extern long LDKCOption_u64Z_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_u64Z_Some_get_some")] public static extern long LDKCOption_u64Z_Some_get_some(long ptr); // struct LDKRefund CResult_RefundBolt12ParseErrorZ_get_ok(LDKCResult_RefundBolt12ParseErrorZ *NONNULL_PTR owner); @@ -102,6 +88,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_ty_from_ptr")] public static extern long LDKSpendableOutputDescriptor_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_outpoint")] public static extern long LDKSpendableOutputDescriptor_StaticOutput_get_outpoint(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_output")] public static extern long LDKSpendableOutputDescriptor_StaticOutput_get_output(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_StaticOutput_get_channel_keys_id")] public static extern long LDKSpendableOutputDescriptor_StaticOutput_get_channel_keys_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_DelayedPaymentOutput_get_delayed_payment_output")] public static extern long LDKSpendableOutputDescriptor_DelayedPaymentOutput_get_delayed_payment_output(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSpendableOutputDescriptor_StaticPaymentOutput_get_static_payment_output")] public static extern long LDKSpendableOutputDescriptor_StaticPaymentOutput_get_static_payment_output(long ptr); // struct LDKSpendableOutputDescriptor CResult_SpendableOutputDescriptorDecodeErrorZ_get_ok(LDKCResult_SpendableOutputDescriptorDecodeErrorZ *NONNULL_PTR owner); @@ -110,14 +97,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpendableOutputDescriptorDecodeErrorZ_get_err")] public static extern long CResult_SpendableOutputDescriptorDecodeErrorZ_get_err(long _owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_u32Z_ty_from_ptr")] public static extern long LDKCOption_u32Z_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_u32Z_Some_get_some")] public static extern int LDKCOption_u32Z_Some_get_some(long ptr); - // struct LDKCVec_u8Z C2Tuple_CVec_u8ZusizeZ_get_a(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_a")] public static extern long C2Tuple_CVec_u8ZusizeZ_get_a(long _owner); - // uintptr_t C2Tuple_CVec_u8ZusizeZ_get_b(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_get_b")] public static extern long C2Tuple_CVec_u8ZusizeZ_get_b(long _owner); - // struct LDKC2Tuple_CVec_u8ZusizeZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok")] public static extern long CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(long _owner); - // void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err")] public static extern void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_err(long _owner); + // struct LDKCVec_u8Z C2Tuple_CVec_u8Zu64Z_get_a(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_get_a")] public static extern long C2Tuple_CVec_u8Zu64Z_get_a(long _owner); + // uint64_t C2Tuple_CVec_u8Zu64Z_get_b(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_get_b")] public static extern long C2Tuple_CVec_u8Zu64Z_get_b(long _owner); + // struct LDKC2Tuple_CVec_u8Zu64Z CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok")] public static extern long CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(long _owner); + // void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err")] public static extern void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_err(long _owner); // struct LDKChannelDerivationParameters CResult_ChannelDerivationParametersDecodeErrorZ_get_ok(LDKCResult_ChannelDerivationParametersDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelDerivationParametersDecodeErrorZ_get_ok")] public static extern long CResult_ChannelDerivationParametersDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_ChannelDerivationParametersDecodeErrorZ_get_err(LDKCResult_ChannelDerivationParametersDecodeErrorZ *NONNULL_PTR owner); @@ -130,18 +117,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneNoneZ_get_ok")] public static extern void CResult_NoneNoneZ_get_ok(long _owner); // void CResult_NoneNoneZ_get_err(LDKCResult_NoneNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneNoneZ_get_err")] public static extern void CResult_NoneNoneZ_get_err(long _owner); - // struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(long _owner); - // struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(long _owner); - // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(long _owner); - // void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err")] public static extern void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(long _owner); - // struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_get_ok")] public static extern long CResult_ECDSASignatureNoneZ_get_ok(long _owner); - // void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_get_err")] public static extern void CResult_ECDSASignatureNoneZ_get_err(long _owner); // struct LDKPublicKey CResult_PublicKeyNoneZ_get_ok(LDKCResult_PublicKeyNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PublicKeyNoneZ_get_ok")] public static extern long CResult_PublicKeyNoneZ_get_ok(long _owner); // void CResult_PublicKeyNoneZ_get_err(LDKCResult_PublicKeyNoneZ *NONNULL_PTR owner); @@ -156,10 +131,23 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SchnorrSignatureNoneZ_get_ok")] public static extern long CResult_SchnorrSignatureNoneZ_get_ok(long _owner); // void CResult_SchnorrSignatureNoneZ_get_err(LDKCResult_SchnorrSignatureNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SchnorrSignatureNoneZ_get_err")] public static extern void CResult_SchnorrSignatureNoneZ_get_err(long _owner); + // struct LDKECDSASignature CResult_ECDSASignatureNoneZ_get_ok(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_get_ok")] public static extern long CResult_ECDSASignatureNoneZ_get_ok(long _owner); + // void CResult_ECDSASignatureNoneZ_get_err(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_get_err")] public static extern void CResult_ECDSASignatureNoneZ_get_err(long _owner); + // struct LDKECDSASignature C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_a(long _owner); + // struct LDKCVec_ECDSASignatureZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_get_b(long _owner); + // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_ok(long _owner); + // void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err")] public static extern void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_get_err(long _owner); public interface LDKChannelSigner { long get_per_commitment_point(long idx); long release_commitment_secret(long idx); - long validate_holder_commitment(long holder_tx, long preimages); + long validate_holder_commitment(long holder_tx, long outbound_htlc_preimages); + long validate_counterparty_revocation(long idx, long secret); long channel_keys_id(); void provide_channel_parameters(long channel_parameters); } @@ -184,8 +172,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_get_per_commitment_point")] public static extern long ChannelSigner_get_per_commitment_point(long _this_arg, long _idx); // LDKThirtyTwoBytes ChannelSigner_release_commitment_secret LDKChannelSigner *NONNULL_PTR this_arg, uint64_t idx [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_release_commitment_secret")] public static extern long ChannelSigner_release_commitment_secret(long _this_arg, long _idx); - // LDKCResult_NoneNoneZ ChannelSigner_validate_holder_commitment LDKChannelSigner *NONNULL_PTR this_arg, const struct LDKHolderCommitmentTransaction *NONNULL_PTR holder_tx, struct LDKCVec_ThirtyTwoBytesZ preimages - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_validate_holder_commitment")] public static extern long ChannelSigner_validate_holder_commitment(long _this_arg, long _holder_tx, long _preimages); + // LDKCResult_NoneNoneZ ChannelSigner_validate_holder_commitment LDKChannelSigner *NONNULL_PTR this_arg, const struct LDKHolderCommitmentTransaction *NONNULL_PTR holder_tx, struct LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_validate_holder_commitment")] public static extern long ChannelSigner_validate_holder_commitment(long _this_arg, long _holder_tx, long _outbound_htlc_preimages); + // LDKCResult_NoneNoneZ ChannelSigner_validate_counterparty_revocation LDKChannelSigner *NONNULL_PTR this_arg, uint64_t idx, const uint8_t (*secret)[32] + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_validate_counterparty_revocation")] public static extern long ChannelSigner_validate_counterparty_revocation(long _this_arg, long _idx, long _secret); // LDKThirtyTwoBytes ChannelSigner_channel_keys_id LDKChannelSigner *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_channel_keys_id")] public static extern long ChannelSigner_channel_keys_id(long _this_arg); // void ChannelSigner_provide_channel_parameters LDKChannelSigner *NONNULL_PTR this_arg, const struct LDKChannelTransactionParameters *NONNULL_PTR channel_parameters @@ -193,8 +183,7 @@ internal class bindings { // LDKChannelPublicKeys ChannelSigner_get_pubkeys LDKChannelSigner *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_get_pubkeys")] public static extern long ChannelSigner_get_pubkeys(long _this_arg); public interface LDKEcdsaChannelSigner { - long sign_counterparty_commitment(long commitment_tx, long preimages); - long validate_counterparty_revocation(long idx, long secret); + long sign_counterparty_commitment(long commitment_tx, long inbound_htlc_preimages, long outbound_htlc_preimages); long sign_holder_commitment(long commitment_tx); long sign_justice_revoked_output(long justice_tx, long input, long amount, long per_commitment_key); long sign_justice_revoked_htlc(long justice_tx, long input, long amount, long per_commitment_key, long htlc); @@ -221,10 +210,8 @@ internal class bindings { ret[1] = i; return ret; } - // LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ EcdsaChannelSigner_sign_counterparty_commitment LDKEcdsaChannelSigner *NONNULL_PTR this_arg, const struct LDKCommitmentTransaction *NONNULL_PTR commitment_tx, struct LDKCVec_ThirtyTwoBytesZ preimages - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment")] public static extern long EcdsaChannelSigner_sign_counterparty_commitment(long _this_arg, long _commitment_tx, long _preimages); - // LDKCResult_NoneNoneZ EcdsaChannelSigner_validate_counterparty_revocation LDKEcdsaChannelSigner *NONNULL_PTR this_arg, uint64_t idx, const uint8_t (*secret)[32] - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_validate_counterparty_revocation")] public static extern long EcdsaChannelSigner_validate_counterparty_revocation(long _this_arg, long _idx, long _secret); + // LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ EcdsaChannelSigner_sign_counterparty_commitment LDKEcdsaChannelSigner *NONNULL_PTR this_arg, const struct LDKCommitmentTransaction *NONNULL_PTR commitment_tx, struct LDKCVec_ThirtyTwoBytesZ inbound_htlc_preimages, struct LDKCVec_ThirtyTwoBytesZ outbound_htlc_preimages + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_sign_counterparty_commitment")] public static extern long EcdsaChannelSigner_sign_counterparty_commitment(long _this_arg, long _commitment_tx, long _inbound_htlc_preimages, long _outbound_htlc_preimages); // LDKCResult_ECDSASignatureNoneZ EcdsaChannelSigner_sign_holder_commitment LDKEcdsaChannelSigner *NONNULL_PTR this_arg, const struct LDKHolderCommitmentTransaction *NONNULL_PTR commitment_tx [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_sign_holder_commitment")] public static extern long EcdsaChannelSigner_sign_holder_commitment(long _this_arg, long _commitment_tx); // LDKCResult_ECDSASignatureNoneZ EcdsaChannelSigner_sign_justice_revoked_output LDKEcdsaChannelSigner *NONNULL_PTR this_arg, struct LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (*per_commitment_key)[32] @@ -279,10 +266,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_u16Z_Some_get_some")] public static extern short LDKCOption_u16Z_Some_get_some(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_boolZ_ty_from_ptr")] public static extern long LDKCOption_boolZ_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_boolZ_Some_get_some")] public static extern bool LDKCOption_boolZ_Some_get_some(long ptr); - // struct LDKCVec_CVec_u8ZZ CResult_CVec_CVec_u8ZZNoneZ_get_ok(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_ok")] public static extern long CResult_CVec_CVec_u8ZZNoneZ_get_ok(long _owner); - // void CResult_CVec_CVec_u8ZZNoneZ_get_err(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_get_err")] public static extern void CResult_CVec_CVec_u8ZZNoneZ_get_err(long _owner); + // struct LDKWitness CResult_WitnessNoneZ_get_ok(LDKCResult_WitnessNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_get_ok")] public static extern long CResult_WitnessNoneZ_get_ok(long _owner); + // void CResult_WitnessNoneZ_get_err(LDKCResult_WitnessNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_get_err")] public static extern void CResult_WitnessNoneZ_get_err(long _owner); // struct LDKInMemorySigner CResult_InMemorySignerDecodeErrorZ_get_ok(LDKCResult_InMemorySignerDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InMemorySignerDecodeErrorZ_get_ok")] public static extern long CResult_InMemorySignerDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_InMemorySignerDecodeErrorZ_get_err(LDKCResult_InMemorySignerDecodeErrorZ *NONNULL_PTR owner); @@ -291,8 +278,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TransactionNoneZ_get_ok")] public static extern long CResult_TransactionNoneZ_get_ok(long _owner); // void CResult_TransactionNoneZ_get_err(LDKCResult_TransactionNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TransactionNoneZ_get_err")] public static extern void CResult_TransactionNoneZ_get_err(long _owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_ty_from_ptr")] public static extern long LDKCandidateRouteHop_ty_from_ptr(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_FirstHop_get_first_hop")] public static extern long LDKCandidateRouteHop_FirstHop_get_first_hop(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_PublicHop_get_public_hop")] public static extern long LDKCandidateRouteHop_PublicHop_get_public_hop(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_PrivateHop_get_private_hop")] public static extern long LDKCandidateRouteHop_PrivateHop_get_private_hop(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_Blinded_get_blinded")] public static extern long LDKCandidateRouteHop_Blinded_get_blinded(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCandidateRouteHop_OneHopBlinded_get_one_hop_blinded")] public static extern long LDKCandidateRouteHop_OneHopBlinded_get_one_hop_blinded(long ptr); public interface LDKScoreLookUp { - long channel_penalty_msat(long short_channel_id, long source, long target, long usage, long score_params); + long channel_penalty_msat(long candidate, long usage, long score_params); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKScoreLookUp_new")] public static extern long LDKScoreLookUp_new_native(long impl_idx); public static long[] LDKScoreLookUp_new(LDKScoreLookUp impl) { @@ -311,13 +304,14 @@ internal class bindings { ret[1] = i; return ret; } - // uint64_t ScoreLookUp_channel_penalty_msat LDKScoreLookUp *NONNULL_PTR this_arg, uint64_t short_channel_id, const struct LDKNodeId *NONNULL_PTR source, const struct LDKNodeId *NONNULL_PTR target, struct LDKChannelUsage usage, const struct LDKProbabilisticScoringFeeParameters *NONNULL_PTR score_params - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreLookUp_channel_penalty_msat")] public static extern long ScoreLookUp_channel_penalty_msat(long _this_arg, long _short_channel_id, long _source, long _target, long _usage, long _score_params); + // uint64_t ScoreLookUp_channel_penalty_msat LDKScoreLookUp *NONNULL_PTR this_arg, const struct LDKCandidateRouteHop *NONNULL_PTR candidate, struct LDKChannelUsage usage, const struct LDKProbabilisticScoringFeeParameters *NONNULL_PTR score_params + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreLookUp_channel_penalty_msat")] public static extern long ScoreLookUp_channel_penalty_msat(long _this_arg, long _candidate, long _usage, long _score_params); public interface LDKScoreUpdate { - void payment_path_failed(long path, long short_channel_id); - void payment_path_successful(long path); - void probe_failed(long path, long short_channel_id); - void probe_successful(long path); + void payment_path_failed(long path, long short_channel_id, long duration_since_epoch); + void payment_path_successful(long path, long duration_since_epoch); + void probe_failed(long path, long short_channel_id, long duration_since_epoch); + void probe_successful(long path, long duration_since_epoch); + void time_passed(long duration_since_epoch); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKScoreUpdate_new")] public static extern long LDKScoreUpdate_new_native(long impl_idx); public static long[] LDKScoreUpdate_new(LDKScoreUpdate impl) { @@ -336,14 +330,16 @@ internal class bindings { ret[1] = i; return ret; } - // void ScoreUpdate_payment_path_failed LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t short_channel_id - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_payment_path_failed")] public static extern void ScoreUpdate_payment_path_failed(long _this_arg, long _path, long _short_channel_id); - // void ScoreUpdate_payment_path_successful LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_payment_path_successful")] public static extern void ScoreUpdate_payment_path_successful(long _this_arg, long _path); - // void ScoreUpdate_probe_failed LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t short_channel_id - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_probe_failed")] public static extern void ScoreUpdate_probe_failed(long _this_arg, long _path, long _short_channel_id); - // void ScoreUpdate_probe_successful LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_probe_successful")] public static extern void ScoreUpdate_probe_successful(long _this_arg, long _path); + // void ScoreUpdate_payment_path_failed LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t short_channel_id, uint64_t duration_since_epoch + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_payment_path_failed")] public static extern void ScoreUpdate_payment_path_failed(long _this_arg, long _path, long _short_channel_id, long _duration_since_epoch); + // void ScoreUpdate_payment_path_successful LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t duration_since_epoch + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_payment_path_successful")] public static extern void ScoreUpdate_payment_path_successful(long _this_arg, long _path, long _duration_since_epoch); + // void ScoreUpdate_probe_failed LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t short_channel_id, uint64_t duration_since_epoch + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_probe_failed")] public static extern void ScoreUpdate_probe_failed(long _this_arg, long _path, long _short_channel_id, long _duration_since_epoch); + // void ScoreUpdate_probe_successful LDKScoreUpdate *NONNULL_PTR this_arg, const struct LDKPath *NONNULL_PTR path, uint64_t duration_since_epoch + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_probe_successful")] public static extern void ScoreUpdate_probe_successful(long _this_arg, long _path, long _duration_since_epoch); + // void ScoreUpdate_time_passed LDKScoreUpdate *NONNULL_PTR this_arg, uint64_t duration_since_epoch + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ScoreUpdate_time_passed")] public static extern void ScoreUpdate_time_passed(long _this_arg, long _duration_since_epoch); public interface LDKLockableScore { long read_lock(); long write_lock(); @@ -401,6 +397,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteLightningErrorZ_get_ok")] public static extern long CResult_RouteLightningErrorZ_get_ok(long _owner); // struct LDKLightningError CResult_RouteLightningErrorZ_get_err(LDKCResult_RouteLightningErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteLightningErrorZ_get_err")] public static extern long CResult_RouteLightningErrorZ_get_err(long _owner); + // struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_get_a(long _owner); + // struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_get_b(long _owner); + // struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok")] public static extern long CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(long _owner); + // void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err")] public static extern void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_err(long _owner); + // struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_get_ok")] public static extern long CResult_OnionMessagePathNoneZ_get_ok(long _owner); + // void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_get_err")] public static extern void CResult_OnionMessagePathNoneZ_get_err(long _owner); + // struct LDKCVec_BlindedPathZ CResult_CVec_BlindedPathZNoneZ_get_ok(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_ok")] public static extern long CResult_CVec_BlindedPathZNoneZ_get_ok(long _owner); + // void CResult_CVec_BlindedPathZNoneZ_get_err(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_get_err")] public static extern void CResult_CVec_BlindedPathZNoneZ_get_err(long _owner); // struct LDKInFlightHtlcs CResult_InFlightHtlcsDecodeErrorZ_get_ok(LDKCResult_InFlightHtlcsDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InFlightHtlcsDecodeErrorZ_get_ok")] public static extern long CResult_InFlightHtlcsDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_InFlightHtlcsDecodeErrorZ_get_err(LDKCResult_InFlightHtlcsDecodeErrorZ *NONNULL_PTR owner); @@ -425,10 +437,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentParametersDecodeErrorZ_get_ok")] public static extern long CResult_PaymentParametersDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_PaymentParametersDecodeErrorZ_get_err(LDKCResult_PaymentParametersDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentParametersDecodeErrorZ_get_err")] public static extern long CResult_PaymentParametersDecodeErrorZ_get_err(long _owner); - // struct LDKBlindedPayInfo C2Tuple_BlindedPayInfoBlindedPathZ_get_a(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_a")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_get_a(long _owner); - // struct LDKBlindedPath C2Tuple_BlindedPayInfoBlindedPathZ_get_b(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_get_b")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_get_b(long _owner); // struct LDKRouteHint CResult_RouteHintDecodeErrorZ_get_ok(LDKCResult_RouteHintDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteHintDecodeErrorZ_get_ok")] public static extern long CResult_RouteHintDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_RouteHintDecodeErrorZ_get_err(LDKCResult_RouteHintDecodeErrorZ *NONNULL_PTR owner); @@ -487,10 +495,12 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_usizeTransactionZ_get_a")] public static extern long C2Tuple_usizeTransactionZ_get_a(long _owner); // struct LDKTransaction C2Tuple_usizeTransactionZ_get_b(LDKC2Tuple_usizeTransactionZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_usizeTransactionZ_get_b")] public static extern long C2Tuple_usizeTransactionZ_get_b(long _owner); - // struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a")] public static extern long C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(long _owner); - // struct LDKCOption_ThirtyTwoBytesZ C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b")] public static extern long C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(long _owner); + // struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a")] public static extern long C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(long _owner); + // uint32_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b")] public static extern int C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(long _owner); + // struct LDKCOption_ThirtyTwoBytesZ C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c")] public static extern long C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(long _owner); // enum LDKChannelMonitorUpdateStatus CResult_ChannelMonitorUpdateStatusNoneZ_get_ok(LDKCResult_ChannelMonitorUpdateStatusNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelMonitorUpdateStatusNoneZ_get_ok")] public static extern ChannelMonitorUpdateStatus CResult_ChannelMonitorUpdateStatusNoneZ_get_ok(long _owner); // void CResult_ChannelMonitorUpdateStatusNoneZ_get_err(LDKCResult_ChannelMonitorUpdateStatusNoneZ *NONNULL_PTR owner); @@ -625,6 +635,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendFundingCreated_get_msg")] public static extern long LDKMessageSendEvent_SendFundingCreated_get_msg(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendFundingSigned_get_node_id")] public static extern long LDKMessageSendEvent_SendFundingSigned_get_node_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendFundingSigned_get_msg")] public static extern long LDKMessageSendEvent_SendFundingSigned_get_msg(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendStfu_get_node_id")] public static extern long LDKMessageSendEvent_SendStfu_get_node_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendStfu_get_msg")] public static extern long LDKMessageSendEvent_SendStfu_get_msg(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSplice_get_node_id")] public static extern long LDKMessageSendEvent_SendSplice_get_node_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSplice_get_msg")] public static extern long LDKMessageSendEvent_SendSplice_get_msg(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_node_id")] public static extern long LDKMessageSendEvent_SendSpliceAck_get_node_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSpliceAck_get_msg")] public static extern long LDKMessageSendEvent_SendSpliceAck_get_msg(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_node_id")] public static extern long LDKMessageSendEvent_SendSpliceLocked_get_node_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendSpliceLocked_get_msg")] public static extern long LDKMessageSendEvent_SendSpliceLocked_get_msg(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendTxAddInput_get_node_id")] public static extern long LDKMessageSendEvent_SendTxAddInput_get_node_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendTxAddInput_get_msg")] public static extern long LDKMessageSendEvent_SendTxAddInput_get_msg(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageSendEvent_SendTxAddOutput_get_node_id")] public static extern long LDKMessageSendEvent_SendTxAddOutput_get_node_id(long ptr); @@ -718,6 +736,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NetworkGraphDecodeErrorZ_get_err")] public static extern long CResult_NetworkGraphDecodeErrorZ_get_err(long _owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_CVec_SocketAddressZZ_ty_from_ptr")] public static extern long LDKCOption_CVec_SocketAddressZZ_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_CVec_SocketAddressZZ_Some_get_some")] public static extern long LDKCOption_CVec_SocketAddressZZ_Some_get_some(long ptr); + // struct LDKPendingHTLCInfo CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok")] public static extern long CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(long _owner); + // struct LDKInboundHTLCErr CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_get_err")] public static extern long CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(long _owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_TxOutZ_ty_from_ptr")] public static extern long LDKCOption_TxOutZ_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_TxOutZ_Some_get_some")] public static extern long LDKCOption_TxOutZ_Some_get_some(long ptr); // struct LDKCoinSelection CResult_CoinSelectionNoneZ_get_ok(LDKCResult_CoinSelectionNoneZ *NONNULL_PTR owner); @@ -831,6 +853,37 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_get_ok")] public static extern long CResult_PhantomRouteHintsDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_PhantomRouteHintsDecodeErrorZ_get_err(LDKCResult_PhantomRouteHintsDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_get_err")] public static extern long CResult_PhantomRouteHintsDecodeErrorZ_get_err(long _owner); + // struct LDKBlindedForward CResult_BlindedForwardDecodeErrorZ_get_ok(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_ok")] public static extern long CResult_BlindedForwardDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_BlindedForwardDecodeErrorZ_get_err(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_get_err")] public static extern long CResult_BlindedForwardDecodeErrorZ_get_err(long _owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ty_from_ptr")] public static extern long LDKPendingHTLCRouting_ty_from_ptr(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Forward_get_onion_packet")] public static extern long LDKPendingHTLCRouting_Forward_get_onion_packet(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Forward_get_short_channel_id")] public static extern long LDKPendingHTLCRouting_Forward_get_short_channel_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Forward_get_blinded")] public static extern long LDKPendingHTLCRouting_Forward_get_blinded(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_data")] public static extern long LDKPendingHTLCRouting_Receive_get_payment_data(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_payment_metadata")] public static extern long LDKPendingHTLCRouting_Receive_get_payment_metadata(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_incoming_cltv_expiry")] public static extern int LDKPendingHTLCRouting_Receive_get_incoming_cltv_expiry(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_phantom_shared_secret")] public static extern long LDKPendingHTLCRouting_Receive_get_phantom_shared_secret(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_custom_tlvs")] public static extern long LDKPendingHTLCRouting_Receive_get_custom_tlvs(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_Receive_get_requires_blinded_error")] public static extern bool LDKPendingHTLCRouting_Receive_get_requires_blinded_error(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_data")] public static extern long LDKPendingHTLCRouting_ReceiveKeysend_get_payment_data(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_preimage")] public static extern long LDKPendingHTLCRouting_ReceiveKeysend_get_payment_preimage(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_payment_metadata")] public static extern long LDKPendingHTLCRouting_ReceiveKeysend_get_payment_metadata(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_incoming_cltv_expiry")] public static extern int LDKPendingHTLCRouting_ReceiveKeysend_get_incoming_cltv_expiry(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPendingHTLCRouting_ReceiveKeysend_get_custom_tlvs")] public static extern long LDKPendingHTLCRouting_ReceiveKeysend_get_custom_tlvs(long ptr); + // struct LDKPendingHTLCRouting CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_ok")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_PendingHTLCRoutingDecodeErrorZ_get_err(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_get_err")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_get_err(long _owner); + // struct LDKPendingHTLCInfo CResult_PendingHTLCInfoDecodeErrorZ_get_ok(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_ok")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_PendingHTLCInfoDecodeErrorZ_get_err(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_get_err")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_get_err(long _owner); + // enum LDKBlindedFailure CResult_BlindedFailureDecodeErrorZ_get_ok(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_ok")] public static extern BlindedFailure CResult_BlindedFailureDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_BlindedFailureDecodeErrorZ_get_err(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_get_err")] public static extern long CResult_BlindedFailureDecodeErrorZ_get_err(long _owner); // enum LDKChannelShutdownState CResult_ChannelShutdownStateDecodeErrorZ_get_ok(LDKCResult_ChannelShutdownStateDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelShutdownStateDecodeErrorZ_get_ok")] public static extern ChannelShutdownState CResult_ChannelShutdownStateDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_ChannelShutdownStateDecodeErrorZ_get_err(LDKCResult_ChannelShutdownStateDecodeErrorZ *NONNULL_PTR owner); @@ -955,7 +1008,7 @@ internal class bindings { long generate_channel_keys_id(bool inbound, long channel_value_satoshis, long user_channel_id); long derive_channel_signer(long channel_value_satoshis, long channel_keys_id); long read_chan_signer(long reader); - long get_destination_script(); + long get_destination_script(long channel_keys_id); long get_shutdown_scriptpubkey(); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSignerProvider_new")] public static extern long LDKSignerProvider_new_native(long impl_idx); @@ -981,8 +1034,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignerProvider_derive_channel_signer")] public static extern long SignerProvider_derive_channel_signer(long _this_arg, long _channel_value_satoshis, long _channel_keys_id); // LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ SignerProvider_read_chan_signer LDKSignerProvider *NONNULL_PTR this_arg, struct LDKu8slice reader [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignerProvider_read_chan_signer")] public static extern long SignerProvider_read_chan_signer(long _this_arg, long _reader); - // LDKCResult_CVec_u8ZNoneZ SignerProvider_get_destination_script LDKSignerProvider *NONNULL_PTR this_arg - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignerProvider_get_destination_script")] public static extern long SignerProvider_get_destination_script(long _this_arg); + // LDKCResult_CVec_u8ZNoneZ SignerProvider_get_destination_script LDKSignerProvider *NONNULL_PTR this_arg, struct LDKThirtyTwoBytes channel_keys_id + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignerProvider_get_destination_script")] public static extern long SignerProvider_get_destination_script(long _this_arg, long _channel_keys_id); // LDKCResult_ShutdownScriptNoneZ SignerProvider_get_shutdown_scriptpubkey LDKSignerProvider *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignerProvider_get_shutdown_scriptpubkey")] public static extern long SignerProvider_get_shutdown_scriptpubkey(long _this_arg); public interface LDKFeeEstimator { @@ -1007,12 +1060,38 @@ internal class bindings { } // uint32_t FeeEstimator_get_est_sat_per_1000_weight LDKFeeEstimator *NONNULL_PTR this_arg, enum LDKConfirmationTarget confirmation_target [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FeeEstimator_get_est_sat_per_1000_weight")] public static extern int FeeEstimator_get_est_sat_per_1000_weight(long _this_arg, ConfirmationTarget _confirmation_target); + public interface LDKMessageRouter { + long find_path(long sender, long peers, long destination); + long create_blinded_paths(long recipient, long peers); + } + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageRouter_new")] public static extern long LDKMessageRouter_new_native(long impl_idx); + public static long[] LDKMessageRouter_new(LDKMessageRouter impl) { + long new_obj_idx = js_objs.Count; + int i = 0; + for (; i < js_objs.Count; i++) { + if (js_objs[i] == null || !js_objs[i].IsAlive) { new_obj_idx = i; break; } + } + if (i == js_objs.Count) { + js_objs.Add(new WeakReference(impl)); + } else { + js_objs[i] = new WeakReference(impl); + } + long[] ret = new long[2]; + ret[0] = LDKMessageRouter_new_native(i); + ret[1] = i; + return ret; + } + // LDKCResult_OnionMessagePathNoneZ MessageRouter_find_path LDKMessageRouter *NONNULL_PTR this_arg, struct LDKPublicKey sender, struct LDKCVec_PublicKeyZ peers, struct LDKDestination destination + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageRouter_find_path")] public static extern long MessageRouter_find_path(long _this_arg, long _sender, long _peers, long _destination); + // LDKCResult_CVec_BlindedPathZNoneZ MessageRouter_create_blinded_paths LDKMessageRouter *NONNULL_PTR this_arg, struct LDKPublicKey recipient, struct LDKCVec_PublicKeyZ peers + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageRouter_create_blinded_paths")] public static extern long MessageRouter_create_blinded_paths(long _this_arg, long _recipient, long _peers); public interface LDKRouter { long find_route(long payer, long route_params, long first_hops, long inflight_htlcs); long find_route_with_id(long payer, long route_params, long first_hops, long inflight_htlcs, long _payment_hash, long _payment_id); + long create_blinded_payment_paths(long recipient, long first_hops, long tlvs, long amount_msats); } - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKRouter_new")] public static extern long LDKRouter_new_native(long impl_idx); - public static long[] LDKRouter_new(LDKRouter impl) { + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKRouter_new")] public static extern long LDKRouter_new_native(long impl_idx, long MessageRouter); + public static long[] LDKRouter_new(LDKRouter impl, long MessageRouter) { long new_obj_idx = js_objs.Count; int i = 0; for (; i < js_objs.Count; i++) { @@ -1024,7 +1103,7 @@ internal class bindings { js_objs[i] = new WeakReference(impl); } long[] ret = new long[2]; - ret[0] = LDKRouter_new_native(i); + ret[0] = LDKRouter_new_native(i, MessageRouter); ret[1] = i; return ret; } @@ -1032,6 +1111,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Router_find_route")] public static extern long Router_find_route(long _this_arg, long _payer, long _route_params, long _first_hops, long _inflight_htlcs); // LDKCResult_RouteLightningErrorZ Router_find_route_with_id LDKRouter *NONNULL_PTR this_arg, struct LDKPublicKey payer, const struct LDKRouteParameters *NONNULL_PTR route_params, struct LDKCVec_ChannelDetailsZ *first_hops, struct LDKInFlightHtlcs inflight_htlcs, struct LDKThirtyTwoBytes _payment_hash, struct LDKThirtyTwoBytes _payment_id [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Router_find_route_with_id")] public static extern long Router_find_route_with_id(long _this_arg, long _payer, long _route_params, long _first_hops, long _inflight_htlcs, long __payment_hash, long __payment_id); + // LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ Router_create_blinded_payment_paths LDKRouter *NONNULL_PTR this_arg, struct LDKPublicKey recipient, struct LDKCVec_ChannelDetailsZ first_hops, struct LDKReceiveTlvs tlvs, uint64_t amount_msats + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Router_create_blinded_payment_paths")] public static extern long Router_create_blinded_payment_paths(long _this_arg, long _recipient, long _first_hops, long _tlvs, long _amount_msats); // struct LDKThirtyTwoBytes C2Tuple_ThirtyTwoBytesChannelManagerZ_get_a(LDKC2Tuple_ThirtyTwoBytesChannelManagerZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesChannelManagerZ_get_a")] public static extern long C2Tuple_ThirtyTwoBytesChannelManagerZ_get_a(long _owner); // struct LDKChannelManager C2Tuple_ThirtyTwoBytesChannelManagerZ_get_b(LDKC2Tuple_ThirtyTwoBytesChannelManagerZ *NONNULL_PTR owner); @@ -1148,9 +1229,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyTypeZ_get_a")] public static extern long C2Tuple_PublicKeyTypeZ_get_a(long _owner); // struct LDKType C2Tuple_PublicKeyTypeZ_get_b(LDKC2Tuple_PublicKeyTypeZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyTypeZ_get_b")] public static extern long C2Tuple_PublicKeyTypeZ_get_b(long _owner); + // struct LDKPublicKey C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a")] public static extern long C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(long _owner); + // struct LDKCVec_SocketAddressZ C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b")] public static extern long C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(long _owner); public interface LDKOnionMessageContents { long tlv_type(); long write(); + long debug_str(); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKOnionMessageContents_new")] public static extern long LDKOnionMessageContents_new_native(long impl_idx); public static long[] LDKOnionMessageContents_new(LDKOnionMessageContents impl) { @@ -1173,6 +1259,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageContents_tlv_type")] public static extern long OnionMessageContents_tlv_type(long _this_arg); // LDKCVec_u8Z OnionMessageContents_write LDKOnionMessageContents *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageContents_write")] public static extern long OnionMessageContents_write(long _this_arg); + // LDKStr OnionMessageContents_debug_str LDKOnionMessageContents *NONNULL_PTR this_arg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageContents_debug_str")] public static extern long OnionMessageContents_debug_str(long _this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_OnionMessageContentsZ_ty_from_ptr")] public static extern long LDKCOption_OnionMessageContentsZ_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCOption_OnionMessageContentsZ_Some_get_some")] public static extern long LDKCOption_OnionMessageContentsZ_Some_get_some(long ptr); // struct LDKCOption_OnionMessageContentsZ CResult_COption_OnionMessageContentsZDecodeErrorZ_get_ok(LDKCResult_COption_OnionMessageContentsZDecodeErrorZ *NONNULL_PTR owner); @@ -1256,6 +1344,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_get_ok")] public static extern long CResult_AcceptChannelV2DecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_AcceptChannelV2DecodeErrorZ_get_err(LDKCResult_AcceptChannelV2DecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_get_err")] public static extern long CResult_AcceptChannelV2DecodeErrorZ_get_err(long _owner); + // struct LDKStfu CResult_StfuDecodeErrorZ_get_ok(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_get_ok")] public static extern long CResult_StfuDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_StfuDecodeErrorZ_get_err(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_get_err")] public static extern long CResult_StfuDecodeErrorZ_get_err(long _owner); + // struct LDKSplice CResult_SpliceDecodeErrorZ_get_ok(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_get_ok")] public static extern long CResult_SpliceDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_SpliceDecodeErrorZ_get_err(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_get_err")] public static extern long CResult_SpliceDecodeErrorZ_get_err(long _owner); + // struct LDKSpliceAck CResult_SpliceAckDecodeErrorZ_get_ok(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_get_ok")] public static extern long CResult_SpliceAckDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_SpliceAckDecodeErrorZ_get_err(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_get_err")] public static extern long CResult_SpliceAckDecodeErrorZ_get_err(long _owner); + // struct LDKSpliceLocked CResult_SpliceLockedDecodeErrorZ_get_ok(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_ok")] public static extern long CResult_SpliceLockedDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_SpliceLockedDecodeErrorZ_get_err(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_get_err")] public static extern long CResult_SpliceLockedDecodeErrorZ_get_err(long _owner); // struct LDKTxAddInput CResult_TxAddInputDecodeErrorZ_get_ok(LDKCResult_TxAddInputDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TxAddInputDecodeErrorZ_get_ok")] public static extern long CResult_TxAddInputDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_TxAddInputDecodeErrorZ_get_err(LDKCResult_TxAddInputDecodeErrorZ *NONNULL_PTR owner); @@ -1360,6 +1464,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_get_ok")] public static extern long CResult_UpdateFulfillHTLCDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_UpdateFulfillHTLCDecodeErrorZ_get_err(LDKCResult_UpdateFulfillHTLCDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_get_err")] public static extern long CResult_UpdateFulfillHTLCDecodeErrorZ_get_err(long _owner); + // struct LDKOnionPacket CResult_OnionPacketDecodeErrorZ_get_ok(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_get_ok")] public static extern long CResult_OnionPacketDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_OnionPacketDecodeErrorZ_get_err(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_get_err")] public static extern long CResult_OnionPacketDecodeErrorZ_get_err(long _owner); // struct LDKUpdateAddHTLC CResult_UpdateAddHTLCDecodeErrorZ_get_ok(LDKCResult_UpdateAddHTLCDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateAddHTLCDecodeErrorZ_get_ok")] public static extern long CResult_UpdateAddHTLCDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_UpdateAddHTLCDecodeErrorZ_get_err(LDKCResult_UpdateAddHTLCDecodeErrorZ *NONNULL_PTR owner); @@ -1368,6 +1476,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessageDecodeErrorZ_get_ok")] public static extern long CResult_OnionMessageDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_OnionMessageDecodeErrorZ_get_err(LDKCResult_OnionMessageDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessageDecodeErrorZ_get_err")] public static extern long CResult_OnionMessageDecodeErrorZ_get_err(long _owner); + // struct LDKFinalOnionHopData CResult_FinalOnionHopDataDecodeErrorZ_get_ok(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_ok")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_FinalOnionHopDataDecodeErrorZ_get_err(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_get_err")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_get_err(long _owner); // struct LDKPing CResult_PingDecodeErrorZ_get_ok(LDKCResult_PingDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PingDecodeErrorZ_get_ok")] public static extern long CResult_PingDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_PingDecodeErrorZ_get_err(LDKCResult_PingDecodeErrorZ *NONNULL_PTR owner); @@ -1580,6 +1692,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_PaymentClaimed_get_purpose")] public static extern long LDKEvent_PaymentClaimed_get_purpose(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_PaymentClaimed_get_htlcs")] public static extern long LDKEvent_PaymentClaimed_get_htlcs(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_PaymentClaimed_get_sender_intended_total_msat")] public static extern long LDKEvent_PaymentClaimed_get_sender_intended_total_msat(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ConnectionNeeded_get_node_id")] public static extern long LDKEvent_ConnectionNeeded_get_node_id(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ConnectionNeeded_get_addresses")] public static extern long LDKEvent_ConnectionNeeded_get_addresses(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_InvoiceRequestFailed_get_payment_id")] public static extern long LDKEvent_InvoiceRequestFailed_get_payment_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_PaymentSent_get_payment_id")] public static extern long LDKEvent_PaymentSent_get_payment_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_PaymentSent_get_payment_preimage")] public static extern long LDKEvent_PaymentSent_get_payment_preimage(long ptr); @@ -1631,6 +1745,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ChannelClosed_get_reason")] public static extern long LDKEvent_ChannelClosed_get_reason(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ChannelClosed_get_counterparty_node_id")] public static extern long LDKEvent_ChannelClosed_get_counterparty_node_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ChannelClosed_get_channel_capacity_sats")] public static extern long LDKEvent_ChannelClosed_get_channel_capacity_sats(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_ChannelClosed_get_channel_funding_txo")] public static extern long LDKEvent_ChannelClosed_get_channel_funding_txo(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_DiscardFunding_get_channel_id")] public static extern long LDKEvent_DiscardFunding_get_channel_id(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_DiscardFunding_get_transaction")] public static extern long LDKEvent_DiscardFunding_get_transaction(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKEvent_OpenChannelRequest_get_temporary_channel_id")] public static extern long LDKEvent_OpenChannelRequest_get_temporary_channel_id(long ptr); @@ -1722,10 +1837,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UntrustedStringDecodeErrorZ_get_ok")] public static extern long CResult_UntrustedStringDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_UntrustedStringDecodeErrorZ_get_err(LDKCResult_UntrustedStringDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UntrustedStringDecodeErrorZ_get_err")] public static extern long CResult_UntrustedStringDecodeErrorZ_get_err(long _owner); - // struct LDKReceiveTlvs CResult_ReceiveTlvsDecodeErrorZ_get_ok(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_ok")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_get_ok(long _owner); - // struct LDKDecodeError CResult_ReceiveTlvsDecodeErrorZ_get_err(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_get_err")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_get_err(long _owner); + // struct LDKThirtyTwoBytes C2Tuple__u832u16Z_get_a(LDKC2Tuple__u832u16Z *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_get_a")] public static extern long C2Tuple__u832u16Z_get_a(long _owner); + // uint16_t C2Tuple__u832u16Z_get_b(LDKC2Tuple__u832u16Z *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_get_b")] public static extern short C2Tuple__u832u16Z_get_b(long _owner); // struct LDKPaymentRelay CResult_PaymentRelayDecodeErrorZ_get_ok(LDKCResult_PaymentRelayDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentRelayDecodeErrorZ_get_ok")] public static extern long CResult_PaymentRelayDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_PaymentRelayDecodeErrorZ_get_err(LDKCResult_PaymentRelayDecodeErrorZ *NONNULL_PTR owner); @@ -1734,42 +1849,33 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_get_ok")] public static extern long CResult_PaymentConstraintsDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_PaymentConstraintsDecodeErrorZ_get_err(LDKCResult_PaymentConstraintsDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_get_err")] public static extern long CResult_PaymentConstraintsDecodeErrorZ_get_err(long _owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPaymentError_ty_from_ptr")] public static extern long LDKPaymentError_ty_from_ptr(long ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPaymentError_Invoice_get_invoice")] public static extern long LDKPaymentError_Invoice_get_invoice(long ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKPaymentError_Sending_get_sending")] public static extern RetryableSendFailure LDKPaymentError_Sending_get_sending(long ptr); - // struct LDKThirtyTwoBytes CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_ok")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(long _owner); - // struct LDKPaymentError CResult_ThirtyTwoBytesPaymentErrorZ_get_err(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_get_err")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_get_err(long _owner); - // void CResult_NonePaymentErrorZ_get_ok(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_get_ok")] public static extern void CResult_NonePaymentErrorZ_get_ok(long _owner); - // struct LDKPaymentError CResult_NonePaymentErrorZ_get_err(LDKCResult_NonePaymentErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_get_err")] public static extern long CResult_NonePaymentErrorZ_get_err(long _owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKProbingError_ty_from_ptr")] public static extern long LDKProbingError_ty_from_ptr(long ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKProbingError_Invoice_get_invoice")] public static extern long LDKProbingError_Invoice_get_invoice(long ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKProbingError_Sending_get_sending")] public static extern long LDKProbingError_Sending_get_sending(long ptr); - // struct LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(long _owner); - // struct LDKProbingError CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(long _owner); + // struct LDKThirtyTwoBytes C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(long _owner); + // struct LDKRecipientOnionFields C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(long _owner); + // struct LDKRouteParameters C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(long _owner); + // struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok")] public static extern long CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(long _owner); + // void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err")] public static extern void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_err(long _owner); // struct LDKStr CResult_StrSecp256k1ErrorZ_get_ok(LDKCResult_StrSecp256k1ErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StrSecp256k1ErrorZ_get_ok")] public static extern long CResult_StrSecp256k1ErrorZ_get_ok(long _owner); // enum LDKSecp256k1Error CResult_StrSecp256k1ErrorZ_get_err(LDKCResult_StrSecp256k1ErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StrSecp256k1ErrorZ_get_err")] public static extern Secp256k1Error CResult_StrSecp256k1ErrorZ_get_err(long _owner); - // struct LDKOnionMessagePath CResult_OnionMessagePathNoneZ_get_ok(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_get_ok")] public static extern long CResult_OnionMessagePathNoneZ_get_ok(long _owner); - // void CResult_OnionMessagePathNoneZ_get_err(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_get_err")] public static extern void CResult_OnionMessagePathNoneZ_get_err(long _owner); - // struct LDKPublicKey C2Tuple_PublicKeyOnionMessageZ_get_a(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_a")] public static extern long C2Tuple_PublicKeyOnionMessageZ_get_a(long _owner); - // struct LDKOnionMessage C2Tuple_PublicKeyOnionMessageZ_get_b(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_get_b")] public static extern long C2Tuple_PublicKeyOnionMessageZ_get_b(long _owner); + // struct LDKPublicKey C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(long _owner); + // struct LDKOnionMessage C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(long _owner); + // struct LDKCOption_CVec_SocketAddressZZ C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(long _owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSendError_ty_from_ptr")] public static extern long LDKSendError_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSendError_Secp256k1_get_secp256k1")] public static extern Secp256k1Error LDKSendError_Secp256k1_get_secp256k1(long ptr); - // struct LDKC2Tuple_PublicKeyOnionMessageZ CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok")] public static extern long CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(long _owner); - // struct LDKSendError CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err")] public static extern long CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(long _owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSendError_InvalidFirstHop_get_invalid_first_hop")] public static extern long LDKSendError_InvalidFirstHop_get_invalid_first_hop(long ptr); + // struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok")] public static extern long CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(long _owner); + // struct LDKSendError CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err")] public static extern long CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(long _owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKParsedOnionMessageContents_ty_from_ptr")] public static extern long LDKParsedOnionMessageContents_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKParsedOnionMessageContents_Offers_get_offers")] public static extern long LDKParsedOnionMessageContents_Offers_get_offers(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKParsedOnionMessageContents_Custom_get_custom")] public static extern long LDKParsedOnionMessageContents_Custom_get_custom(long ptr); @@ -1783,10 +1889,12 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PeeledOnionNoneZ_get_ok")] public static extern long CResult_PeeledOnionNoneZ_get_ok(long _owner); // void CResult_PeeledOnionNoneZ_get_err(LDKCResult_PeeledOnionNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PeeledOnionNoneZ_get_err")] public static extern void CResult_PeeledOnionNoneZ_get_err(long _owner); - // void CResult_NoneSendErrorZ_get_ok(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_get_ok")] public static extern void CResult_NoneSendErrorZ_get_ok(long _owner); - // struct LDKSendError CResult_NoneSendErrorZ_get_err(LDKCResult_NoneSendErrorZ *NONNULL_PTR owner); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_get_err")] public static extern long CResult_NoneSendErrorZ_get_err(long _owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSendSuccess_ty_from_ptr")] public static extern long LDKSendSuccess_ty_from_ptr(long ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKSendSuccess_BufferedAwaitingConnection_get_buffered_awaiting_connection")] public static extern long LDKSendSuccess_BufferedAwaitingConnection_get_buffered_awaiting_connection(long ptr); + // struct LDKSendSuccess CResult_SendSuccessSendErrorZ_get_ok(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_get_ok")] public static extern long CResult_SendSuccessSendErrorZ_get_ok(long _owner); + // struct LDKSendError CResult_SendSuccessSendErrorZ_get_err(LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_get_err")] public static extern long CResult_SendSuccessSendErrorZ_get_err(long _owner); // struct LDKBlindedPath CResult_BlindedPathNoneZ_get_ok(LDKCResult_BlindedPathNoneZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedPathNoneZ_get_ok")] public static extern long CResult_BlindedPathNoneZ_get_ok(long _owner); // void CResult_BlindedPathNoneZ_get_err(LDKCResult_BlindedPathNoneZ *NONNULL_PTR owner); @@ -1807,6 +1915,30 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InvoiceErrorDecodeErrorZ_get_ok")] public static extern long CResult_InvoiceErrorDecodeErrorZ_get_ok(long _owner); // struct LDKDecodeError CResult_InvoiceErrorDecodeErrorZ_get_err(LDKCResult_InvoiceErrorDecodeErrorZ *NONNULL_PTR owner); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InvoiceErrorDecodeErrorZ_get_err")] public static extern long CResult_InvoiceErrorDecodeErrorZ_get_err(long _owner); + // struct LDKDelayedPaymentBasepoint CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_get_err")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(long _owner); + // struct LDKDelayedPaymentKey CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_ok")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_DelayedPaymentKeyDecodeErrorZ_get_err(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_get_err")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_get_err(long _owner); + // struct LDKHtlcBasepoint CResult_HtlcBasepointDecodeErrorZ_get_ok(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_ok")] public static extern long CResult_HtlcBasepointDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_HtlcBasepointDecodeErrorZ_get_err(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_get_err")] public static extern long CResult_HtlcBasepointDecodeErrorZ_get_err(long _owner); + // struct LDKHtlcKey CResult_HtlcKeyDecodeErrorZ_get_ok(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_ok")] public static extern long CResult_HtlcKeyDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_HtlcKeyDecodeErrorZ_get_err(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_get_err")] public static extern long CResult_HtlcKeyDecodeErrorZ_get_err(long _owner); + // struct LDKRevocationBasepoint CResult_RevocationBasepointDecodeErrorZ_get_ok(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_ok")] public static extern long CResult_RevocationBasepointDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_RevocationBasepointDecodeErrorZ_get_err(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_get_err")] public static extern long CResult_RevocationBasepointDecodeErrorZ_get_err(long _owner); + // struct LDKRevocationKey CResult_RevocationKeyDecodeErrorZ_get_ok(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_ok")] public static extern long CResult_RevocationKeyDecodeErrorZ_get_ok(long _owner); + // struct LDKDecodeError CResult_RevocationKeyDecodeErrorZ_get_err(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR owner); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_get_err")] public static extern long CResult_RevocationKeyDecodeErrorZ_get_err(long _owner); public interface LDKFilter { void register_tx(long txid, long script_pubkey); void register_output(long output); @@ -2005,7 +2137,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Confirm_transaction_unconfirmed")] public static extern void Confirm_transaction_unconfirmed(long _this_arg, long _txid); // void Confirm_best_block_updated LDKConfirm *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Confirm_best_block_updated")] public static extern void Confirm_best_block_updated(long _this_arg, long _header, int _height); - // LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ Confirm_get_relevant_txids LDKConfirm *NONNULL_PTR this_arg + // LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ Confirm_get_relevant_txids LDKConfirm *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Confirm_get_relevant_txids")] public static extern long Confirm_get_relevant_txids(long _this_arg); public interface LDKEventHandler { void handle_event(long _event); @@ -2085,6 +2217,10 @@ internal class bindings { void handle_channel_ready(long their_node_id, long msg); void handle_shutdown(long their_node_id, long msg); void handle_closing_signed(long their_node_id, long msg); + void handle_stfu(long their_node_id, long msg); + void handle_splice(long their_node_id, long msg); + void handle_splice_ack(long their_node_id, long msg); + void handle_splice_locked(long their_node_id, long msg); void handle_tx_add_input(long their_node_id, long msg); void handle_tx_add_output(long their_node_id, long msg); void handle_tx_remove_input(long their_node_id, long msg); @@ -2146,6 +2282,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_shutdown")] public static extern void ChannelMessageHandler_handle_shutdown(long _this_arg, long _their_node_id, long _msg); // void ChannelMessageHandler_handle_closing_signed LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKClosingSigned *NONNULL_PTR msg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_closing_signed")] public static extern void ChannelMessageHandler_handle_closing_signed(long _this_arg, long _their_node_id, long _msg); + // void ChannelMessageHandler_handle_stfu LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKStfu *NONNULL_PTR msg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_stfu")] public static extern void ChannelMessageHandler_handle_stfu(long _this_arg, long _their_node_id, long _msg); + // void ChannelMessageHandler_handle_splice LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKSplice *NONNULL_PTR msg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_splice")] public static extern void ChannelMessageHandler_handle_splice(long _this_arg, long _their_node_id, long _msg); + // void ChannelMessageHandler_handle_splice_ack LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKSpliceAck *NONNULL_PTR msg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_splice_ack")] public static extern void ChannelMessageHandler_handle_splice_ack(long _this_arg, long _their_node_id, long _msg); + // void ChannelMessageHandler_handle_splice_locked LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKSpliceLocked *NONNULL_PTR msg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_splice_locked")] public static extern void ChannelMessageHandler_handle_splice_locked(long _this_arg, long _their_node_id, long _msg); // void ChannelMessageHandler_handle_tx_add_input LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKTxAddInput *NONNULL_PTR msg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMessageHandler_handle_tx_add_input")] public static extern void ChannelMessageHandler_handle_tx_add_input(long _this_arg, long _their_node_id, long _msg); // void ChannelMessageHandler_handle_tx_add_output LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKTxAddOutput *NONNULL_PTR msg @@ -2280,10 +2424,12 @@ internal class bindings { // LDKInitFeatures RoutingMessageHandler_provided_init_features LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RoutingMessageHandler_provided_init_features")] public static extern long RoutingMessageHandler_provided_init_features(long _this_arg, long _their_node_id); public interface LDKOnionMessageHandler { + long get_and_clear_connections_needed(); void handle_onion_message(long peer_node_id, long msg); long next_onion_message_for_peer(long peer_node_id); long peer_connected(long their_node_id, long init, bool inbound); void peer_disconnected(long their_node_id); + void timer_tick_occurred(); long provided_node_features(); long provided_init_features(long their_node_id); } @@ -2304,6 +2450,8 @@ internal class bindings { ret[1] = i; return ret; } + // LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ OnionMessageHandler_get_and_clear_connections_needed LDKOnionMessageHandler *NONNULL_PTR this_arg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_get_and_clear_connections_needed")] public static extern long OnionMessageHandler_get_and_clear_connections_needed(long _this_arg); // void OnionMessageHandler_handle_onion_message LDKOnionMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey peer_node_id, const struct LDKOnionMessage *NONNULL_PTR msg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_handle_onion_message")] public static extern void OnionMessageHandler_handle_onion_message(long _this_arg, long _peer_node_id, long _msg); // LDKOnionMessage OnionMessageHandler_next_onion_message_for_peer LDKOnionMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey peer_node_id @@ -2312,6 +2460,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_peer_connected")] public static extern long OnionMessageHandler_peer_connected(long _this_arg, long _their_node_id, long _init, bool _inbound); // void OnionMessageHandler_peer_disconnected LDKOnionMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_peer_disconnected")] public static extern void OnionMessageHandler_peer_disconnected(long _this_arg, long _their_node_id); + // void OnionMessageHandler_timer_tick_occurred LDKOnionMessageHandler *NONNULL_PTR this_arg + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_timer_tick_occurred")] public static extern void OnionMessageHandler_timer_tick_occurred(long _this_arg); // LDKNodeFeatures OnionMessageHandler_provided_node_features LDKOnionMessageHandler *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_provided_node_features")] public static extern long OnionMessageHandler_provided_node_features(long _this_arg); // LDKInitFeatures OnionMessageHandler_provided_init_features LDKOnionMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id @@ -2461,31 +2611,9 @@ internal class bindings { } // LDKCVec_u8Z Score_write LDKScore *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Score_write")] public static extern long Score_write(long _this_arg); - public interface LDKMessageRouter { - long find_path(long sender, long peers, long destination); - } - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKMessageRouter_new")] public static extern long LDKMessageRouter_new_native(long impl_idx); - public static long[] LDKMessageRouter_new(LDKMessageRouter impl) { - long new_obj_idx = js_objs.Count; - int i = 0; - for (; i < js_objs.Count; i++) { - if (js_objs[i] == null || !js_objs[i].IsAlive) { new_obj_idx = i; break; } - } - if (i == js_objs.Count) { - js_objs.Add(new WeakReference(impl)); - } else { - js_objs[i] = new WeakReference(impl); - } - long[] ret = new long[2]; - ret[0] = LDKMessageRouter_new_native(i); - ret[1] = i; - return ret; - } - // LDKCResult_OnionMessagePathNoneZ MessageRouter_find_path LDKMessageRouter *NONNULL_PTR this_arg, struct LDKPublicKey sender, struct LDKCVec_PublicKeyZ peers, struct LDKDestination destination - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageRouter_find_path")] public static extern long MessageRouter_find_path(long _this_arg, long _sender, long _peers, long _destination); public interface LDKCoinSelectionSource { long select_confirmed_utxos(long claim_id, long must_spend, long must_pay_to, int target_feerate_sat_per_1000_weight); - long sign_tx(long tx); + long sign_psbt(long psbt); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKCoinSelectionSource_new")] public static extern long LDKCoinSelectionSource_new_native(long impl_idx); public static long[] LDKCoinSelectionSource_new(LDKCoinSelectionSource impl) { @@ -2506,12 +2634,12 @@ internal class bindings { } // LDKCResult_CoinSelectionNoneZ CoinSelectionSource_select_confirmed_utxos LDKCoinSelectionSource *NONNULL_PTR this_arg, struct LDKThirtyTwoBytes claim_id, struct LDKCVec_InputZ must_spend, struct LDKCVec_TxOutZ must_pay_to, uint32_t target_feerate_sat_per_1000_weight [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CoinSelectionSource_select_confirmed_utxos")] public static extern long CoinSelectionSource_select_confirmed_utxos(long _this_arg, long _claim_id, long _must_spend, long _must_pay_to, int _target_feerate_sat_per_1000_weight); - // LDKCResult_TransactionNoneZ CoinSelectionSource_sign_tx LDKCoinSelectionSource *NONNULL_PTR this_arg, struct LDKTransaction tx - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CoinSelectionSource_sign_tx")] public static extern long CoinSelectionSource_sign_tx(long _this_arg, long _tx); + // LDKCResult_TransactionNoneZ CoinSelectionSource_sign_psbt LDKCoinSelectionSource *NONNULL_PTR this_arg, struct LDKCVec_u8Z psbt + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CoinSelectionSource_sign_psbt")] public static extern long CoinSelectionSource_sign_psbt(long _this_arg, long _psbt); public interface LDKWalletSource { long list_confirmed_utxos(); long get_change_script(); - long sign_tx(long tx); + long sign_psbt(long psbt); } [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKWalletSource_new")] public static extern long LDKWalletSource_new_native(long impl_idx); public static long[] LDKWalletSource_new(LDKWalletSource impl) { @@ -2534,8 +2662,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WalletSource_list_confirmed_utxos")] public static extern long WalletSource_list_confirmed_utxos(long _this_arg); // LDKCResult_CVec_u8ZNoneZ WalletSource_get_change_script LDKWalletSource *NONNULL_PTR this_arg [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WalletSource_get_change_script")] public static extern long WalletSource_get_change_script(long _this_arg); - // LDKCResult_TransactionNoneZ WalletSource_sign_tx LDKWalletSource *NONNULL_PTR this_arg, struct LDKTransaction tx - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WalletSource_sign_tx")] public static extern long WalletSource_sign_tx(long _this_arg, long _tx); + // LDKCResult_TransactionNoneZ WalletSource_sign_psbt LDKWalletSource *NONNULL_PTR this_arg, struct LDKCVec_u8Z psbt + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WalletSource_sign_psbt")] public static extern long WalletSource_sign_psbt(long _this_arg, long _psbt); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKGossipSync_ty_from_ptr")] public static extern long LDKGossipSync_ty_from_ptr(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKGossipSync_P2P_get_p2p")] public static extern long LDKGossipSync_P2P_get_p2p(long ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LDKGossipSync_Rapid_get_rapid")] public static extern long LDKGossipSync_Rapid_get_rapid(long ptr); @@ -2552,6 +2680,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_U128_le_bytes")] public static extern long U128_le_bytes(long _val); // struct LDKU128 U128_new(struct LDKSixteenBytes le_bytes); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_U128_new")] public static extern long U128_new(long _le_bytes); + // struct LDKWitnessProgram WitnessProgram_new(struct LDKWitnessVersion version, struct LDKCVec_u8Z program); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_new")] public static extern long WitnessProgram_new(byte _version, long _program); + // struct LDKWitnessVersion WitnessProgram_get_version(const struct LDKWitnessProgram *NONNULL_PTR prog); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_get_version")] public static extern byte WitnessProgram_get_version(long _prog); + // struct LDKu8slice WitnessProgram_get_program(const struct LDKWitnessProgram *NONNULL_PTR prog); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_get_program")] public static extern long WitnessProgram_get_program(long _prog); + // uint64_t WitnessProgram_clone_ptr(LDKWitnessProgram *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_clone_ptr")] public static extern long WitnessProgram_clone_ptr(long _arg); + // struct LDKWitnessProgram WitnessProgram_clone(const struct LDKWitnessProgram *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_clone")] public static extern long WitnessProgram_clone(long _orig); + // void WitnessProgram_free(struct LDKWitnessProgram o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WitnessProgram_free")] public static extern void WitnessProgram_free(long _o); // struct LDKBigEndianScalar BigEndianScalar_new(struct LDKThirtyTwoBytes big_endian_bytes); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BigEndianScalar_new")] public static extern long BigEndianScalar_new(long _big_endian_bytes); // uint64_t Bech32Error_clone_ptr(LDKBech32Error *NONNULL_PTR arg); @@ -2564,12 +2704,26 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Transaction_free")] public static extern void Transaction_free(long __res); // void Witness_free(struct LDKWitness _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Witness_free")] public static extern void Witness_free(long __res); - // void TxIn_free(struct LDKTxIn _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_free")] public static extern void TxIn_free(long __res); // struct LDKTxIn TxIn_new(struct LDKWitness witness, struct LDKCVec_u8Z script_sig, uint32_t sequence, struct LDKThirtyTwoBytes previous_txid, uint32_t previous_vout); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_new")] public static extern long TxIn_new(long _witness, long _script_sig, int _sequence, long _previous_txid, int _previous_vout); + // struct LDKWitness TxIn_get_witness(const struct LDKTxIn *NONNULL_PTR txin); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_witness")] public static extern long TxIn_get_witness(long _txin); + // struct LDKu8slice TxIn_get_script_sig(const struct LDKTxIn *NONNULL_PTR txin); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_script_sig")] public static extern long TxIn_get_script_sig(long _txin); + // uint32_t TxIn_get_sequence(const struct LDKTxIn *NONNULL_PTR txin); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_sequence")] public static extern int TxIn_get_sequence(long _txin); + // struct LDKThirtyTwoBytes TxIn_get_previous_txid(const struct LDKTxIn *NONNULL_PTR txin); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_previous_txid")] public static extern long TxIn_get_previous_txid(long _txin); + // uint32_t TxIn_get_previous_vout(const struct LDKTxIn *NONNULL_PTR txin); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_get_previous_vout")] public static extern int TxIn_get_previous_vout(long _txin); + // void TxIn_free(struct LDKTxIn _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxIn_free")] public static extern void TxIn_free(long __res); // struct LDKTxOut TxOut_new(struct LDKCVec_u8Z script_pubkey, uint64_t value); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_new")] public static extern long TxOut_new(long _script_pubkey, long _value); + // struct LDKu8slice TxOut_get_script_pubkey(const struct LDKTxOut *NONNULL_PTR txout); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_get_script_pubkey")] public static extern long TxOut_get_script_pubkey(long _txout); + // uint64_t TxOut_get_value(const struct LDKTxOut *NONNULL_PTR txout); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_get_value")] public static extern long TxOut_get_value(long _txout); // void TxOut_free(struct LDKTxOut _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxOut_free")] public static extern void TxOut_free(long __res); // uint64_t TxOut_clone_ptr(LDKTxOut *NONNULL_PTR arg); @@ -2772,26 +2926,26 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_u32Z_clone_ptr")] public static extern long COption_u32Z_clone_ptr(long _arg); // struct LDKCOption_u32Z COption_u32Z_clone(const struct LDKCOption_u32Z *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_u32Z_clone")] public static extern long COption_u32Z_clone(long _orig); - // uint64_t C2Tuple_CVec_u8ZusizeZ_clone_ptr(LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone_ptr")] public static extern long C2Tuple_CVec_u8ZusizeZ_clone_ptr(long _arg); - // struct LDKC2Tuple_CVec_u8ZusizeZ C2Tuple_CVec_u8ZusizeZ_clone(const struct LDKC2Tuple_CVec_u8ZusizeZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_clone")] public static extern long C2Tuple_CVec_u8ZusizeZ_clone(long _orig); - // struct LDKC2Tuple_CVec_u8ZusizeZ C2Tuple_CVec_u8ZusizeZ_new(struct LDKCVec_u8Z a, uintptr_t b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_new")] public static extern long C2Tuple_CVec_u8ZusizeZ_new(long _a, long _b); - // void C2Tuple_CVec_u8ZusizeZ_free(struct LDKC2Tuple_CVec_u8ZusizeZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8ZusizeZ_free")] public static extern void C2Tuple_CVec_u8ZusizeZ_free(long __res); - // struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(struct LDKC2Tuple_CVec_u8ZusizeZ o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok")] public static extern long CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(long _o); - // struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err")] public static extern long CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err(); - // bool CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(const struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok")] public static extern bool CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(long _o); - // void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free")] public static extern void CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(long __res); - // uint64_t CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr")] public static extern long CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(long _arg); - // struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(const struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone")] public static extern long CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(long _orig); + // uint64_t C2Tuple_CVec_u8Zu64Z_clone_ptr(LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_clone_ptr")] public static extern long C2Tuple_CVec_u8Zu64Z_clone_ptr(long _arg); + // struct LDKC2Tuple_CVec_u8Zu64Z C2Tuple_CVec_u8Zu64Z_clone(const struct LDKC2Tuple_CVec_u8Zu64Z *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_clone")] public static extern long C2Tuple_CVec_u8Zu64Z_clone(long _orig); + // struct LDKC2Tuple_CVec_u8Zu64Z C2Tuple_CVec_u8Zu64Z_new(struct LDKCVec_u8Z a, uint64_t b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_new")] public static extern long C2Tuple_CVec_u8Zu64Z_new(long _a, long _b); + // void C2Tuple_CVec_u8Zu64Z_free(struct LDKC2Tuple_CVec_u8Zu64Z _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_CVec_u8Zu64Z_free")] public static extern void C2Tuple_CVec_u8Zu64Z_free(long __res); + // struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(struct LDKC2Tuple_CVec_u8Zu64Z o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok")] public static extern long CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(long _o); + // struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err")] public static extern long CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err(); + // bool CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(const struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok")] public static extern bool CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(long _o); + // void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free")] public static extern void CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(long __res); + // uint64_t CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr")] public static extern long CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(long _arg); + // struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(const struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone")] public static extern long CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(long _orig); // struct LDKCResult_ChannelDerivationParametersDecodeErrorZ CResult_ChannelDerivationParametersDecodeErrorZ_ok(struct LDKChannelDerivationParameters o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelDerivationParametersDecodeErrorZ_ok")] public static extern long CResult_ChannelDerivationParametersDecodeErrorZ_ok(long _o); // struct LDKCResult_ChannelDerivationParametersDecodeErrorZ CResult_ChannelDerivationParametersDecodeErrorZ_err(struct LDKDecodeError e); @@ -2828,40 +2982,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneNoneZ_clone_ptr")] public static extern long CResult_NoneNoneZ_clone_ptr(long _arg); // struct LDKCResult_NoneNoneZ CResult_NoneNoneZ_clone(const struct LDKCResult_NoneNoneZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneNoneZ_clone")] public static extern long CResult_NoneNoneZ_clone(long _orig); - // void CVec_ECDSASignatureZ_free(struct LDKCVec_ECDSASignatureZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_ECDSASignatureZ_free")] public static extern void CVec_ECDSASignatureZ_free(long __res); - // uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(long _arg); - // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(const struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(long _orig); - // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(struct LDKECDSASignature a, struct LDKCVec_ECDSASignatureZ b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(long _a, long _b); - // void C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free")] public static extern void C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(long __res); - // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(long _o); - // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); - // bool CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(const struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok")] public static extern bool CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(long _o); - // void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free")] public static extern void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(long __res); - // uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(long _arg); - // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(const struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(long _orig); - // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_ok(struct LDKECDSASignature o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_ok")] public static extern long CResult_ECDSASignatureNoneZ_ok(long _o); - // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_err(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_err")] public static extern long CResult_ECDSASignatureNoneZ_err(); - // bool CResult_ECDSASignatureNoneZ_is_ok(const struct LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_is_ok")] public static extern bool CResult_ECDSASignatureNoneZ_is_ok(long _o); - // void CResult_ECDSASignatureNoneZ_free(struct LDKCResult_ECDSASignatureNoneZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_free")] public static extern void CResult_ECDSASignatureNoneZ_free(long __res); - // uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr")] public static extern long CResult_ECDSASignatureNoneZ_clone_ptr(long _arg); - // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_clone(const struct LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_clone")] public static extern long CResult_ECDSASignatureNoneZ_clone(long _orig); // struct LDKCResult_PublicKeyNoneZ CResult_PublicKeyNoneZ_ok(struct LDKPublicKey o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PublicKeyNoneZ_ok")] public static extern long CResult_PublicKeyNoneZ_ok(long _o); // struct LDKCResult_PublicKeyNoneZ CResult_PublicKeyNoneZ_err(void); @@ -2910,6 +3030,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SchnorrSignatureNoneZ_clone_ptr")] public static extern long CResult_SchnorrSignatureNoneZ_clone_ptr(long _arg); // struct LDKCResult_SchnorrSignatureNoneZ CResult_SchnorrSignatureNoneZ_clone(const struct LDKCResult_SchnorrSignatureNoneZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SchnorrSignatureNoneZ_clone")] public static extern long CResult_SchnorrSignatureNoneZ_clone(long _orig); + // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_ok(struct LDKECDSASignature o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_ok")] public static extern long CResult_ECDSASignatureNoneZ_ok(long _o); + // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_err")] public static extern long CResult_ECDSASignatureNoneZ_err(); + // bool CResult_ECDSASignatureNoneZ_is_ok(const struct LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_is_ok")] public static extern bool CResult_ECDSASignatureNoneZ_is_ok(long _o); + // void CResult_ECDSASignatureNoneZ_free(struct LDKCResult_ECDSASignatureNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_free")] public static extern void CResult_ECDSASignatureNoneZ_free(long __res); + // uint64_t CResult_ECDSASignatureNoneZ_clone_ptr(LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_clone_ptr")] public static extern long CResult_ECDSASignatureNoneZ_clone_ptr(long _arg); + // struct LDKCResult_ECDSASignatureNoneZ CResult_ECDSASignatureNoneZ_clone(const struct LDKCResult_ECDSASignatureNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ECDSASignatureNoneZ_clone")] public static extern long CResult_ECDSASignatureNoneZ_clone(long _orig); // struct LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ CResult_WriteableEcdsaChannelSignerDecodeErrorZ_ok(struct LDKWriteableEcdsaChannelSigner o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WriteableEcdsaChannelSignerDecodeErrorZ_ok")] public static extern long CResult_WriteableEcdsaChannelSignerDecodeErrorZ_ok(long _o); // struct LDKCResult_WriteableEcdsaChannelSignerDecodeErrorZ CResult_WriteableEcdsaChannelSignerDecodeErrorZ_err(struct LDKDecodeError e); @@ -2966,20 +3098,40 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_boolZ_clone_ptr")] public static extern long COption_boolZ_clone_ptr(long _arg); // struct LDKCOption_boolZ COption_boolZ_clone(const struct LDKCOption_boolZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_boolZ_clone")] public static extern long COption_boolZ_clone(long _orig); - // void CVec_CVec_u8ZZ_free(struct LDKCVec_CVec_u8ZZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_CVec_u8ZZ_free")] public static extern void CVec_CVec_u8ZZ_free(long __res); - // struct LDKCResult_CVec_CVec_u8ZZNoneZ CResult_CVec_CVec_u8ZZNoneZ_ok(struct LDKCVec_CVec_u8ZZ o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_ok")] public static extern long CResult_CVec_CVec_u8ZZNoneZ_ok(long _o); - // struct LDKCResult_CVec_CVec_u8ZZNoneZ CResult_CVec_CVec_u8ZZNoneZ_err(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_err")] public static extern long CResult_CVec_CVec_u8ZZNoneZ_err(); - // bool CResult_CVec_CVec_u8ZZNoneZ_is_ok(const struct LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_is_ok")] public static extern bool CResult_CVec_CVec_u8ZZNoneZ_is_ok(long _o); - // void CResult_CVec_CVec_u8ZZNoneZ_free(struct LDKCResult_CVec_CVec_u8ZZNoneZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_free")] public static extern void CResult_CVec_CVec_u8ZZNoneZ_free(long __res); - // uint64_t CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone_ptr")] public static extern long CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(long _arg); - // struct LDKCResult_CVec_CVec_u8ZZNoneZ CResult_CVec_CVec_u8ZZNoneZ_clone(const struct LDKCResult_CVec_CVec_u8ZZNoneZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_CVec_u8ZZNoneZ_clone")] public static extern long CResult_CVec_CVec_u8ZZNoneZ_clone(long _orig); + // struct LDKCResult_WitnessNoneZ CResult_WitnessNoneZ_ok(struct LDKWitness o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_ok")] public static extern long CResult_WitnessNoneZ_ok(long _o); + // struct LDKCResult_WitnessNoneZ CResult_WitnessNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_err")] public static extern long CResult_WitnessNoneZ_err(); + // bool CResult_WitnessNoneZ_is_ok(const struct LDKCResult_WitnessNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_is_ok")] public static extern bool CResult_WitnessNoneZ_is_ok(long _o); + // void CResult_WitnessNoneZ_free(struct LDKCResult_WitnessNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_free")] public static extern void CResult_WitnessNoneZ_free(long __res); + // uint64_t CResult_WitnessNoneZ_clone_ptr(LDKCResult_WitnessNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_clone_ptr")] public static extern long CResult_WitnessNoneZ_clone_ptr(long _arg); + // struct LDKCResult_WitnessNoneZ CResult_WitnessNoneZ_clone(const struct LDKCResult_WitnessNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_WitnessNoneZ_clone")] public static extern long CResult_WitnessNoneZ_clone(long _orig); + // void CVec_ECDSASignatureZ_free(struct LDKCVec_ECDSASignatureZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_ECDSASignatureZ_free")] public static extern void CVec_ECDSASignatureZ_free(long __res); + // uint64_t C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone_ptr(long _arg); + // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(const struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_clone(long _orig); + // struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(struct LDKECDSASignature a, struct LDKCVec_ECDSASignatureZ b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new")] public static extern long C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_new(long _a, long _b); + // void C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free")] public static extern void C2Tuple_ECDSASignatureCVec_ECDSASignatureZZ_free(long __res); + // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(struct LDKC2Tuple_ECDSASignatureCVec_ECDSASignatureZZ o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_ok(long _o); + // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_err(); + // bool CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(const struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok")] public static extern bool CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_is_ok(long _o); + // void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free")] public static extern void CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_free(long __res); + // uint64_t CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone_ptr(long _arg); + // struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(const struct LDKCResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone")] public static extern long CResult_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ_clone(long _orig); // struct LDKCResult_InMemorySignerDecodeErrorZ CResult_InMemorySignerDecodeErrorZ_ok(struct LDKInMemorySigner o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InMemorySignerDecodeErrorZ_ok")] public static extern long CResult_InMemorySignerDecodeErrorZ_ok(long _o); // struct LDKCResult_InMemorySignerDecodeErrorZ CResult_InMemorySignerDecodeErrorZ_err(struct LDKDecodeError e); @@ -3036,6 +3188,54 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteLightningErrorZ_clone_ptr")] public static extern long CResult_RouteLightningErrorZ_clone_ptr(long _arg); // struct LDKCResult_RouteLightningErrorZ CResult_RouteLightningErrorZ_clone(const struct LDKCResult_RouteLightningErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteLightningErrorZ_clone")] public static extern long CResult_RouteLightningErrorZ_clone(long _orig); + // uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(long _arg); + // struct LDKC2Tuple_BlindedPayInfoBlindedPathZ C2Tuple_BlindedPayInfoBlindedPathZ_clone(const struct LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_clone(long _orig); + // struct LDKC2Tuple_BlindedPayInfoBlindedPathZ C2Tuple_BlindedPayInfoBlindedPathZ_new(struct LDKBlindedPayInfo a, struct LDKBlindedPath b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_new(long _a, long _b); + // void C2Tuple_BlindedPayInfoBlindedPathZ_free(struct LDKC2Tuple_BlindedPayInfoBlindedPathZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free")] public static extern void C2Tuple_BlindedPayInfoBlindedPathZ_free(long __res); + // void CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free")] public static extern void CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(long __res); + // struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok")] public static extern long CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(long _o); + // struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err")] public static extern long CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err(); + // bool CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(const struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok")] public static extern bool CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(long _o); + // void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free")] public static extern void CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(long __res); + // uint64_t CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr")] public static extern long CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(long _arg); + // struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(const struct LDKCResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone")] public static extern long CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(long _orig); + // void CVec_PublicKeyZ_free(struct LDKCVec_PublicKeyZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_PublicKeyZ_free")] public static extern void CVec_PublicKeyZ_free(long __res); + // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_ok(struct LDKOnionMessagePath o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_ok")] public static extern long CResult_OnionMessagePathNoneZ_ok(long _o); + // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_err")] public static extern long CResult_OnionMessagePathNoneZ_err(); + // bool CResult_OnionMessagePathNoneZ_is_ok(const struct LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_is_ok")] public static extern bool CResult_OnionMessagePathNoneZ_is_ok(long _o); + // void CResult_OnionMessagePathNoneZ_free(struct LDKCResult_OnionMessagePathNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_free")] public static extern void CResult_OnionMessagePathNoneZ_free(long __res); + // uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr")] public static extern long CResult_OnionMessagePathNoneZ_clone_ptr(long _arg); + // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_clone(const struct LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_clone")] public static extern long CResult_OnionMessagePathNoneZ_clone(long _orig); + // struct LDKCResult_CVec_BlindedPathZNoneZ CResult_CVec_BlindedPathZNoneZ_ok(struct LDKCVec_BlindedPathZ o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_ok")] public static extern long CResult_CVec_BlindedPathZNoneZ_ok(long _o); + // struct LDKCResult_CVec_BlindedPathZNoneZ CResult_CVec_BlindedPathZNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_err")] public static extern long CResult_CVec_BlindedPathZNoneZ_err(); + // bool CResult_CVec_BlindedPathZNoneZ_is_ok(const struct LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_is_ok")] public static extern bool CResult_CVec_BlindedPathZNoneZ_is_ok(long _o); + // void CResult_CVec_BlindedPathZNoneZ_free(struct LDKCResult_CVec_BlindedPathZNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_free")] public static extern void CResult_CVec_BlindedPathZNoneZ_free(long __res); + // uint64_t CResult_CVec_BlindedPathZNoneZ_clone_ptr(LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone_ptr")] public static extern long CResult_CVec_BlindedPathZNoneZ_clone_ptr(long _arg); + // struct LDKCResult_CVec_BlindedPathZNoneZ CResult_CVec_BlindedPathZNoneZ_clone(const struct LDKCResult_CVec_BlindedPathZNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_BlindedPathZNoneZ_clone")] public static extern long CResult_CVec_BlindedPathZNoneZ_clone(long _orig); // struct LDKCResult_InFlightHtlcsDecodeErrorZ CResult_InFlightHtlcsDecodeErrorZ_ok(struct LDKInFlightHtlcs o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InFlightHtlcsDecodeErrorZ_ok")] public static extern long CResult_InFlightHtlcsDecodeErrorZ_ok(long _o); // struct LDKCResult_InFlightHtlcsDecodeErrorZ CResult_InFlightHtlcsDecodeErrorZ_err(struct LDKDecodeError e); @@ -3116,16 +3316,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentParametersDecodeErrorZ_clone_ptr")] public static extern long CResult_PaymentParametersDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_PaymentParametersDecodeErrorZ CResult_PaymentParametersDecodeErrorZ_clone(const struct LDKCResult_PaymentParametersDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentParametersDecodeErrorZ_clone")] public static extern long CResult_PaymentParametersDecodeErrorZ_clone(long _orig); - // uint64_t C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_clone_ptr(long _arg); - // struct LDKC2Tuple_BlindedPayInfoBlindedPathZ C2Tuple_BlindedPayInfoBlindedPathZ_clone(const struct LDKC2Tuple_BlindedPayInfoBlindedPathZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_clone")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_clone(long _orig); - // struct LDKC2Tuple_BlindedPayInfoBlindedPathZ C2Tuple_BlindedPayInfoBlindedPathZ_new(struct LDKBlindedPayInfo a, struct LDKBlindedPath b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_new")] public static extern long C2Tuple_BlindedPayInfoBlindedPathZ_new(long _a, long _b); - // void C2Tuple_BlindedPayInfoBlindedPathZ_free(struct LDKC2Tuple_BlindedPayInfoBlindedPathZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_BlindedPayInfoBlindedPathZ_free")] public static extern void C2Tuple_BlindedPayInfoBlindedPathZ_free(long __res); - // void CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(struct LDKCVec_C2Tuple_BlindedPayInfoBlindedPathZZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free")] public static extern void CVec_C2Tuple_BlindedPayInfoBlindedPathZZ_free(long __res); // void CVec_RouteHintZ_free(struct LDKCVec_RouteHintZ _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_RouteHintZ_free")] public static extern void CVec_RouteHintZ_free(long __res); // void CVec_RouteHintHopZ_free(struct LDKCVec_RouteHintHopZ _res); @@ -3154,8 +3344,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteHintHopDecodeErrorZ_clone_ptr")] public static extern long CResult_RouteHintHopDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_RouteHintHopDecodeErrorZ CResult_RouteHintHopDecodeErrorZ_clone(const struct LDKCResult_RouteHintHopDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RouteHintHopDecodeErrorZ_clone")] public static extern long CResult_RouteHintHopDecodeErrorZ_clone(long _orig); - // void CVec_PublicKeyZ_free(struct LDKCVec_PublicKeyZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_PublicKeyZ_free")] public static extern void CVec_PublicKeyZ_free(long __res); // struct LDKCResult_FixedPenaltyScorerDecodeErrorZ CResult_FixedPenaltyScorerDecodeErrorZ_ok(struct LDKFixedPenaltyScorer o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FixedPenaltyScorerDecodeErrorZ_ok")] public static extern long CResult_FixedPenaltyScorerDecodeErrorZ_ok(long _o); // struct LDKCResult_FixedPenaltyScorerDecodeErrorZ CResult_FixedPenaltyScorerDecodeErrorZ_err(struct LDKDecodeError e); @@ -3230,16 +3418,16 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_usizeTransactionZ_free")] public static extern void C2Tuple_usizeTransactionZ_free(long __res); // void CVec_C2Tuple_usizeTransactionZZ_free(struct LDKCVec_C2Tuple_usizeTransactionZZ _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_usizeTransactionZZ_free")] public static extern void CVec_C2Tuple_usizeTransactionZZ_free(long __res); - // uint64_t C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr")] public static extern long C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(long _arg); - // struct LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(const struct LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone")] public static extern long C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(long _orig); - // struct LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(struct LDKThirtyTwoBytes a, struct LDKCOption_ThirtyTwoBytesZ b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new")] public static extern long C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(long _a, long _b); - // void C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(struct LDKC2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free")] public static extern void C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(long __res); - // void CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(struct LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free")] public static extern void CVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ_free(long __res); + // uint64_t C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr")] public static extern long C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(long _arg); + // struct LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(const struct LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone")] public static extern long C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(long _orig); + // struct LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(struct LDKThirtyTwoBytes a, uint32_t b, struct LDKCOption_ThirtyTwoBytesZ c); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new")] public static extern long C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(long _a, int _b, long _c); + // void C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(struct LDKC3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free")] public static extern void C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(long __res); + // void CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(struct LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free")] public static extern void CVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ_free(long __res); // struct LDKCResult_ChannelMonitorUpdateStatusNoneZ CResult_ChannelMonitorUpdateStatusNoneZ_ok(enum LDKChannelMonitorUpdateStatus o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelMonitorUpdateStatusNoneZ_ok")] public static extern long CResult_ChannelMonitorUpdateStatusNoneZ_ok(ChannelMonitorUpdateStatus _o); // struct LDKCResult_ChannelMonitorUpdateStatusNoneZ CResult_ChannelMonitorUpdateStatusNoneZ_err(void); @@ -3548,6 +3736,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_CVec_SocketAddressZZ_clone_ptr")] public static extern long COption_CVec_SocketAddressZZ_clone_ptr(long _arg); // struct LDKCOption_CVec_SocketAddressZZ COption_CVec_SocketAddressZZ_clone(const struct LDKCOption_CVec_SocketAddressZZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_CVec_SocketAddressZZ_clone")] public static extern long COption_CVec_SocketAddressZZ_clone(long _orig); + // struct LDKCResult_PendingHTLCInfoInboundHTLCErrZ CResult_PendingHTLCInfoInboundHTLCErrZ_ok(struct LDKPendingHTLCInfo o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_ok")] public static extern long CResult_PendingHTLCInfoInboundHTLCErrZ_ok(long _o); + // struct LDKCResult_PendingHTLCInfoInboundHTLCErrZ CResult_PendingHTLCInfoInboundHTLCErrZ_err(struct LDKInboundHTLCErr e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_err")] public static extern long CResult_PendingHTLCInfoInboundHTLCErrZ_err(long _e); + // bool CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(const struct LDKCResult_PendingHTLCInfoInboundHTLCErrZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok")] public static extern bool CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(long _o); + // void CResult_PendingHTLCInfoInboundHTLCErrZ_free(struct LDKCResult_PendingHTLCInfoInboundHTLCErrZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoInboundHTLCErrZ_free")] public static extern void CResult_PendingHTLCInfoInboundHTLCErrZ_free(long __res); // void CVec_HTLCOutputInCommitmentZ_free(struct LDKCVec_HTLCOutputInCommitmentZ _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_HTLCOutputInCommitmentZ_free")] public static extern void CVec_HTLCOutputInCommitmentZ_free(long __res); // void CVec_HTLCDescriptorZ_free(struct LDKCVec_HTLCDescriptorZ _res); @@ -3826,6 +4022,54 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr")] public static extern long CResult_PhantomRouteHintsDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_PhantomRouteHintsDecodeErrorZ CResult_PhantomRouteHintsDecodeErrorZ_clone(const struct LDKCResult_PhantomRouteHintsDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PhantomRouteHintsDecodeErrorZ_clone")] public static extern long CResult_PhantomRouteHintsDecodeErrorZ_clone(long _orig); + // struct LDKCResult_BlindedForwardDecodeErrorZ CResult_BlindedForwardDecodeErrorZ_ok(struct LDKBlindedForward o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_ok")] public static extern long CResult_BlindedForwardDecodeErrorZ_ok(long _o); + // struct LDKCResult_BlindedForwardDecodeErrorZ CResult_BlindedForwardDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_err")] public static extern long CResult_BlindedForwardDecodeErrorZ_err(long _e); + // bool CResult_BlindedForwardDecodeErrorZ_is_ok(const struct LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_is_ok")] public static extern bool CResult_BlindedForwardDecodeErrorZ_is_ok(long _o); + // void CResult_BlindedForwardDecodeErrorZ_free(struct LDKCResult_BlindedForwardDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_free")] public static extern void CResult_BlindedForwardDecodeErrorZ_free(long __res); + // uint64_t CResult_BlindedForwardDecodeErrorZ_clone_ptr(LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone_ptr")] public static extern long CResult_BlindedForwardDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_BlindedForwardDecodeErrorZ CResult_BlindedForwardDecodeErrorZ_clone(const struct LDKCResult_BlindedForwardDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedForwardDecodeErrorZ_clone")] public static extern long CResult_BlindedForwardDecodeErrorZ_clone(long _orig); + // struct LDKCResult_PendingHTLCRoutingDecodeErrorZ CResult_PendingHTLCRoutingDecodeErrorZ_ok(struct LDKPendingHTLCRouting o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_ok")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_ok(long _o); + // struct LDKCResult_PendingHTLCRoutingDecodeErrorZ CResult_PendingHTLCRoutingDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_err")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_err(long _e); + // bool CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(const struct LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_is_ok")] public static extern bool CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(long _o); + // void CResult_PendingHTLCRoutingDecodeErrorZ_free(struct LDKCResult_PendingHTLCRoutingDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_free")] public static extern void CResult_PendingHTLCRoutingDecodeErrorZ_free(long __res); + // uint64_t CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_PendingHTLCRoutingDecodeErrorZ CResult_PendingHTLCRoutingDecodeErrorZ_clone(const struct LDKCResult_PendingHTLCRoutingDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCRoutingDecodeErrorZ_clone")] public static extern long CResult_PendingHTLCRoutingDecodeErrorZ_clone(long _orig); + // struct LDKCResult_PendingHTLCInfoDecodeErrorZ CResult_PendingHTLCInfoDecodeErrorZ_ok(struct LDKPendingHTLCInfo o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_ok")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_ok(long _o); + // struct LDKCResult_PendingHTLCInfoDecodeErrorZ CResult_PendingHTLCInfoDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_err")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_err(long _e); + // bool CResult_PendingHTLCInfoDecodeErrorZ_is_ok(const struct LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_is_ok")] public static extern bool CResult_PendingHTLCInfoDecodeErrorZ_is_ok(long _o); + // void CResult_PendingHTLCInfoDecodeErrorZ_free(struct LDKCResult_PendingHTLCInfoDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_free")] public static extern void CResult_PendingHTLCInfoDecodeErrorZ_free(long __res); + // uint64_t CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_PendingHTLCInfoDecodeErrorZ CResult_PendingHTLCInfoDecodeErrorZ_clone(const struct LDKCResult_PendingHTLCInfoDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PendingHTLCInfoDecodeErrorZ_clone")] public static extern long CResult_PendingHTLCInfoDecodeErrorZ_clone(long _orig); + // struct LDKCResult_BlindedFailureDecodeErrorZ CResult_BlindedFailureDecodeErrorZ_ok(enum LDKBlindedFailure o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_ok")] public static extern long CResult_BlindedFailureDecodeErrorZ_ok(BlindedFailure _o); + // struct LDKCResult_BlindedFailureDecodeErrorZ CResult_BlindedFailureDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_err")] public static extern long CResult_BlindedFailureDecodeErrorZ_err(long _e); + // bool CResult_BlindedFailureDecodeErrorZ_is_ok(const struct LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_is_ok")] public static extern bool CResult_BlindedFailureDecodeErrorZ_is_ok(long _o); + // void CResult_BlindedFailureDecodeErrorZ_free(struct LDKCResult_BlindedFailureDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_free")] public static extern void CResult_BlindedFailureDecodeErrorZ_free(long __res); + // uint64_t CResult_BlindedFailureDecodeErrorZ_clone_ptr(LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone_ptr")] public static extern long CResult_BlindedFailureDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_BlindedFailureDecodeErrorZ CResult_BlindedFailureDecodeErrorZ_clone(const struct LDKCResult_BlindedFailureDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedFailureDecodeErrorZ_clone")] public static extern long CResult_BlindedFailureDecodeErrorZ_clone(long _orig); // struct LDKCResult_ChannelShutdownStateDecodeErrorZ CResult_ChannelShutdownStateDecodeErrorZ_ok(enum LDKChannelShutdownState o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ChannelShutdownStateDecodeErrorZ_ok")] public static extern long CResult_ChannelShutdownStateDecodeErrorZ_ok(ChannelShutdownState _o); // struct LDKCResult_ChannelShutdownStateDecodeErrorZ CResult_ChannelShutdownStateDecodeErrorZ_err(struct LDKDecodeError e); @@ -4038,6 +4282,16 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyTypeZ_free")] public static extern void C2Tuple_PublicKeyTypeZ_free(long __res); // void CVec_C2Tuple_PublicKeyTypeZZ_free(struct LDKCVec_C2Tuple_PublicKeyTypeZZ _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_PublicKeyTypeZZ_free")] public static extern void CVec_C2Tuple_PublicKeyTypeZZ_free(long __res); + // uint64_t C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr")] public static extern long C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(long _arg); + // struct LDKC2Tuple_PublicKeyCVec_SocketAddressZZ C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(const struct LDKC2Tuple_PublicKeyCVec_SocketAddressZZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_clone")] public static extern long C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(long _orig); + // struct LDKC2Tuple_PublicKeyCVec_SocketAddressZZ C2Tuple_PublicKeyCVec_SocketAddressZZ_new(struct LDKPublicKey a, struct LDKCVec_SocketAddressZ b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_new")] public static extern long C2Tuple_PublicKeyCVec_SocketAddressZZ_new(long _a, long _b); + // void C2Tuple_PublicKeyCVec_SocketAddressZZ_free(struct LDKC2Tuple_PublicKeyCVec_SocketAddressZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyCVec_SocketAddressZZ_free")] public static extern void C2Tuple_PublicKeyCVec_SocketAddressZZ_free(long __res); + // void CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(struct LDKCVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free")] public static extern void CVec_C2Tuple_PublicKeyCVec_SocketAddressZZZ_free(long __res); // struct LDKCOption_OnionMessageContentsZ COption_OnionMessageContentsZ_some(struct LDKOnionMessageContents o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_OnionMessageContentsZ_some")] public static extern long COption_OnionMessageContentsZ_some(long _o); // struct LDKCOption_OnionMessageContentsZ COption_OnionMessageContentsZ_none(void); @@ -4304,6 +4558,54 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_clone_ptr")] public static extern long CResult_AcceptChannelV2DecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_AcceptChannelV2DecodeErrorZ CResult_AcceptChannelV2DecodeErrorZ_clone(const struct LDKCResult_AcceptChannelV2DecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_AcceptChannelV2DecodeErrorZ_clone")] public static extern long CResult_AcceptChannelV2DecodeErrorZ_clone(long _orig); + // struct LDKCResult_StfuDecodeErrorZ CResult_StfuDecodeErrorZ_ok(struct LDKStfu o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_ok")] public static extern long CResult_StfuDecodeErrorZ_ok(long _o); + // struct LDKCResult_StfuDecodeErrorZ CResult_StfuDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_err")] public static extern long CResult_StfuDecodeErrorZ_err(long _e); + // bool CResult_StfuDecodeErrorZ_is_ok(const struct LDKCResult_StfuDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_is_ok")] public static extern bool CResult_StfuDecodeErrorZ_is_ok(long _o); + // void CResult_StfuDecodeErrorZ_free(struct LDKCResult_StfuDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_free")] public static extern void CResult_StfuDecodeErrorZ_free(long __res); + // uint64_t CResult_StfuDecodeErrorZ_clone_ptr(LDKCResult_StfuDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_clone_ptr")] public static extern long CResult_StfuDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_StfuDecodeErrorZ CResult_StfuDecodeErrorZ_clone(const struct LDKCResult_StfuDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StfuDecodeErrorZ_clone")] public static extern long CResult_StfuDecodeErrorZ_clone(long _orig); + // struct LDKCResult_SpliceDecodeErrorZ CResult_SpliceDecodeErrorZ_ok(struct LDKSplice o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_ok")] public static extern long CResult_SpliceDecodeErrorZ_ok(long _o); + // struct LDKCResult_SpliceDecodeErrorZ CResult_SpliceDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_err")] public static extern long CResult_SpliceDecodeErrorZ_err(long _e); + // bool CResult_SpliceDecodeErrorZ_is_ok(const struct LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_is_ok")] public static extern bool CResult_SpliceDecodeErrorZ_is_ok(long _o); + // void CResult_SpliceDecodeErrorZ_free(struct LDKCResult_SpliceDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_free")] public static extern void CResult_SpliceDecodeErrorZ_free(long __res); + // uint64_t CResult_SpliceDecodeErrorZ_clone_ptr(LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_clone_ptr")] public static extern long CResult_SpliceDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_SpliceDecodeErrorZ CResult_SpliceDecodeErrorZ_clone(const struct LDKCResult_SpliceDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceDecodeErrorZ_clone")] public static extern long CResult_SpliceDecodeErrorZ_clone(long _orig); + // struct LDKCResult_SpliceAckDecodeErrorZ CResult_SpliceAckDecodeErrorZ_ok(struct LDKSpliceAck o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_ok")] public static extern long CResult_SpliceAckDecodeErrorZ_ok(long _o); + // struct LDKCResult_SpliceAckDecodeErrorZ CResult_SpliceAckDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_err")] public static extern long CResult_SpliceAckDecodeErrorZ_err(long _e); + // bool CResult_SpliceAckDecodeErrorZ_is_ok(const struct LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_is_ok")] public static extern bool CResult_SpliceAckDecodeErrorZ_is_ok(long _o); + // void CResult_SpliceAckDecodeErrorZ_free(struct LDKCResult_SpliceAckDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_free")] public static extern void CResult_SpliceAckDecodeErrorZ_free(long __res); + // uint64_t CResult_SpliceAckDecodeErrorZ_clone_ptr(LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_clone_ptr")] public static extern long CResult_SpliceAckDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_SpliceAckDecodeErrorZ CResult_SpliceAckDecodeErrorZ_clone(const struct LDKCResult_SpliceAckDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceAckDecodeErrorZ_clone")] public static extern long CResult_SpliceAckDecodeErrorZ_clone(long _orig); + // struct LDKCResult_SpliceLockedDecodeErrorZ CResult_SpliceLockedDecodeErrorZ_ok(struct LDKSpliceLocked o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_ok")] public static extern long CResult_SpliceLockedDecodeErrorZ_ok(long _o); + // struct LDKCResult_SpliceLockedDecodeErrorZ CResult_SpliceLockedDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_err")] public static extern long CResult_SpliceLockedDecodeErrorZ_err(long _e); + // bool CResult_SpliceLockedDecodeErrorZ_is_ok(const struct LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_is_ok")] public static extern bool CResult_SpliceLockedDecodeErrorZ_is_ok(long _o); + // void CResult_SpliceLockedDecodeErrorZ_free(struct LDKCResult_SpliceLockedDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_free")] public static extern void CResult_SpliceLockedDecodeErrorZ_free(long __res); + // uint64_t CResult_SpliceLockedDecodeErrorZ_clone_ptr(LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone_ptr")] public static extern long CResult_SpliceLockedDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_SpliceLockedDecodeErrorZ CResult_SpliceLockedDecodeErrorZ_clone(const struct LDKCResult_SpliceLockedDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SpliceLockedDecodeErrorZ_clone")] public static extern long CResult_SpliceLockedDecodeErrorZ_clone(long _orig); // struct LDKCResult_TxAddInputDecodeErrorZ CResult_TxAddInputDecodeErrorZ_ok(struct LDKTxAddInput o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TxAddInputDecodeErrorZ_ok")] public static extern long CResult_TxAddInputDecodeErrorZ_ok(long _o); // struct LDKCResult_TxAddInputDecodeErrorZ CResult_TxAddInputDecodeErrorZ_err(struct LDKDecodeError e); @@ -4616,6 +4918,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr")] public static extern long CResult_UpdateFulfillHTLCDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_UpdateFulfillHTLCDecodeErrorZ CResult_UpdateFulfillHTLCDecodeErrorZ_clone(const struct LDKCResult_UpdateFulfillHTLCDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateFulfillHTLCDecodeErrorZ_clone")] public static extern long CResult_UpdateFulfillHTLCDecodeErrorZ_clone(long _orig); + // struct LDKCResult_OnionPacketDecodeErrorZ CResult_OnionPacketDecodeErrorZ_ok(struct LDKOnionPacket o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_ok")] public static extern long CResult_OnionPacketDecodeErrorZ_ok(long _o); + // struct LDKCResult_OnionPacketDecodeErrorZ CResult_OnionPacketDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_err")] public static extern long CResult_OnionPacketDecodeErrorZ_err(long _e); + // bool CResult_OnionPacketDecodeErrorZ_is_ok(const struct LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_is_ok")] public static extern bool CResult_OnionPacketDecodeErrorZ_is_ok(long _o); + // void CResult_OnionPacketDecodeErrorZ_free(struct LDKCResult_OnionPacketDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_free")] public static extern void CResult_OnionPacketDecodeErrorZ_free(long __res); + // uint64_t CResult_OnionPacketDecodeErrorZ_clone_ptr(LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_clone_ptr")] public static extern long CResult_OnionPacketDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_OnionPacketDecodeErrorZ CResult_OnionPacketDecodeErrorZ_clone(const struct LDKCResult_OnionPacketDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionPacketDecodeErrorZ_clone")] public static extern long CResult_OnionPacketDecodeErrorZ_clone(long _orig); // struct LDKCResult_UpdateAddHTLCDecodeErrorZ CResult_UpdateAddHTLCDecodeErrorZ_ok(struct LDKUpdateAddHTLC o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UpdateAddHTLCDecodeErrorZ_ok")] public static extern long CResult_UpdateAddHTLCDecodeErrorZ_ok(long _o); // struct LDKCResult_UpdateAddHTLCDecodeErrorZ CResult_UpdateAddHTLCDecodeErrorZ_err(struct LDKDecodeError e); @@ -4640,6 +4954,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessageDecodeErrorZ_clone_ptr")] public static extern long CResult_OnionMessageDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_OnionMessageDecodeErrorZ CResult_OnionMessageDecodeErrorZ_clone(const struct LDKCResult_OnionMessageDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessageDecodeErrorZ_clone")] public static extern long CResult_OnionMessageDecodeErrorZ_clone(long _orig); + // struct LDKCResult_FinalOnionHopDataDecodeErrorZ CResult_FinalOnionHopDataDecodeErrorZ_ok(struct LDKFinalOnionHopData o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_ok")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_ok(long _o); + // struct LDKCResult_FinalOnionHopDataDecodeErrorZ CResult_FinalOnionHopDataDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_err")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_err(long _e); + // bool CResult_FinalOnionHopDataDecodeErrorZ_is_ok(const struct LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_is_ok")] public static extern bool CResult_FinalOnionHopDataDecodeErrorZ_is_ok(long _o); + // void CResult_FinalOnionHopDataDecodeErrorZ_free(struct LDKCResult_FinalOnionHopDataDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_free")] public static extern void CResult_FinalOnionHopDataDecodeErrorZ_free(long __res); + // uint64_t CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_FinalOnionHopDataDecodeErrorZ CResult_FinalOnionHopDataDecodeErrorZ_clone(const struct LDKCResult_FinalOnionHopDataDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_FinalOnionHopDataDecodeErrorZ_clone")] public static extern long CResult_FinalOnionHopDataDecodeErrorZ_clone(long _orig); // struct LDKCResult_PingDecodeErrorZ CResult_PingDecodeErrorZ_ok(struct LDKPing o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PingDecodeErrorZ_ok")] public static extern long CResult_PingDecodeErrorZ_ok(long _o); // struct LDKCResult_PingDecodeErrorZ CResult_PingDecodeErrorZ_err(struct LDKDecodeError e); @@ -5360,18 +5686,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UntrustedStringDecodeErrorZ_clone_ptr")] public static extern long CResult_UntrustedStringDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_UntrustedStringDecodeErrorZ CResult_UntrustedStringDecodeErrorZ_clone(const struct LDKCResult_UntrustedStringDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_UntrustedStringDecodeErrorZ_clone")] public static extern long CResult_UntrustedStringDecodeErrorZ_clone(long _orig); - // struct LDKCResult_ReceiveTlvsDecodeErrorZ CResult_ReceiveTlvsDecodeErrorZ_ok(struct LDKReceiveTlvs o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_ok")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_ok(long _o); - // struct LDKCResult_ReceiveTlvsDecodeErrorZ CResult_ReceiveTlvsDecodeErrorZ_err(struct LDKDecodeError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_err")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_err(long _e); - // bool CResult_ReceiveTlvsDecodeErrorZ_is_ok(const struct LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_is_ok")] public static extern bool CResult_ReceiveTlvsDecodeErrorZ_is_ok(long _o); - // void CResult_ReceiveTlvsDecodeErrorZ_free(struct LDKCResult_ReceiveTlvsDecodeErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_free")] public static extern void CResult_ReceiveTlvsDecodeErrorZ_free(long __res); - // uint64_t CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone_ptr")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(long _arg); - // struct LDKCResult_ReceiveTlvsDecodeErrorZ CResult_ReceiveTlvsDecodeErrorZ_clone(const struct LDKCResult_ReceiveTlvsDecodeErrorZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ReceiveTlvsDecodeErrorZ_clone")] public static extern long CResult_ReceiveTlvsDecodeErrorZ_clone(long _orig); + // uint64_t C2Tuple__u832u16Z_clone_ptr(LDKC2Tuple__u832u16Z *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_clone_ptr")] public static extern long C2Tuple__u832u16Z_clone_ptr(long _arg); + // struct LDKC2Tuple__u832u16Z C2Tuple__u832u16Z_clone(const struct LDKC2Tuple__u832u16Z *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_clone")] public static extern long C2Tuple__u832u16Z_clone(long _orig); + // struct LDKC2Tuple__u832u16Z C2Tuple__u832u16Z_new(struct LDKThirtyTwoBytes a, uint16_t b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_new")] public static extern long C2Tuple__u832u16Z_new(long _a, short _b); + // void C2Tuple__u832u16Z_free(struct LDKC2Tuple__u832u16Z _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple__u832u16Z_free")] public static extern void C2Tuple__u832u16Z_free(long __res); // struct LDKCResult_PaymentRelayDecodeErrorZ CResult_PaymentRelayDecodeErrorZ_ok(struct LDKPaymentRelay o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentRelayDecodeErrorZ_ok")] public static extern long CResult_PaymentRelayDecodeErrorZ_ok(long _o); // struct LDKCResult_PaymentRelayDecodeErrorZ CResult_PaymentRelayDecodeErrorZ_err(struct LDKDecodeError e); @@ -5396,42 +5718,26 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_clone_ptr")] public static extern long CResult_PaymentConstraintsDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_PaymentConstraintsDecodeErrorZ CResult_PaymentConstraintsDecodeErrorZ_clone(const struct LDKCResult_PaymentConstraintsDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PaymentConstraintsDecodeErrorZ_clone")] public static extern long CResult_PaymentConstraintsDecodeErrorZ_clone(long _orig); - // struct LDKCResult_ThirtyTwoBytesPaymentErrorZ CResult_ThirtyTwoBytesPaymentErrorZ_ok(struct LDKThirtyTwoBytes o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_ok")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_ok(long _o); - // struct LDKCResult_ThirtyTwoBytesPaymentErrorZ CResult_ThirtyTwoBytesPaymentErrorZ_err(struct LDKPaymentError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_err")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_err(long _e); - // bool CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(const struct LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_is_ok")] public static extern bool CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(long _o); - // void CResult_ThirtyTwoBytesPaymentErrorZ_free(struct LDKCResult_ThirtyTwoBytesPaymentErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_free")] public static extern void CResult_ThirtyTwoBytesPaymentErrorZ_free(long __res); - // uint64_t CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(long _arg); - // struct LDKCResult_ThirtyTwoBytesPaymentErrorZ CResult_ThirtyTwoBytesPaymentErrorZ_clone(const struct LDKCResult_ThirtyTwoBytesPaymentErrorZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_ThirtyTwoBytesPaymentErrorZ_clone")] public static extern long CResult_ThirtyTwoBytesPaymentErrorZ_clone(long _orig); - // struct LDKCResult_NonePaymentErrorZ CResult_NonePaymentErrorZ_ok(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_ok")] public static extern long CResult_NonePaymentErrorZ_ok(); - // struct LDKCResult_NonePaymentErrorZ CResult_NonePaymentErrorZ_err(struct LDKPaymentError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_err")] public static extern long CResult_NonePaymentErrorZ_err(long _e); - // bool CResult_NonePaymentErrorZ_is_ok(const struct LDKCResult_NonePaymentErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_is_ok")] public static extern bool CResult_NonePaymentErrorZ_is_ok(long _o); - // void CResult_NonePaymentErrorZ_free(struct LDKCResult_NonePaymentErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_free")] public static extern void CResult_NonePaymentErrorZ_free(long __res); - // uint64_t CResult_NonePaymentErrorZ_clone_ptr(LDKCResult_NonePaymentErrorZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_clone_ptr")] public static extern long CResult_NonePaymentErrorZ_clone_ptr(long _arg); - // struct LDKCResult_NonePaymentErrorZ CResult_NonePaymentErrorZ_clone(const struct LDKCResult_NonePaymentErrorZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NonePaymentErrorZ_clone")] public static extern long CResult_NonePaymentErrorZ_clone(long _orig); - // struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(struct LDKCVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZ o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(long _o); - // struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(struct LDKProbingError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(long _e); - // bool CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(const struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok")] public static extern bool CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(long _o); - // void CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free")] public static extern void CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(long __res); - // uint64_t CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(long _arg); - // struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(const struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone")] public static extern long CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(long _orig); + // uint64_t C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(long _arg); + // struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(const struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(long _orig); + // struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(struct LDKThirtyTwoBytes a, struct LDKRecipientOnionFields b, struct LDKRouteParameters c); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new")] public static extern long C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(long _a, long _b, long _c); + // void C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free")] public static extern void C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(long __res); + // struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(struct LDKC3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok")] public static extern long CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(long _o); + // struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err")] public static extern long CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err(); + // bool CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(const struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok")] public static extern bool CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(long _o); + // void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free")] public static extern void CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(long __res); + // uint64_t CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr")] public static extern long CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(long _arg); + // struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(const struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone")] public static extern long CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(long _orig); // struct LDKCResult_StrSecp256k1ErrorZ CResult_StrSecp256k1ErrorZ_ok(struct LDKStr o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_StrSecp256k1ErrorZ_ok")] public static extern long CResult_StrSecp256k1ErrorZ_ok(long _o); // struct LDKCResult_StrSecp256k1ErrorZ CResult_StrSecp256k1ErrorZ_err(enum LDKSecp256k1Error e); @@ -5456,34 +5762,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TxOutUtxoLookupErrorZ_clone_ptr")] public static extern long CResult_TxOutUtxoLookupErrorZ_clone_ptr(long _arg); // struct LDKCResult_TxOutUtxoLookupErrorZ CResult_TxOutUtxoLookupErrorZ_clone(const struct LDKCResult_TxOutUtxoLookupErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_TxOutUtxoLookupErrorZ_clone")] public static extern long CResult_TxOutUtxoLookupErrorZ_clone(long _orig); - // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_ok(struct LDKOnionMessagePath o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_ok")] public static extern long CResult_OnionMessagePathNoneZ_ok(long _o); - // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_err(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_err")] public static extern long CResult_OnionMessagePathNoneZ_err(); - // bool CResult_OnionMessagePathNoneZ_is_ok(const struct LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_is_ok")] public static extern bool CResult_OnionMessagePathNoneZ_is_ok(long _o); - // void CResult_OnionMessagePathNoneZ_free(struct LDKCResult_OnionMessagePathNoneZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_free")] public static extern void CResult_OnionMessagePathNoneZ_free(long __res); - // uint64_t CResult_OnionMessagePathNoneZ_clone_ptr(LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_clone_ptr")] public static extern long CResult_OnionMessagePathNoneZ_clone_ptr(long _arg); - // struct LDKCResult_OnionMessagePathNoneZ CResult_OnionMessagePathNoneZ_clone(const struct LDKCResult_OnionMessagePathNoneZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_OnionMessagePathNoneZ_clone")] public static extern long CResult_OnionMessagePathNoneZ_clone(long _orig); - // uint64_t C2Tuple_PublicKeyOnionMessageZ_clone_ptr(LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone_ptr")] public static extern long C2Tuple_PublicKeyOnionMessageZ_clone_ptr(long _arg); - // struct LDKC2Tuple_PublicKeyOnionMessageZ C2Tuple_PublicKeyOnionMessageZ_clone(const struct LDKC2Tuple_PublicKeyOnionMessageZ *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_clone")] public static extern long C2Tuple_PublicKeyOnionMessageZ_clone(long _orig); - // struct LDKC2Tuple_PublicKeyOnionMessageZ C2Tuple_PublicKeyOnionMessageZ_new(struct LDKPublicKey a, struct LDKOnionMessage b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_new")] public static extern long C2Tuple_PublicKeyOnionMessageZ_new(long _a, long _b); - // void C2Tuple_PublicKeyOnionMessageZ_free(struct LDKC2Tuple_PublicKeyOnionMessageZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_PublicKeyOnionMessageZ_free")] public static extern void C2Tuple_PublicKeyOnionMessageZ_free(long __res); - // struct LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(struct LDKC2Tuple_PublicKeyOnionMessageZ o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok")] public static extern long CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(long _o); - // struct LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(struct LDKSendError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err")] public static extern long CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(long _e); - // bool CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(const struct LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok")] public static extern bool CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(long _o); - // void CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(struct LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free")] public static extern void CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(long __res); + // uint64_t C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(long _arg); + // struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(const struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(long _orig); + // struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(struct LDKPublicKey a, struct LDKOnionMessage b, struct LDKCOption_CVec_SocketAddressZZ c); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new")] public static extern long C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(long _a, long _b, long _c); + // void C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free")] public static extern void C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(long __res); + // struct LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(struct LDKC3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok")] public static extern long CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(long _o); + // struct LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(struct LDKSendError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err")] public static extern long CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(long _e); + // bool CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(const struct LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok")] public static extern bool CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(long _o); + // void CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(struct LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free")] public static extern void CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(long __res); // struct LDKCResult_PeeledOnionNoneZ CResult_PeeledOnionNoneZ_ok(struct LDKPeeledOnion o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PeeledOnionNoneZ_ok")] public static extern long CResult_PeeledOnionNoneZ_ok(long _o); // struct LDKCResult_PeeledOnionNoneZ CResult_PeeledOnionNoneZ_err(void); @@ -5492,14 +5786,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PeeledOnionNoneZ_is_ok")] public static extern bool CResult_PeeledOnionNoneZ_is_ok(long _o); // void CResult_PeeledOnionNoneZ_free(struct LDKCResult_PeeledOnionNoneZ _res); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_PeeledOnionNoneZ_free")] public static extern void CResult_PeeledOnionNoneZ_free(long __res); - // struct LDKCResult_NoneSendErrorZ CResult_NoneSendErrorZ_ok(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_ok")] public static extern long CResult_NoneSendErrorZ_ok(); - // struct LDKCResult_NoneSendErrorZ CResult_NoneSendErrorZ_err(struct LDKSendError e); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_err")] public static extern long CResult_NoneSendErrorZ_err(long _e); - // bool CResult_NoneSendErrorZ_is_ok(const struct LDKCResult_NoneSendErrorZ *NONNULL_PTR o); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_is_ok")] public static extern bool CResult_NoneSendErrorZ_is_ok(long _o); - // void CResult_NoneSendErrorZ_free(struct LDKCResult_NoneSendErrorZ _res); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_NoneSendErrorZ_free")] public static extern void CResult_NoneSendErrorZ_free(long __res); + // struct LDKCResult_SendSuccessSendErrorZ CResult_SendSuccessSendErrorZ_ok(struct LDKSendSuccess o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_ok")] public static extern long CResult_SendSuccessSendErrorZ_ok(long _o); + // struct LDKCResult_SendSuccessSendErrorZ CResult_SendSuccessSendErrorZ_err(struct LDKSendError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_err")] public static extern long CResult_SendSuccessSendErrorZ_err(long _e); + // bool CResult_SendSuccessSendErrorZ_is_ok(const struct LDKCResult_SendSuccessSendErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_is_ok")] public static extern bool CResult_SendSuccessSendErrorZ_is_ok(long _o); + // void CResult_SendSuccessSendErrorZ_free(struct LDKCResult_SendSuccessSendErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_SendSuccessSendErrorZ_free")] public static extern void CResult_SendSuccessSendErrorZ_free(long __res); // struct LDKCResult_BlindedPathNoneZ CResult_BlindedPathNoneZ_ok(struct LDKBlindedPath o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedPathNoneZ_ok")] public static extern long CResult_BlindedPathNoneZ_ok(long _o); // struct LDKCResult_BlindedPathNoneZ CResult_BlindedPathNoneZ_err(void); @@ -5524,6 +5818,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone_ptr")] public static extern long CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone_ptr(long _arg); // struct LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone(const struct LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone")] public static extern long CResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ_clone(long _orig); + // void CVec_ForwardNodeZ_free(struct LDKCVec_ForwardNodeZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CVec_ForwardNodeZ_free")] public static extern void CVec_ForwardNodeZ_free(long __res); // struct LDKCResult_BlindedPathDecodeErrorZ CResult_BlindedPathDecodeErrorZ_ok(struct LDKBlindedPath o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_BlindedPathDecodeErrorZ_ok")] public static extern long CResult_BlindedPathDecodeErrorZ_ok(long _o); // struct LDKCResult_BlindedPathDecodeErrorZ CResult_BlindedPathDecodeErrorZ_err(struct LDKDecodeError e); @@ -5560,6 +5856,78 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InvoiceErrorDecodeErrorZ_clone_ptr")] public static extern long CResult_InvoiceErrorDecodeErrorZ_clone_ptr(long _arg); // struct LDKCResult_InvoiceErrorDecodeErrorZ CResult_InvoiceErrorDecodeErrorZ_clone(const struct LDKCResult_InvoiceErrorDecodeErrorZ *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_InvoiceErrorDecodeErrorZ_clone")] public static extern long CResult_InvoiceErrorDecodeErrorZ_clone(long _orig); + // struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ CResult_DelayedPaymentBasepointDecodeErrorZ_ok(struct LDKDelayedPaymentBasepoint o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_ok")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_ok(long _o); + // struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ CResult_DelayedPaymentBasepointDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_err")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_err(long _e); + // bool CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(const struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok")] public static extern bool CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(long _o); + // void CResult_DelayedPaymentBasepointDecodeErrorZ_free(struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_free")] public static extern void CResult_DelayedPaymentBasepointDecodeErrorZ_free(long __res); + // uint64_t CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ CResult_DelayedPaymentBasepointDecodeErrorZ_clone(const struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentBasepointDecodeErrorZ_clone")] public static extern long CResult_DelayedPaymentBasepointDecodeErrorZ_clone(long _orig); + // struct LDKCResult_DelayedPaymentKeyDecodeErrorZ CResult_DelayedPaymentKeyDecodeErrorZ_ok(struct LDKDelayedPaymentKey o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_ok")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_ok(long _o); + // struct LDKCResult_DelayedPaymentKeyDecodeErrorZ CResult_DelayedPaymentKeyDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_err")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_err(long _e); + // bool CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(const struct LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_is_ok")] public static extern bool CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(long _o); + // void CResult_DelayedPaymentKeyDecodeErrorZ_free(struct LDKCResult_DelayedPaymentKeyDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_free")] public static extern void CResult_DelayedPaymentKeyDecodeErrorZ_free(long __res); + // uint64_t CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_DelayedPaymentKeyDecodeErrorZ CResult_DelayedPaymentKeyDecodeErrorZ_clone(const struct LDKCResult_DelayedPaymentKeyDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_DelayedPaymentKeyDecodeErrorZ_clone")] public static extern long CResult_DelayedPaymentKeyDecodeErrorZ_clone(long _orig); + // struct LDKCResult_HtlcBasepointDecodeErrorZ CResult_HtlcBasepointDecodeErrorZ_ok(struct LDKHtlcBasepoint o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_ok")] public static extern long CResult_HtlcBasepointDecodeErrorZ_ok(long _o); + // struct LDKCResult_HtlcBasepointDecodeErrorZ CResult_HtlcBasepointDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_err")] public static extern long CResult_HtlcBasepointDecodeErrorZ_err(long _e); + // bool CResult_HtlcBasepointDecodeErrorZ_is_ok(const struct LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_is_ok")] public static extern bool CResult_HtlcBasepointDecodeErrorZ_is_ok(long _o); + // void CResult_HtlcBasepointDecodeErrorZ_free(struct LDKCResult_HtlcBasepointDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_free")] public static extern void CResult_HtlcBasepointDecodeErrorZ_free(long __res); + // uint64_t CResult_HtlcBasepointDecodeErrorZ_clone_ptr(LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone_ptr")] public static extern long CResult_HtlcBasepointDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_HtlcBasepointDecodeErrorZ CResult_HtlcBasepointDecodeErrorZ_clone(const struct LDKCResult_HtlcBasepointDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcBasepointDecodeErrorZ_clone")] public static extern long CResult_HtlcBasepointDecodeErrorZ_clone(long _orig); + // struct LDKCResult_HtlcKeyDecodeErrorZ CResult_HtlcKeyDecodeErrorZ_ok(struct LDKHtlcKey o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_ok")] public static extern long CResult_HtlcKeyDecodeErrorZ_ok(long _o); + // struct LDKCResult_HtlcKeyDecodeErrorZ CResult_HtlcKeyDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_err")] public static extern long CResult_HtlcKeyDecodeErrorZ_err(long _e); + // bool CResult_HtlcKeyDecodeErrorZ_is_ok(const struct LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_is_ok")] public static extern bool CResult_HtlcKeyDecodeErrorZ_is_ok(long _o); + // void CResult_HtlcKeyDecodeErrorZ_free(struct LDKCResult_HtlcKeyDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_free")] public static extern void CResult_HtlcKeyDecodeErrorZ_free(long __res); + // uint64_t CResult_HtlcKeyDecodeErrorZ_clone_ptr(LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone_ptr")] public static extern long CResult_HtlcKeyDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_HtlcKeyDecodeErrorZ CResult_HtlcKeyDecodeErrorZ_clone(const struct LDKCResult_HtlcKeyDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_HtlcKeyDecodeErrorZ_clone")] public static extern long CResult_HtlcKeyDecodeErrorZ_clone(long _orig); + // struct LDKCResult_RevocationBasepointDecodeErrorZ CResult_RevocationBasepointDecodeErrorZ_ok(struct LDKRevocationBasepoint o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_ok")] public static extern long CResult_RevocationBasepointDecodeErrorZ_ok(long _o); + // struct LDKCResult_RevocationBasepointDecodeErrorZ CResult_RevocationBasepointDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_err")] public static extern long CResult_RevocationBasepointDecodeErrorZ_err(long _e); + // bool CResult_RevocationBasepointDecodeErrorZ_is_ok(const struct LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_is_ok")] public static extern bool CResult_RevocationBasepointDecodeErrorZ_is_ok(long _o); + // void CResult_RevocationBasepointDecodeErrorZ_free(struct LDKCResult_RevocationBasepointDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_free")] public static extern void CResult_RevocationBasepointDecodeErrorZ_free(long __res); + // uint64_t CResult_RevocationBasepointDecodeErrorZ_clone_ptr(LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone_ptr")] public static extern long CResult_RevocationBasepointDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_RevocationBasepointDecodeErrorZ CResult_RevocationBasepointDecodeErrorZ_clone(const struct LDKCResult_RevocationBasepointDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationBasepointDecodeErrorZ_clone")] public static extern long CResult_RevocationBasepointDecodeErrorZ_clone(long _orig); + // struct LDKCResult_RevocationKeyDecodeErrorZ CResult_RevocationKeyDecodeErrorZ_ok(struct LDKRevocationKey o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_ok")] public static extern long CResult_RevocationKeyDecodeErrorZ_ok(long _o); + // struct LDKCResult_RevocationKeyDecodeErrorZ CResult_RevocationKeyDecodeErrorZ_err(struct LDKDecodeError e); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_err")] public static extern long CResult_RevocationKeyDecodeErrorZ_err(long _e); + // bool CResult_RevocationKeyDecodeErrorZ_is_ok(const struct LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_is_ok")] public static extern bool CResult_RevocationKeyDecodeErrorZ_is_ok(long _o); + // void CResult_RevocationKeyDecodeErrorZ_free(struct LDKCResult_RevocationKeyDecodeErrorZ _res); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_free")] public static extern void CResult_RevocationKeyDecodeErrorZ_free(long __res); + // uint64_t CResult_RevocationKeyDecodeErrorZ_clone_ptr(LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone_ptr")] public static extern long CResult_RevocationKeyDecodeErrorZ_clone_ptr(long _arg); + // struct LDKCResult_RevocationKeyDecodeErrorZ CResult_RevocationKeyDecodeErrorZ_clone(const struct LDKCResult_RevocationKeyDecodeErrorZ *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CResult_RevocationKeyDecodeErrorZ_clone")] public static extern long CResult_RevocationKeyDecodeErrorZ_clone(long _orig); // struct LDKCOption_FilterZ COption_FilterZ_some(struct LDKFilter o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_COption_FilterZ_some")] public static extern long COption_FilterZ_some(long _o); // struct LDKCOption_FilterZ COption_FilterZ_none(void); @@ -5638,6 +6006,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Hostname_clone_ptr")] public static extern long Hostname_clone_ptr(long _arg); // struct LDKHostname Hostname_clone(const struct LDKHostname *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Hostname_clone")] public static extern long Hostname_clone(long _orig); + // uint64_t Hostname_hash(const struct LDKHostname *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Hostname_hash")] public static extern long Hostname_hash(long _o); // bool Hostname_eq(const struct LDKHostname *NONNULL_PTR a, const struct LDKHostname *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Hostname_eq")] public static extern bool Hostname_eq(long _a, long _b); // MUST_USE_RES uint8_t Hostname_len(const struct LDKHostname *NONNULL_PTR this_arg); @@ -5652,6 +6022,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TransactionU16LenLimited_clone_ptr")] public static extern long TransactionU16LenLimited_clone_ptr(long _arg); // struct LDKTransactionU16LenLimited TransactionU16LenLimited_clone(const struct LDKTransactionU16LenLimited *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TransactionU16LenLimited_clone")] public static extern long TransactionU16LenLimited_clone(long _orig); + // uint64_t TransactionU16LenLimited_hash(const struct LDKTransactionU16LenLimited *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TransactionU16LenLimited_hash")] public static extern long TransactionU16LenLimited_hash(long _o); // bool TransactionU16LenLimited_eq(const struct LDKTransactionU16LenLimited *NONNULL_PTR a, const struct LDKTransactionU16LenLimited *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TransactionU16LenLimited_eq")] public static extern bool TransactionU16LenLimited_eq(long _a, long _b); // MUST_USE_RES struct LDKCResult_TransactionU16LenLimitedNoneZ TransactionU16LenLimited_new(struct LDKTransaction transaction); @@ -5702,6 +6074,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UntrustedString_clone")] public static extern long UntrustedString_clone(long _orig); // bool UntrustedString_eq(const struct LDKUntrustedString *NONNULL_PTR a, const struct LDKUntrustedString *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UntrustedString_eq")] public static extern bool UntrustedString_eq(long _a, long _b); + // uint64_t UntrustedString_hash(const struct LDKUntrustedString *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UntrustedString_hash")] public static extern long UntrustedString_hash(long _o); // struct LDKCVec_u8Z UntrustedString_write(const struct LDKUntrustedString *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UntrustedString_write")] public static extern long UntrustedString_write(long _obj); // struct LDKCResult_UntrustedStringDecodeErrorZ UntrustedString_read(struct LDKu8slice ser); @@ -5766,6 +6140,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_get_level")] public static extern Level Record_get_level(long _this_ptr); // void Record_set_level(struct LDKRecord *NONNULL_PTR this_ptr, enum LDKLevel val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_set_level")] public static extern void Record_set_level(long _this_ptr, Level _val); + // struct LDKPublicKey Record_get_peer_id(const struct LDKRecord *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_get_peer_id")] public static extern long Record_get_peer_id(long _this_ptr); + // void Record_set_peer_id(struct LDKRecord *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_set_peer_id")] public static extern void Record_set_peer_id(long _this_ptr, long _val); + // struct LDKCOption_ThirtyTwoBytesZ Record_get_channel_id(const struct LDKRecord *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_get_channel_id")] public static extern long Record_get_channel_id(long _this_ptr); + // void Record_set_channel_id(struct LDKRecord *NONNULL_PTR this_ptr, struct LDKCOption_ThirtyTwoBytesZ val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_set_channel_id")] public static extern void Record_set_channel_id(long _this_ptr, long _val); // struct LDKStr Record_get_args(const struct LDKRecord *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_get_args")] public static extern long Record_get_args(long _this_ptr); // void Record_set_args(struct LDKRecord *NONNULL_PTR this_ptr, struct LDKStr val); @@ -5782,6 +6164,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_get_line")] public static extern int Record_get_line(long _this_ptr); // void Record_set_line(struct LDKRecord *NONNULL_PTR this_ptr, uint32_t val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_set_line")] public static extern void Record_set_line(long _this_ptr, int _val); + // MUST_USE_RES struct LDKRecord Record_new(enum LDKLevel level_arg, struct LDKPublicKey peer_id_arg, struct LDKCOption_ThirtyTwoBytesZ channel_id_arg, struct LDKStr args_arg, struct LDKStr module_path_arg, struct LDKStr file_arg, uint32_t line_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_new")] public static extern long Record_new(Level _level_arg, long _peer_id_arg, long _channel_id_arg, long _args_arg, long _module_path_arg, long _file_arg, int _line_arg); // uint64_t Record_clone_ptr(LDKRecord *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Record_clone_ptr")] public static extern long Record_clone_ptr(long _arg); // struct LDKRecord Record_clone(const struct LDKRecord *NONNULL_PTR orig); @@ -6058,7 +6442,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WatchedOutput_get_outpoint")] public static extern long WatchedOutput_get_outpoint(long _this_ptr); // void WatchedOutput_set_outpoint(struct LDKWatchedOutput *NONNULL_PTR this_ptr, struct LDKOutPoint val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WatchedOutput_set_outpoint")] public static extern void WatchedOutput_set_outpoint(long _this_ptr, long _val); - // struct LDKu8slice WatchedOutput_get_script_pubkey(const struct LDKWatchedOutput *NONNULL_PTR this_ptr); + // struct LDKCVec_u8Z WatchedOutput_get_script_pubkey(const struct LDKWatchedOutput *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WatchedOutput_get_script_pubkey")] public static extern long WatchedOutput_get_script_pubkey(long _this_ptr); // void WatchedOutput_set_script_pubkey(struct LDKWatchedOutput *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WatchedOutput_set_script_pubkey")] public static extern void WatchedOutput_set_script_pubkey(long _this_ptr, long _val); @@ -6078,8 +6462,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ConfirmationTarget_clone")] public static extern ConfirmationTarget ConfirmationTarget_clone(long _orig); // enum LDKConfirmationTarget ConfirmationTarget_on_chain_sweep(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ConfirmationTarget_on_chain_sweep")] public static extern ConfirmationTarget ConfirmationTarget_on_chain_sweep(); - // enum LDKConfirmationTarget ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee")] public static extern ConfirmationTarget ConfirmationTarget_max_allowed_non_anchor_channel_remote_fee(); // enum LDKConfirmationTarget ConfirmationTarget_min_allowed_anchor_channel_remote_fee(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ConfirmationTarget_min_allowed_anchor_channel_remote_fee")] public static extern ConfirmationTarget ConfirmationTarget_min_allowed_anchor_channel_remote_fee(); // enum LDKConfirmationTarget ConfirmationTarget_min_allowed_non_anchor_channel_remote_fee(void); @@ -6220,8 +6602,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_funding_txo")] public static extern long ChannelMonitor_get_funding_txo(long _this_arg); // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32CVec_u8ZZZZZ ChannelMonitor_get_outputs_to_watch(const struct LDKChannelMonitor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_outputs_to_watch")] public static extern long ChannelMonitor_get_outputs_to_watch(long _this_arg); - // void ChannelMonitor_load_outputs_to_watch(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKFilter *NONNULL_PTR filter); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_load_outputs_to_watch")] public static extern void ChannelMonitor_load_outputs_to_watch(long _this_arg, long _filter); + // void ChannelMonitor_load_outputs_to_watch(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKFilter *NONNULL_PTR filter, const struct LDKLogger *NONNULL_PTR logger); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_load_outputs_to_watch")] public static extern void ChannelMonitor_load_outputs_to_watch(long _this_arg, long _filter, long _logger); // MUST_USE_RES struct LDKCVec_MonitorEventZ ChannelMonitor_get_and_clear_pending_monitor_events(const struct LDKChannelMonitor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_and_clear_pending_monitor_events")] public static extern long ChannelMonitor_get_and_clear_pending_monitor_events(long _this_arg); // void ChannelMonitor_process_pending_events(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKEventHandler *NONNULL_PTR handler); @@ -6236,21 +6618,21 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_counterparty_node_id")] public static extern long ChannelMonitor_get_counterparty_node_id(long _this_arg); // MUST_USE_RES struct LDKCVec_TransactionZ ChannelMonitor_get_latest_holder_commitment_txn(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_latest_holder_commitment_txn")] public static extern long ChannelMonitor_get_latest_holder_commitment_txn(long _this_arg, long _logger); - // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_block_connected(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_block_connected(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_block_connected")] public static extern long ChannelMonitor_block_connected(long _this_arg, long _header, long _txdata, int _height, long _broadcaster, long _fee_estimator, long _logger); - // void ChannelMonitor_block_disconnected(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // void ChannelMonitor_block_disconnected(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_block_disconnected")] public static extern void ChannelMonitor_block_disconnected(long _this_arg, long _header, int _height, long _broadcaster, long _fee_estimator, long _logger); - // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_transactions_confirmed(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_transactions_confirmed(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_transactions_confirmed")] public static extern long ChannelMonitor_transactions_confirmed(long _this_arg, long _header, long _txdata, int _height, long _broadcaster, long _fee_estimator, long _logger); - // void ChannelMonitor_transaction_unconfirmed(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*txid)[32], struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // void ChannelMonitor_transaction_unconfirmed(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*txid)[32], struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_transaction_unconfirmed")] public static extern void ChannelMonitor_transaction_unconfirmed(long _this_arg, long _txid, long _broadcaster, long _fee_estimator, long _logger); - // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_best_block_updated(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCVec_C2Tuple_u32TxOutZZZZ ChannelMonitor_best_block_updated(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_best_block_updated")] public static extern long ChannelMonitor_best_block_updated(long _this_arg, long _header, int _height, long _broadcaster, long _fee_estimator, long _logger); - // MUST_USE_RES struct LDKCVec_C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZZ ChannelMonitor_get_relevant_txids(const struct LDKChannelMonitor *NONNULL_PTR this_arg); + // MUST_USE_RES struct LDKCVec_C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZZ ChannelMonitor_get_relevant_txids(const struct LDKChannelMonitor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_relevant_txids")] public static extern long ChannelMonitor_get_relevant_txids(long _this_arg); // MUST_USE_RES struct LDKBestBlock ChannelMonitor_current_best_block(const struct LDKChannelMonitor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_current_best_block")] public static extern long ChannelMonitor_current_best_block(long _this_arg); - // void ChannelMonitor_rebroadcast_pending_claims(const struct LDKChannelMonitor *NONNULL_PTR this_arg, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, struct LDKLogger logger); + // void ChannelMonitor_rebroadcast_pending_claims(const struct LDKChannelMonitor *NONNULL_PTR this_arg, struct LDKBroadcasterInterface broadcaster, struct LDKFeeEstimator fee_estimator, const struct LDKLogger *NONNULL_PTR logger); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_rebroadcast_pending_claims")] public static extern void ChannelMonitor_rebroadcast_pending_claims(long _this_arg, long _broadcaster, long _fee_estimator, long _logger); // MUST_USE_RES struct LDKCVec_SpendableOutputDescriptorZ ChannelMonitor_get_spendable_outputs(const struct LDKChannelMonitor *NONNULL_PTR this_arg, struct LDKTransaction tx, uint32_t confirmation_height); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelMonitor_get_spendable_outputs")] public static extern long ChannelMonitor_get_spendable_outputs(long _this_arg, long _tx, int _confirmation_height); @@ -6284,6 +6666,102 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OutPoint_write")] public static extern long OutPoint_write(long _obj); // struct LDKCResult_OutPointDecodeErrorZ OutPoint_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OutPoint_read")] public static extern long OutPoint_read(long _ser); + // void InboundHTLCErr_free(struct LDKInboundHTLCErr this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_free")] public static extern void InboundHTLCErr_free(long _this_obj); + // uint16_t InboundHTLCErr_get_err_code(const struct LDKInboundHTLCErr *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_get_err_code")] public static extern short InboundHTLCErr_get_err_code(long _this_ptr); + // void InboundHTLCErr_set_err_code(struct LDKInboundHTLCErr *NONNULL_PTR this_ptr, uint16_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_set_err_code")] public static extern void InboundHTLCErr_set_err_code(long _this_ptr, short _val); + // struct LDKCVec_u8Z InboundHTLCErr_get_err_data(const struct LDKInboundHTLCErr *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_get_err_data")] public static extern long InboundHTLCErr_get_err_data(long _this_ptr); + // void InboundHTLCErr_set_err_data(struct LDKInboundHTLCErr *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_set_err_data")] public static extern void InboundHTLCErr_set_err_data(long _this_ptr, long _val); + // struct LDKStr InboundHTLCErr_get_msg(const struct LDKInboundHTLCErr *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_get_msg")] public static extern long InboundHTLCErr_get_msg(long _this_ptr); + // void InboundHTLCErr_set_msg(struct LDKInboundHTLCErr *NONNULL_PTR this_ptr, struct LDKStr val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_set_msg")] public static extern void InboundHTLCErr_set_msg(long _this_ptr, long _val); + // MUST_USE_RES struct LDKInboundHTLCErr InboundHTLCErr_new(uint16_t err_code_arg, struct LDKCVec_u8Z err_data_arg, struct LDKStr msg_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InboundHTLCErr_new")] public static extern long InboundHTLCErr_new(short _err_code_arg, long _err_data_arg, long _msg_arg); + // struct LDKCResult_PendingHTLCInfoInboundHTLCErrZ peel_payment_onion(const struct LDKUpdateAddHTLC *NONNULL_PTR msg, const struct LDKNodeSigner *NONNULL_PTR node_signer, const struct LDKLogger *NONNULL_PTR logger, uint32_t cur_height, bool accept_mpp_keysend, bool allow_skimmed_fees); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_peel_payment_onion")] public static extern long peel_payment_onion(long _msg, long _node_signer, long _logger, int _cur_height, bool _accept_mpp_keysend, bool _allow_skimmed_fees); + // void PendingHTLCRouting_free(struct LDKPendingHTLCRouting this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_free")] public static extern void PendingHTLCRouting_free(long _this_ptr); + // uint64_t PendingHTLCRouting_clone_ptr(LDKPendingHTLCRouting *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_clone_ptr")] public static extern long PendingHTLCRouting_clone_ptr(long _arg); + // struct LDKPendingHTLCRouting PendingHTLCRouting_clone(const struct LDKPendingHTLCRouting *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_clone")] public static extern long PendingHTLCRouting_clone(long _orig); + // struct LDKPendingHTLCRouting PendingHTLCRouting_forward(struct LDKOnionPacket onion_packet, uint64_t short_channel_id, struct LDKBlindedForward blinded); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_forward")] public static extern long PendingHTLCRouting_forward(long _onion_packet, long _short_channel_id, long _blinded); + // struct LDKPendingHTLCRouting PendingHTLCRouting_receive(struct LDKFinalOnionHopData payment_data, struct LDKCOption_CVec_u8ZZ payment_metadata, uint32_t incoming_cltv_expiry, struct LDKThirtyTwoBytes phantom_shared_secret, struct LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs, bool requires_blinded_error); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_receive")] public static extern long PendingHTLCRouting_receive(long _payment_data, long _payment_metadata, int _incoming_cltv_expiry, long _phantom_shared_secret, long _custom_tlvs, bool _requires_blinded_error); + // struct LDKPendingHTLCRouting PendingHTLCRouting_receive_keysend(struct LDKFinalOnionHopData payment_data, struct LDKThirtyTwoBytes payment_preimage, struct LDKCOption_CVec_u8ZZ payment_metadata, uint32_t incoming_cltv_expiry, struct LDKCVec_C2Tuple_u64CVec_u8ZZZ custom_tlvs); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_receive_keysend")] public static extern long PendingHTLCRouting_receive_keysend(long _payment_data, long _payment_preimage, long _payment_metadata, int _incoming_cltv_expiry, long _custom_tlvs); + // void BlindedForward_free(struct LDKBlindedForward this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_free")] public static extern void BlindedForward_free(long _this_obj); + // struct LDKPublicKey BlindedForward_get_inbound_blinding_point(const struct LDKBlindedForward *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_get_inbound_blinding_point")] public static extern long BlindedForward_get_inbound_blinding_point(long _this_ptr); + // void BlindedForward_set_inbound_blinding_point(struct LDKBlindedForward *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_set_inbound_blinding_point")] public static extern void BlindedForward_set_inbound_blinding_point(long _this_ptr, long _val); + // enum LDKBlindedFailure BlindedForward_get_failure(const struct LDKBlindedForward *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_get_failure")] public static extern BlindedFailure BlindedForward_get_failure(long _this_ptr); + // void BlindedForward_set_failure(struct LDKBlindedForward *NONNULL_PTR this_ptr, enum LDKBlindedFailure val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_set_failure")] public static extern void BlindedForward_set_failure(long _this_ptr, BlindedFailure _val); + // MUST_USE_RES struct LDKBlindedForward BlindedForward_new(struct LDKPublicKey inbound_blinding_point_arg, enum LDKBlindedFailure failure_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_new")] public static extern long BlindedForward_new(long _inbound_blinding_point_arg, BlindedFailure _failure_arg); + // uint64_t BlindedForward_clone_ptr(LDKBlindedForward *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_clone_ptr")] public static extern long BlindedForward_clone_ptr(long _arg); + // struct LDKBlindedForward BlindedForward_clone(const struct LDKBlindedForward *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_clone")] public static extern long BlindedForward_clone(long _orig); + // uint64_t BlindedForward_hash(const struct LDKBlindedForward *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_hash")] public static extern long BlindedForward_hash(long _o); + // bool BlindedForward_eq(const struct LDKBlindedForward *NONNULL_PTR a, const struct LDKBlindedForward *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_eq")] public static extern bool BlindedForward_eq(long _a, long _b); + // void PendingHTLCInfo_free(struct LDKPendingHTLCInfo this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_free")] public static extern void PendingHTLCInfo_free(long _this_obj); + // struct LDKPendingHTLCRouting PendingHTLCInfo_get_routing(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_routing")] public static extern long PendingHTLCInfo_get_routing(long _this_ptr); + // void PendingHTLCInfo_set_routing(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, struct LDKPendingHTLCRouting val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_routing")] public static extern void PendingHTLCInfo_set_routing(long _this_ptr, long _val); + // const uint8_t (*PendingHTLCInfo_get_incoming_shared_secret(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_incoming_shared_secret")] public static extern long PendingHTLCInfo_get_incoming_shared_secret(long _this_ptr); + // void PendingHTLCInfo_set_incoming_shared_secret(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_incoming_shared_secret")] public static extern void PendingHTLCInfo_set_incoming_shared_secret(long _this_ptr, long _val); + // const uint8_t (*PendingHTLCInfo_get_payment_hash(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_payment_hash")] public static extern long PendingHTLCInfo_get_payment_hash(long _this_ptr); + // void PendingHTLCInfo_set_payment_hash(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_payment_hash")] public static extern void PendingHTLCInfo_set_payment_hash(long _this_ptr, long _val); + // struct LDKCOption_u64Z PendingHTLCInfo_get_incoming_amt_msat(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_incoming_amt_msat")] public static extern long PendingHTLCInfo_get_incoming_amt_msat(long _this_ptr); + // void PendingHTLCInfo_set_incoming_amt_msat(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, struct LDKCOption_u64Z val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_incoming_amt_msat")] public static extern void PendingHTLCInfo_set_incoming_amt_msat(long _this_ptr, long _val); + // uint64_t PendingHTLCInfo_get_outgoing_amt_msat(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_outgoing_amt_msat")] public static extern long PendingHTLCInfo_get_outgoing_amt_msat(long _this_ptr); + // void PendingHTLCInfo_set_outgoing_amt_msat(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, uint64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_outgoing_amt_msat")] public static extern void PendingHTLCInfo_set_outgoing_amt_msat(long _this_ptr, long _val); + // uint32_t PendingHTLCInfo_get_outgoing_cltv_value(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_outgoing_cltv_value")] public static extern int PendingHTLCInfo_get_outgoing_cltv_value(long _this_ptr); + // void PendingHTLCInfo_set_outgoing_cltv_value(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, uint32_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_outgoing_cltv_value")] public static extern void PendingHTLCInfo_set_outgoing_cltv_value(long _this_ptr, int _val); + // struct LDKCOption_u64Z PendingHTLCInfo_get_skimmed_fee_msat(const struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_get_skimmed_fee_msat")] public static extern long PendingHTLCInfo_get_skimmed_fee_msat(long _this_ptr); + // void PendingHTLCInfo_set_skimmed_fee_msat(struct LDKPendingHTLCInfo *NONNULL_PTR this_ptr, struct LDKCOption_u64Z val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_set_skimmed_fee_msat")] public static extern void PendingHTLCInfo_set_skimmed_fee_msat(long _this_ptr, long _val); + // MUST_USE_RES struct LDKPendingHTLCInfo PendingHTLCInfo_new(struct LDKPendingHTLCRouting routing_arg, struct LDKThirtyTwoBytes incoming_shared_secret_arg, struct LDKThirtyTwoBytes payment_hash_arg, struct LDKCOption_u64Z incoming_amt_msat_arg, uint64_t outgoing_amt_msat_arg, uint32_t outgoing_cltv_value_arg, struct LDKCOption_u64Z skimmed_fee_msat_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_new")] public static extern long PendingHTLCInfo_new(long _routing_arg, long _incoming_shared_secret_arg, long _payment_hash_arg, long _incoming_amt_msat_arg, long _outgoing_amt_msat_arg, int _outgoing_cltv_value_arg, long _skimmed_fee_msat_arg); + // uint64_t PendingHTLCInfo_clone_ptr(LDKPendingHTLCInfo *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_clone_ptr")] public static extern long PendingHTLCInfo_clone_ptr(long _arg); + // struct LDKPendingHTLCInfo PendingHTLCInfo_clone(const struct LDKPendingHTLCInfo *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_clone")] public static extern long PendingHTLCInfo_clone(long _orig); + // enum LDKBlindedFailure BlindedFailure_clone(const enum LDKBlindedFailure *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_clone")] public static extern BlindedFailure BlindedFailure_clone(long _orig); + // enum LDKBlindedFailure BlindedFailure_from_introduction_node(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_from_introduction_node")] public static extern BlindedFailure BlindedFailure_from_introduction_node(); + // enum LDKBlindedFailure BlindedFailure_from_blinded_node(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_from_blinded_node")] public static extern BlindedFailure BlindedFailure_from_blinded_node(); + // uint64_t BlindedFailure_hash(const enum LDKBlindedFailure *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_hash")] public static extern long BlindedFailure_hash(long _o); + // bool BlindedFailure_eq(const enum LDKBlindedFailure *NONNULL_PTR a, const enum LDKBlindedFailure *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_eq")] public static extern bool BlindedFailure_eq(long _a, long _b); // void FailureCode_free(struct LDKFailureCode this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FailureCode_free")] public static extern void FailureCode_free(long _this_ptr); // uint64_t FailureCode_clone_ptr(LDKFailureCode *NONNULL_PTR arg); @@ -6540,8 +7018,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_new")] public static extern long ChannelManager_new(long _fee_est, long _chain_monitor, long _tx_broadcaster, long _router, long _logger, long _entropy_source, long _node_signer, long _signer_provider, long _config, long _params, int _current_timestamp); // MUST_USE_RES struct LDKUserConfig ChannelManager_get_current_default_configuration(const struct LDKChannelManager *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_get_current_default_configuration")] public static extern long ChannelManager_get_current_default_configuration(long _this_arg); - // MUST_USE_RES struct LDKCResult_ThirtyTwoBytesAPIErrorZ ChannelManager_create_channel(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKPublicKey their_network_key, uint64_t channel_value_satoshis, uint64_t push_msat, struct LDKU128 user_channel_id, struct LDKUserConfig override_config); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_create_channel")] public static extern long ChannelManager_create_channel(long _this_arg, long _their_network_key, long _channel_value_satoshis, long _push_msat, long _user_channel_id, long _override_config); + // MUST_USE_RES struct LDKCResult_ThirtyTwoBytesAPIErrorZ ChannelManager_create_channel(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKPublicKey their_network_key, uint64_t channel_value_satoshis, uint64_t push_msat, struct LDKU128 user_channel_id, struct LDKCOption_ThirtyTwoBytesZ temporary_channel_id, struct LDKUserConfig override_config); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_create_channel")] public static extern long ChannelManager_create_channel(long _this_arg, long _their_network_key, long _channel_value_satoshis, long _push_msat, long _user_channel_id, long _temporary_channel_id, long _override_config); // MUST_USE_RES struct LDKCVec_ChannelDetailsZ ChannelManager_list_channels(const struct LDKChannelManager *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_list_channels")] public static extern long ChannelManager_list_channels(long _this_arg); // MUST_USE_RES struct LDKCVec_ChannelDetailsZ ChannelManager_list_usable_channels(const struct LDKChannelManager *NONNULL_PTR this_arg); @@ -6670,6 +7148,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PhantomRouteHints_write")] public static extern long PhantomRouteHints_write(long _obj); // struct LDKCResult_PhantomRouteHintsDecodeErrorZ PhantomRouteHints_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PhantomRouteHints_read")] public static extern long PhantomRouteHints_read(long _ser); + // struct LDKCVec_u8Z BlindedForward_write(const struct LDKBlindedForward *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_write")] public static extern long BlindedForward_write(long _obj); + // struct LDKCResult_BlindedForwardDecodeErrorZ BlindedForward_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedForward_read")] public static extern long BlindedForward_read(long _ser); + // struct LDKCVec_u8Z PendingHTLCRouting_write(const struct LDKPendingHTLCRouting *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_write")] public static extern long PendingHTLCRouting_write(long _obj); + // struct LDKCResult_PendingHTLCRoutingDecodeErrorZ PendingHTLCRouting_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCRouting_read")] public static extern long PendingHTLCRouting_read(long _ser); + // struct LDKCVec_u8Z PendingHTLCInfo_write(const struct LDKPendingHTLCInfo *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_write")] public static extern long PendingHTLCInfo_write(long _obj); + // struct LDKCResult_PendingHTLCInfoDecodeErrorZ PendingHTLCInfo_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PendingHTLCInfo_read")] public static extern long PendingHTLCInfo_read(long _ser); + // struct LDKCVec_u8Z BlindedFailure_write(const enum LDKBlindedFailure *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_write")] public static extern long BlindedFailure_write(long _obj); + // struct LDKCResult_BlindedFailureDecodeErrorZ BlindedFailure_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedFailure_read")] public static extern long BlindedFailure_read(long _ser); // struct LDKCVec_u8Z ChannelManager_write(const struct LDKChannelManager *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManager_write")] public static extern long ChannelManager_write(long _obj); // struct LDKCVec_u8Z ChannelShutdownState_write(const enum LDKChannelShutdownState *NONNULL_PTR obj); @@ -6718,6 +7212,144 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelManagerReadArgs_new")] public static extern long ChannelManagerReadArgs_new(long _entropy_source, long _node_signer, long _signer_provider, long _fee_estimator, long _chain_monitor, long _tx_broadcaster, long _router, long _logger, long _default_config, long _channel_monitors); // struct LDKCResult_C2Tuple_ThirtyTwoBytesChannelManagerZDecodeErrorZ C2Tuple_ThirtyTwoBytesChannelManagerZ_read(struct LDKu8slice ser, struct LDKChannelManagerReadArgs arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_C2Tuple_ThirtyTwoBytesChannelManagerZ_read")] public static extern long C2Tuple_ThirtyTwoBytesChannelManagerZ_read(long _ser, long _arg); + // void DelayedPaymentBasepoint_free(struct LDKDelayedPaymentBasepoint this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_free")] public static extern void DelayedPaymentBasepoint_free(long _this_obj); + // struct LDKPublicKey DelayedPaymentBasepoint_get_a(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_get_a")] public static extern long DelayedPaymentBasepoint_get_a(long _this_ptr); + // void DelayedPaymentBasepoint_set_a(struct LDKDelayedPaymentBasepoint *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_set_a")] public static extern void DelayedPaymentBasepoint_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKDelayedPaymentBasepoint DelayedPaymentBasepoint_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_new")] public static extern long DelayedPaymentBasepoint_new(long _a_arg); + // bool DelayedPaymentBasepoint_eq(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR a, const struct LDKDelayedPaymentBasepoint *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_eq")] public static extern bool DelayedPaymentBasepoint_eq(long _a, long _b); + // uint64_t DelayedPaymentBasepoint_clone_ptr(LDKDelayedPaymentBasepoint *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_clone_ptr")] public static extern long DelayedPaymentBasepoint_clone_ptr(long _arg); + // struct LDKDelayedPaymentBasepoint DelayedPaymentBasepoint_clone(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_clone")] public static extern long DelayedPaymentBasepoint_clone(long _orig); + // uint64_t DelayedPaymentBasepoint_hash(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_hash")] public static extern long DelayedPaymentBasepoint_hash(long _o); + // MUST_USE_RES struct LDKPublicKey DelayedPaymentBasepoint_to_public_key(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_to_public_key")] public static extern long DelayedPaymentBasepoint_to_public_key(long _this_arg); + // struct LDKCVec_u8Z DelayedPaymentBasepoint_write(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_write")] public static extern long DelayedPaymentBasepoint_write(long _obj); + // struct LDKCResult_DelayedPaymentBasepointDecodeErrorZ DelayedPaymentBasepoint_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentBasepoint_read")] public static extern long DelayedPaymentBasepoint_read(long _ser); + // void DelayedPaymentKey_free(struct LDKDelayedPaymentKey this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_free")] public static extern void DelayedPaymentKey_free(long _this_obj); + // struct LDKPublicKey DelayedPaymentKey_get_a(const struct LDKDelayedPaymentKey *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_get_a")] public static extern long DelayedPaymentKey_get_a(long _this_ptr); + // void DelayedPaymentKey_set_a(struct LDKDelayedPaymentKey *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_set_a")] public static extern void DelayedPaymentKey_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKDelayedPaymentKey DelayedPaymentKey_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_new")] public static extern long DelayedPaymentKey_new(long _a_arg); + // bool DelayedPaymentKey_eq(const struct LDKDelayedPaymentKey *NONNULL_PTR a, const struct LDKDelayedPaymentKey *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_eq")] public static extern bool DelayedPaymentKey_eq(long _a, long _b); + // uint64_t DelayedPaymentKey_clone_ptr(LDKDelayedPaymentKey *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_clone_ptr")] public static extern long DelayedPaymentKey_clone_ptr(long _arg); + // struct LDKDelayedPaymentKey DelayedPaymentKey_clone(const struct LDKDelayedPaymentKey *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_clone")] public static extern long DelayedPaymentKey_clone(long _orig); + // MUST_USE_RES struct LDKDelayedPaymentKey DelayedPaymentKey_from_basepoint(const struct LDKDelayedPaymentBasepoint *NONNULL_PTR countersignatory_basepoint, struct LDKPublicKey per_commitment_point); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_from_basepoint")] public static extern long DelayedPaymentKey_from_basepoint(long _countersignatory_basepoint, long _per_commitment_point); + // MUST_USE_RES struct LDKDelayedPaymentKey DelayedPaymentKey_from_secret_key(const uint8_t (*sk)[32]); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_from_secret_key")] public static extern long DelayedPaymentKey_from_secret_key(long _sk); + // MUST_USE_RES struct LDKPublicKey DelayedPaymentKey_to_public_key(const struct LDKDelayedPaymentKey *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_to_public_key")] public static extern long DelayedPaymentKey_to_public_key(long _this_arg); + // struct LDKCVec_u8Z DelayedPaymentKey_write(const struct LDKDelayedPaymentKey *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_write")] public static extern long DelayedPaymentKey_write(long _obj); + // struct LDKCResult_DelayedPaymentKeyDecodeErrorZ DelayedPaymentKey_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentKey_read")] public static extern long DelayedPaymentKey_read(long _ser); + // void HtlcBasepoint_free(struct LDKHtlcBasepoint this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_free")] public static extern void HtlcBasepoint_free(long _this_obj); + // struct LDKPublicKey HtlcBasepoint_get_a(const struct LDKHtlcBasepoint *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_get_a")] public static extern long HtlcBasepoint_get_a(long _this_ptr); + // void HtlcBasepoint_set_a(struct LDKHtlcBasepoint *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_set_a")] public static extern void HtlcBasepoint_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKHtlcBasepoint HtlcBasepoint_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_new")] public static extern long HtlcBasepoint_new(long _a_arg); + // bool HtlcBasepoint_eq(const struct LDKHtlcBasepoint *NONNULL_PTR a, const struct LDKHtlcBasepoint *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_eq")] public static extern bool HtlcBasepoint_eq(long _a, long _b); + // uint64_t HtlcBasepoint_clone_ptr(LDKHtlcBasepoint *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_clone_ptr")] public static extern long HtlcBasepoint_clone_ptr(long _arg); + // struct LDKHtlcBasepoint HtlcBasepoint_clone(const struct LDKHtlcBasepoint *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_clone")] public static extern long HtlcBasepoint_clone(long _orig); + // uint64_t HtlcBasepoint_hash(const struct LDKHtlcBasepoint *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_hash")] public static extern long HtlcBasepoint_hash(long _o); + // MUST_USE_RES struct LDKPublicKey HtlcBasepoint_to_public_key(const struct LDKHtlcBasepoint *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_to_public_key")] public static extern long HtlcBasepoint_to_public_key(long _this_arg); + // struct LDKCVec_u8Z HtlcBasepoint_write(const struct LDKHtlcBasepoint *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_write")] public static extern long HtlcBasepoint_write(long _obj); + // struct LDKCResult_HtlcBasepointDecodeErrorZ HtlcBasepoint_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcBasepoint_read")] public static extern long HtlcBasepoint_read(long _ser); + // void HtlcKey_free(struct LDKHtlcKey this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_free")] public static extern void HtlcKey_free(long _this_obj); + // struct LDKPublicKey HtlcKey_get_a(const struct LDKHtlcKey *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_get_a")] public static extern long HtlcKey_get_a(long _this_ptr); + // void HtlcKey_set_a(struct LDKHtlcKey *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_set_a")] public static extern void HtlcKey_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKHtlcKey HtlcKey_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_new")] public static extern long HtlcKey_new(long _a_arg); + // bool HtlcKey_eq(const struct LDKHtlcKey *NONNULL_PTR a, const struct LDKHtlcKey *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_eq")] public static extern bool HtlcKey_eq(long _a, long _b); + // uint64_t HtlcKey_clone_ptr(LDKHtlcKey *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_clone_ptr")] public static extern long HtlcKey_clone_ptr(long _arg); + // struct LDKHtlcKey HtlcKey_clone(const struct LDKHtlcKey *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_clone")] public static extern long HtlcKey_clone(long _orig); + // MUST_USE_RES struct LDKHtlcKey HtlcKey_from_basepoint(const struct LDKHtlcBasepoint *NONNULL_PTR countersignatory_basepoint, struct LDKPublicKey per_commitment_point); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_from_basepoint")] public static extern long HtlcKey_from_basepoint(long _countersignatory_basepoint, long _per_commitment_point); + // MUST_USE_RES struct LDKHtlcKey HtlcKey_from_secret_key(const uint8_t (*sk)[32]); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_from_secret_key")] public static extern long HtlcKey_from_secret_key(long _sk); + // MUST_USE_RES struct LDKPublicKey HtlcKey_to_public_key(const struct LDKHtlcKey *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_to_public_key")] public static extern long HtlcKey_to_public_key(long _this_arg); + // struct LDKCVec_u8Z HtlcKey_write(const struct LDKHtlcKey *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_write")] public static extern long HtlcKey_write(long _obj); + // struct LDKCResult_HtlcKeyDecodeErrorZ HtlcKey_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HtlcKey_read")] public static extern long HtlcKey_read(long _ser); + // void RevocationBasepoint_free(struct LDKRevocationBasepoint this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_free")] public static extern void RevocationBasepoint_free(long _this_obj); + // struct LDKPublicKey RevocationBasepoint_get_a(const struct LDKRevocationBasepoint *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_get_a")] public static extern long RevocationBasepoint_get_a(long _this_ptr); + // void RevocationBasepoint_set_a(struct LDKRevocationBasepoint *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_set_a")] public static extern void RevocationBasepoint_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKRevocationBasepoint RevocationBasepoint_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_new")] public static extern long RevocationBasepoint_new(long _a_arg); + // bool RevocationBasepoint_eq(const struct LDKRevocationBasepoint *NONNULL_PTR a, const struct LDKRevocationBasepoint *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_eq")] public static extern bool RevocationBasepoint_eq(long _a, long _b); + // uint64_t RevocationBasepoint_clone_ptr(LDKRevocationBasepoint *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_clone_ptr")] public static extern long RevocationBasepoint_clone_ptr(long _arg); + // struct LDKRevocationBasepoint RevocationBasepoint_clone(const struct LDKRevocationBasepoint *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_clone")] public static extern long RevocationBasepoint_clone(long _orig); + // uint64_t RevocationBasepoint_hash(const struct LDKRevocationBasepoint *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_hash")] public static extern long RevocationBasepoint_hash(long _o); + // MUST_USE_RES struct LDKPublicKey RevocationBasepoint_to_public_key(const struct LDKRevocationBasepoint *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_to_public_key")] public static extern long RevocationBasepoint_to_public_key(long _this_arg); + // struct LDKCVec_u8Z RevocationBasepoint_write(const struct LDKRevocationBasepoint *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_write")] public static extern long RevocationBasepoint_write(long _obj); + // struct LDKCResult_RevocationBasepointDecodeErrorZ RevocationBasepoint_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationBasepoint_read")] public static extern long RevocationBasepoint_read(long _ser); + // void RevocationKey_free(struct LDKRevocationKey this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_free")] public static extern void RevocationKey_free(long _this_obj); + // struct LDKPublicKey RevocationKey_get_a(const struct LDKRevocationKey *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_get_a")] public static extern long RevocationKey_get_a(long _this_ptr); + // void RevocationKey_set_a(struct LDKRevocationKey *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_set_a")] public static extern void RevocationKey_set_a(long _this_ptr, long _val); + // MUST_USE_RES struct LDKRevocationKey RevocationKey_new(struct LDKPublicKey a_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_new")] public static extern long RevocationKey_new(long _a_arg); + // bool RevocationKey_eq(const struct LDKRevocationKey *NONNULL_PTR a, const struct LDKRevocationKey *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_eq")] public static extern bool RevocationKey_eq(long _a, long _b); + // uint64_t RevocationKey_clone_ptr(LDKRevocationKey *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_clone_ptr")] public static extern long RevocationKey_clone_ptr(long _arg); + // struct LDKRevocationKey RevocationKey_clone(const struct LDKRevocationKey *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_clone")] public static extern long RevocationKey_clone(long _orig); + // uint64_t RevocationKey_hash(const struct LDKRevocationKey *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_hash")] public static extern long RevocationKey_hash(long _o); + // MUST_USE_RES struct LDKRevocationKey RevocationKey_from_basepoint(const struct LDKRevocationBasepoint *NONNULL_PTR countersignatory_basepoint, struct LDKPublicKey per_commitment_point); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_from_basepoint")] public static extern long RevocationKey_from_basepoint(long _countersignatory_basepoint, long _per_commitment_point); + // MUST_USE_RES struct LDKPublicKey RevocationKey_to_public_key(const struct LDKRevocationKey *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_to_public_key")] public static extern long RevocationKey_to_public_key(long _this_arg); + // struct LDKCVec_u8Z RevocationKey_write(const struct LDKRevocationKey *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_write")] public static extern long RevocationKey_write(long _obj); + // struct LDKCResult_RevocationKeyDecodeErrorZ RevocationKey_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevocationKey_read")] public static extern long RevocationKey_read(long _ser); // void ExpandedKey_free(struct LDKExpandedKey this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ExpandedKey_free")] public static extern void ExpandedKey_free(long _this_obj); // MUST_USE_RES struct LDKExpandedKey ExpandedKey_new(const uint8_t (*key_material)[32]); @@ -6746,6 +7378,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DecodeError_io")] public static extern long DecodeError_io(IOError _a); // struct LDKDecodeError DecodeError_unsupported_compression(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DecodeError_unsupported_compression")] public static extern long DecodeError_unsupported_compression(); + // uint64_t DecodeError_hash(const struct LDKDecodeError *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DecodeError_hash")] public static extern long DecodeError_hash(long _o); // bool DecodeError_eq(const struct LDKDecodeError *NONNULL_PTR a, const struct LDKDecodeError *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DecodeError_eq")] public static extern bool DecodeError_eq(long _a, long _b); // void Init_free(struct LDKInit this_obj); @@ -6768,6 +7402,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Init_clone_ptr")] public static extern long Init_clone_ptr(long _arg); // struct LDKInit Init_clone(const struct LDKInit *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Init_clone")] public static extern long Init_clone(long _orig); + // uint64_t Init_hash(const struct LDKInit *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Init_hash")] public static extern long Init_hash(long _o); // bool Init_eq(const struct LDKInit *NONNULL_PTR a, const struct LDKInit *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Init_eq")] public static extern bool Init_eq(long _a, long _b); // void ErrorMessage_free(struct LDKErrorMessage this_obj); @@ -6786,6 +7422,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorMessage_clone_ptr")] public static extern long ErrorMessage_clone_ptr(long _arg); // struct LDKErrorMessage ErrorMessage_clone(const struct LDKErrorMessage *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorMessage_clone")] public static extern long ErrorMessage_clone(long _orig); + // uint64_t ErrorMessage_hash(const struct LDKErrorMessage *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorMessage_hash")] public static extern long ErrorMessage_hash(long _o); // bool ErrorMessage_eq(const struct LDKErrorMessage *NONNULL_PTR a, const struct LDKErrorMessage *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorMessage_eq")] public static extern bool ErrorMessage_eq(long _a, long _b); // void WarningMessage_free(struct LDKWarningMessage this_obj); @@ -6804,6 +7442,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WarningMessage_clone_ptr")] public static extern long WarningMessage_clone_ptr(long _arg); // struct LDKWarningMessage WarningMessage_clone(const struct LDKWarningMessage *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WarningMessage_clone")] public static extern long WarningMessage_clone(long _orig); + // uint64_t WarningMessage_hash(const struct LDKWarningMessage *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WarningMessage_hash")] public static extern long WarningMessage_hash(long _o); // bool WarningMessage_eq(const struct LDKWarningMessage *NONNULL_PTR a, const struct LDKWarningMessage *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WarningMessage_eq")] public static extern bool WarningMessage_eq(long _a, long _b); // void Ping_free(struct LDKPing this_obj); @@ -6822,6 +7462,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Ping_clone_ptr")] public static extern long Ping_clone_ptr(long _arg); // struct LDKPing Ping_clone(const struct LDKPing *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Ping_clone")] public static extern long Ping_clone(long _orig); + // uint64_t Ping_hash(const struct LDKPing *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Ping_hash")] public static extern long Ping_hash(long _o); // bool Ping_eq(const struct LDKPing *NONNULL_PTR a, const struct LDKPing *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Ping_eq")] public static extern bool Ping_eq(long _a, long _b); // void Pong_free(struct LDKPong this_obj); @@ -6836,6 +7478,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Pong_clone_ptr")] public static extern long Pong_clone_ptr(long _arg); // struct LDKPong Pong_clone(const struct LDKPong *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Pong_clone")] public static extern long Pong_clone(long _orig); + // uint64_t Pong_hash(const struct LDKPong *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Pong_hash")] public static extern long Pong_hash(long _o); // bool Pong_eq(const struct LDKPong *NONNULL_PTR a, const struct LDKPong *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Pong_eq")] public static extern bool Pong_eq(long _a, long _b); // void OpenChannel_free(struct LDKOpenChannel this_obj); @@ -6926,6 +7570,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannel_clone_ptr")] public static extern long OpenChannel_clone_ptr(long _arg); // struct LDKOpenChannel OpenChannel_clone(const struct LDKOpenChannel *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannel_clone")] public static extern long OpenChannel_clone(long _orig); + // uint64_t OpenChannel_hash(const struct LDKOpenChannel *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannel_hash")] public static extern long OpenChannel_hash(long _o); // bool OpenChannel_eq(const struct LDKOpenChannel *NONNULL_PTR a, const struct LDKOpenChannel *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannel_eq")] public static extern bool OpenChannel_eq(long _a, long _b); // void OpenChannelV2_free(struct LDKOpenChannelV2 this_obj); @@ -7024,6 +7670,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannelV2_clone_ptr")] public static extern long OpenChannelV2_clone_ptr(long _arg); // struct LDKOpenChannelV2 OpenChannelV2_clone(const struct LDKOpenChannelV2 *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannelV2_clone")] public static extern long OpenChannelV2_clone(long _orig); + // uint64_t OpenChannelV2_hash(const struct LDKOpenChannelV2 *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannelV2_hash")] public static extern long OpenChannelV2_hash(long _o); // bool OpenChannelV2_eq(const struct LDKOpenChannelV2 *NONNULL_PTR a, const struct LDKOpenChannelV2 *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OpenChannelV2_eq")] public static extern bool OpenChannelV2_eq(long _a, long _b); // void AcceptChannel_free(struct LDKAcceptChannel this_obj); @@ -7098,6 +7746,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannel_clone_ptr")] public static extern long AcceptChannel_clone_ptr(long _arg); // struct LDKAcceptChannel AcceptChannel_clone(const struct LDKAcceptChannel *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannel_clone")] public static extern long AcceptChannel_clone(long _orig); + // uint64_t AcceptChannel_hash(const struct LDKAcceptChannel *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannel_hash")] public static extern long AcceptChannel_hash(long _o); // bool AcceptChannel_eq(const struct LDKAcceptChannel *NONNULL_PTR a, const struct LDKAcceptChannel *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannel_eq")] public static extern bool AcceptChannel_eq(long _a, long _b); // void AcceptChannelV2_free(struct LDKAcceptChannelV2 this_obj); @@ -7180,6 +7830,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_clone_ptr")] public static extern long AcceptChannelV2_clone_ptr(long _arg); // struct LDKAcceptChannelV2 AcceptChannelV2_clone(const struct LDKAcceptChannelV2 *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_clone")] public static extern long AcceptChannelV2_clone(long _orig); + // uint64_t AcceptChannelV2_hash(const struct LDKAcceptChannelV2 *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_hash")] public static extern long AcceptChannelV2_hash(long _o); // bool AcceptChannelV2_eq(const struct LDKAcceptChannelV2 *NONNULL_PTR a, const struct LDKAcceptChannelV2 *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_eq")] public static extern bool AcceptChannelV2_eq(long _a, long _b); // void FundingCreated_free(struct LDKFundingCreated this_obj); @@ -7206,6 +7858,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingCreated_clone_ptr")] public static extern long FundingCreated_clone_ptr(long _arg); // struct LDKFundingCreated FundingCreated_clone(const struct LDKFundingCreated *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingCreated_clone")] public static extern long FundingCreated_clone(long _orig); + // uint64_t FundingCreated_hash(const struct LDKFundingCreated *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingCreated_hash")] public static extern long FundingCreated_hash(long _o); // bool FundingCreated_eq(const struct LDKFundingCreated *NONNULL_PTR a, const struct LDKFundingCreated *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingCreated_eq")] public static extern bool FundingCreated_eq(long _a, long _b); // void FundingSigned_free(struct LDKFundingSigned this_obj); @@ -7224,6 +7878,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingSigned_clone_ptr")] public static extern long FundingSigned_clone_ptr(long _arg); // struct LDKFundingSigned FundingSigned_clone(const struct LDKFundingSigned *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingSigned_clone")] public static extern long FundingSigned_clone(long _orig); + // uint64_t FundingSigned_hash(const struct LDKFundingSigned *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingSigned_hash")] public static extern long FundingSigned_hash(long _o); // bool FundingSigned_eq(const struct LDKFundingSigned *NONNULL_PTR a, const struct LDKFundingSigned *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FundingSigned_eq")] public static extern bool FundingSigned_eq(long _a, long _b); // void ChannelReady_free(struct LDKChannelReady this_obj); @@ -7246,8 +7902,102 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReady_clone_ptr")] public static extern long ChannelReady_clone_ptr(long _arg); // struct LDKChannelReady ChannelReady_clone(const struct LDKChannelReady *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReady_clone")] public static extern long ChannelReady_clone(long _orig); + // uint64_t ChannelReady_hash(const struct LDKChannelReady *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReady_hash")] public static extern long ChannelReady_hash(long _o); // bool ChannelReady_eq(const struct LDKChannelReady *NONNULL_PTR a, const struct LDKChannelReady *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReady_eq")] public static extern bool ChannelReady_eq(long _a, long _b); + // void Stfu_free(struct LDKStfu this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_free")] public static extern void Stfu_free(long _this_obj); + // const uint8_t (*Stfu_get_channel_id(const struct LDKStfu *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_get_channel_id")] public static extern long Stfu_get_channel_id(long _this_ptr); + // void Stfu_set_channel_id(struct LDKStfu *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_set_channel_id")] public static extern void Stfu_set_channel_id(long _this_ptr, long _val); + // uint8_t Stfu_get_initiator(const struct LDKStfu *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_get_initiator")] public static extern byte Stfu_get_initiator(long _this_ptr); + // void Stfu_set_initiator(struct LDKStfu *NONNULL_PTR this_ptr, uint8_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_set_initiator")] public static extern void Stfu_set_initiator(long _this_ptr, byte _val); + // MUST_USE_RES struct LDKStfu Stfu_new(struct LDKThirtyTwoBytes channel_id_arg, uint8_t initiator_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_new")] public static extern long Stfu_new(long _channel_id_arg, byte _initiator_arg); + // uint64_t Stfu_clone_ptr(LDKStfu *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_clone_ptr")] public static extern long Stfu_clone_ptr(long _arg); + // struct LDKStfu Stfu_clone(const struct LDKStfu *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_clone")] public static extern long Stfu_clone(long _orig); + // bool Stfu_eq(const struct LDKStfu *NONNULL_PTR a, const struct LDKStfu *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_eq")] public static extern bool Stfu_eq(long _a, long _b); + // void Splice_free(struct LDKSplice this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_free")] public static extern void Splice_free(long _this_obj); + // const uint8_t (*Splice_get_channel_id(const struct LDKSplice *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_channel_id")] public static extern long Splice_get_channel_id(long _this_ptr); + // void Splice_set_channel_id(struct LDKSplice *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_channel_id")] public static extern void Splice_set_channel_id(long _this_ptr, long _val); + // const uint8_t (*Splice_get_chain_hash(const struct LDKSplice *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_chain_hash")] public static extern long Splice_get_chain_hash(long _this_ptr); + // void Splice_set_chain_hash(struct LDKSplice *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_chain_hash")] public static extern void Splice_set_chain_hash(long _this_ptr, long _val); + // int64_t Splice_get_relative_satoshis(const struct LDKSplice *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_relative_satoshis")] public static extern long Splice_get_relative_satoshis(long _this_ptr); + // void Splice_set_relative_satoshis(struct LDKSplice *NONNULL_PTR this_ptr, int64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_relative_satoshis")] public static extern void Splice_set_relative_satoshis(long _this_ptr, long _val); + // uint32_t Splice_get_funding_feerate_perkw(const struct LDKSplice *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_funding_feerate_perkw")] public static extern int Splice_get_funding_feerate_perkw(long _this_ptr); + // void Splice_set_funding_feerate_perkw(struct LDKSplice *NONNULL_PTR this_ptr, uint32_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_funding_feerate_perkw")] public static extern void Splice_set_funding_feerate_perkw(long _this_ptr, int _val); + // uint32_t Splice_get_locktime(const struct LDKSplice *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_locktime")] public static extern int Splice_get_locktime(long _this_ptr); + // void Splice_set_locktime(struct LDKSplice *NONNULL_PTR this_ptr, uint32_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_locktime")] public static extern void Splice_set_locktime(long _this_ptr, int _val); + // struct LDKPublicKey Splice_get_funding_pubkey(const struct LDKSplice *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_get_funding_pubkey")] public static extern long Splice_get_funding_pubkey(long _this_ptr); + // void Splice_set_funding_pubkey(struct LDKSplice *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_set_funding_pubkey")] public static extern void Splice_set_funding_pubkey(long _this_ptr, long _val); + // MUST_USE_RES struct LDKSplice Splice_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKThirtyTwoBytes chain_hash_arg, int64_t relative_satoshis_arg, uint32_t funding_feerate_perkw_arg, uint32_t locktime_arg, struct LDKPublicKey funding_pubkey_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_new")] public static extern long Splice_new(long _channel_id_arg, long _chain_hash_arg, long _relative_satoshis_arg, int _funding_feerate_perkw_arg, int _locktime_arg, long _funding_pubkey_arg); + // uint64_t Splice_clone_ptr(LDKSplice *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_clone_ptr")] public static extern long Splice_clone_ptr(long _arg); + // struct LDKSplice Splice_clone(const struct LDKSplice *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_clone")] public static extern long Splice_clone(long _orig); + // bool Splice_eq(const struct LDKSplice *NONNULL_PTR a, const struct LDKSplice *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_eq")] public static extern bool Splice_eq(long _a, long _b); + // void SpliceAck_free(struct LDKSpliceAck this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_free")] public static extern void SpliceAck_free(long _this_obj); + // const uint8_t (*SpliceAck_get_channel_id(const struct LDKSpliceAck *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_get_channel_id")] public static extern long SpliceAck_get_channel_id(long _this_ptr); + // void SpliceAck_set_channel_id(struct LDKSpliceAck *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_set_channel_id")] public static extern void SpliceAck_set_channel_id(long _this_ptr, long _val); + // const uint8_t (*SpliceAck_get_chain_hash(const struct LDKSpliceAck *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_get_chain_hash")] public static extern long SpliceAck_get_chain_hash(long _this_ptr); + // void SpliceAck_set_chain_hash(struct LDKSpliceAck *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_set_chain_hash")] public static extern void SpliceAck_set_chain_hash(long _this_ptr, long _val); + // int64_t SpliceAck_get_relative_satoshis(const struct LDKSpliceAck *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_get_relative_satoshis")] public static extern long SpliceAck_get_relative_satoshis(long _this_ptr); + // void SpliceAck_set_relative_satoshis(struct LDKSpliceAck *NONNULL_PTR this_ptr, int64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_set_relative_satoshis")] public static extern void SpliceAck_set_relative_satoshis(long _this_ptr, long _val); + // struct LDKPublicKey SpliceAck_get_funding_pubkey(const struct LDKSpliceAck *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_get_funding_pubkey")] public static extern long SpliceAck_get_funding_pubkey(long _this_ptr); + // void SpliceAck_set_funding_pubkey(struct LDKSpliceAck *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_set_funding_pubkey")] public static extern void SpliceAck_set_funding_pubkey(long _this_ptr, long _val); + // MUST_USE_RES struct LDKSpliceAck SpliceAck_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKThirtyTwoBytes chain_hash_arg, int64_t relative_satoshis_arg, struct LDKPublicKey funding_pubkey_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_new")] public static extern long SpliceAck_new(long _channel_id_arg, long _chain_hash_arg, long _relative_satoshis_arg, long _funding_pubkey_arg); + // uint64_t SpliceAck_clone_ptr(LDKSpliceAck *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_clone_ptr")] public static extern long SpliceAck_clone_ptr(long _arg); + // struct LDKSpliceAck SpliceAck_clone(const struct LDKSpliceAck *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_clone")] public static extern long SpliceAck_clone(long _orig); + // bool SpliceAck_eq(const struct LDKSpliceAck *NONNULL_PTR a, const struct LDKSpliceAck *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_eq")] public static extern bool SpliceAck_eq(long _a, long _b); + // void SpliceLocked_free(struct LDKSpliceLocked this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_free")] public static extern void SpliceLocked_free(long _this_obj); + // const uint8_t (*SpliceLocked_get_channel_id(const struct LDKSpliceLocked *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_get_channel_id")] public static extern long SpliceLocked_get_channel_id(long _this_ptr); + // void SpliceLocked_set_channel_id(struct LDKSpliceLocked *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_set_channel_id")] public static extern void SpliceLocked_set_channel_id(long _this_ptr, long _val); + // MUST_USE_RES struct LDKSpliceLocked SpliceLocked_new(struct LDKThirtyTwoBytes channel_id_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_new")] public static extern long SpliceLocked_new(long _channel_id_arg); + // uint64_t SpliceLocked_clone_ptr(LDKSpliceLocked *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_clone_ptr")] public static extern long SpliceLocked_clone_ptr(long _arg); + // struct LDKSpliceLocked SpliceLocked_clone(const struct LDKSpliceLocked *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_clone")] public static extern long SpliceLocked_clone(long _orig); + // bool SpliceLocked_eq(const struct LDKSpliceLocked *NONNULL_PTR a, const struct LDKSpliceLocked *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_eq")] public static extern bool SpliceLocked_eq(long _a, long _b); // void TxAddInput_free(struct LDKTxAddInput this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_free")] public static extern void TxAddInput_free(long _this_obj); // const uint8_t (*TxAddInput_get_channel_id(const struct LDKTxAddInput *NONNULL_PTR this_ptr))[32]; @@ -7276,6 +8026,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_clone_ptr")] public static extern long TxAddInput_clone_ptr(long _arg); // struct LDKTxAddInput TxAddInput_clone(const struct LDKTxAddInput *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_clone")] public static extern long TxAddInput_clone(long _orig); + // uint64_t TxAddInput_hash(const struct LDKTxAddInput *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_hash")] public static extern long TxAddInput_hash(long _o); // bool TxAddInput_eq(const struct LDKTxAddInput *NONNULL_PTR a, const struct LDKTxAddInput *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_eq")] public static extern bool TxAddInput_eq(long _a, long _b); // void TxAddOutput_free(struct LDKTxAddOutput this_obj); @@ -7292,7 +8044,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_get_sats")] public static extern long TxAddOutput_get_sats(long _this_ptr); // void TxAddOutput_set_sats(struct LDKTxAddOutput *NONNULL_PTR this_ptr, uint64_t val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_set_sats")] public static extern void TxAddOutput_set_sats(long _this_ptr, long _val); - // struct LDKu8slice TxAddOutput_get_script(const struct LDKTxAddOutput *NONNULL_PTR this_ptr); + // struct LDKCVec_u8Z TxAddOutput_get_script(const struct LDKTxAddOutput *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_get_script")] public static extern long TxAddOutput_get_script(long _this_ptr); // void TxAddOutput_set_script(struct LDKTxAddOutput *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_set_script")] public static extern void TxAddOutput_set_script(long _this_ptr, long _val); @@ -7302,6 +8054,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_clone_ptr")] public static extern long TxAddOutput_clone_ptr(long _arg); // struct LDKTxAddOutput TxAddOutput_clone(const struct LDKTxAddOutput *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_clone")] public static extern long TxAddOutput_clone(long _orig); + // uint64_t TxAddOutput_hash(const struct LDKTxAddOutput *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_hash")] public static extern long TxAddOutput_hash(long _o); // bool TxAddOutput_eq(const struct LDKTxAddOutput *NONNULL_PTR a, const struct LDKTxAddOutput *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddOutput_eq")] public static extern bool TxAddOutput_eq(long _a, long _b); // void TxRemoveInput_free(struct LDKTxRemoveInput this_obj); @@ -7320,6 +8074,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveInput_clone_ptr")] public static extern long TxRemoveInput_clone_ptr(long _arg); // struct LDKTxRemoveInput TxRemoveInput_clone(const struct LDKTxRemoveInput *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveInput_clone")] public static extern long TxRemoveInput_clone(long _orig); + // uint64_t TxRemoveInput_hash(const struct LDKTxRemoveInput *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveInput_hash")] public static extern long TxRemoveInput_hash(long _o); // bool TxRemoveInput_eq(const struct LDKTxRemoveInput *NONNULL_PTR a, const struct LDKTxRemoveInput *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveInput_eq")] public static extern bool TxRemoveInput_eq(long _a, long _b); // void TxRemoveOutput_free(struct LDKTxRemoveOutput this_obj); @@ -7338,6 +8094,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveOutput_clone_ptr")] public static extern long TxRemoveOutput_clone_ptr(long _arg); // struct LDKTxRemoveOutput TxRemoveOutput_clone(const struct LDKTxRemoveOutput *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveOutput_clone")] public static extern long TxRemoveOutput_clone(long _orig); + // uint64_t TxRemoveOutput_hash(const struct LDKTxRemoveOutput *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveOutput_hash")] public static extern long TxRemoveOutput_hash(long _o); // bool TxRemoveOutput_eq(const struct LDKTxRemoveOutput *NONNULL_PTR a, const struct LDKTxRemoveOutput *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxRemoveOutput_eq")] public static extern bool TxRemoveOutput_eq(long _a, long _b); // void TxComplete_free(struct LDKTxComplete this_obj); @@ -7352,6 +8110,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxComplete_clone_ptr")] public static extern long TxComplete_clone_ptr(long _arg); // struct LDKTxComplete TxComplete_clone(const struct LDKTxComplete *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxComplete_clone")] public static extern long TxComplete_clone(long _orig); + // uint64_t TxComplete_hash(const struct LDKTxComplete *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxComplete_hash")] public static extern long TxComplete_hash(long _o); // bool TxComplete_eq(const struct LDKTxComplete *NONNULL_PTR a, const struct LDKTxComplete *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxComplete_eq")] public static extern bool TxComplete_eq(long _a, long _b); // void TxSignatures_free(struct LDKTxSignatures this_obj); @@ -7374,6 +8134,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxSignatures_clone_ptr")] public static extern long TxSignatures_clone_ptr(long _arg); // struct LDKTxSignatures TxSignatures_clone(const struct LDKTxSignatures *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxSignatures_clone")] public static extern long TxSignatures_clone(long _orig); + // uint64_t TxSignatures_hash(const struct LDKTxSignatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxSignatures_hash")] public static extern long TxSignatures_hash(long _o); // bool TxSignatures_eq(const struct LDKTxSignatures *NONNULL_PTR a, const struct LDKTxSignatures *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxSignatures_eq")] public static extern bool TxSignatures_eq(long _a, long _b); // void TxInitRbf_free(struct LDKTxInitRbf this_obj); @@ -7400,6 +8162,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxInitRbf_clone_ptr")] public static extern long TxInitRbf_clone_ptr(long _arg); // struct LDKTxInitRbf TxInitRbf_clone(const struct LDKTxInitRbf *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxInitRbf_clone")] public static extern long TxInitRbf_clone(long _orig); + // uint64_t TxInitRbf_hash(const struct LDKTxInitRbf *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxInitRbf_hash")] public static extern long TxInitRbf_hash(long _o); // bool TxInitRbf_eq(const struct LDKTxInitRbf *NONNULL_PTR a, const struct LDKTxInitRbf *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxInitRbf_eq")] public static extern bool TxInitRbf_eq(long _a, long _b); // void TxAckRbf_free(struct LDKTxAckRbf this_obj); @@ -7418,6 +8182,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAckRbf_clone_ptr")] public static extern long TxAckRbf_clone_ptr(long _arg); // struct LDKTxAckRbf TxAckRbf_clone(const struct LDKTxAckRbf *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAckRbf_clone")] public static extern long TxAckRbf_clone(long _orig); + // uint64_t TxAckRbf_hash(const struct LDKTxAckRbf *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAckRbf_hash")] public static extern long TxAckRbf_hash(long _o); // bool TxAckRbf_eq(const struct LDKTxAckRbf *NONNULL_PTR a, const struct LDKTxAckRbf *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAckRbf_eq")] public static extern bool TxAckRbf_eq(long _a, long _b); // void TxAbort_free(struct LDKTxAbort this_obj); @@ -7436,6 +8202,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAbort_clone_ptr")] public static extern long TxAbort_clone_ptr(long _arg); // struct LDKTxAbort TxAbort_clone(const struct LDKTxAbort *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAbort_clone")] public static extern long TxAbort_clone(long _orig); + // uint64_t TxAbort_hash(const struct LDKTxAbort *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAbort_hash")] public static extern long TxAbort_hash(long _o); // bool TxAbort_eq(const struct LDKTxAbort *NONNULL_PTR a, const struct LDKTxAbort *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAbort_eq")] public static extern bool TxAbort_eq(long _a, long _b); // void Shutdown_free(struct LDKShutdown this_obj); @@ -7444,7 +8212,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_get_channel_id")] public static extern long Shutdown_get_channel_id(long _this_ptr); // void Shutdown_set_channel_id(struct LDKShutdown *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_set_channel_id")] public static extern void Shutdown_set_channel_id(long _this_ptr, long _val); - // struct LDKu8slice Shutdown_get_scriptpubkey(const struct LDKShutdown *NONNULL_PTR this_ptr); + // struct LDKCVec_u8Z Shutdown_get_scriptpubkey(const struct LDKShutdown *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_get_scriptpubkey")] public static extern long Shutdown_get_scriptpubkey(long _this_ptr); // void Shutdown_set_scriptpubkey(struct LDKShutdown *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_set_scriptpubkey")] public static extern void Shutdown_set_scriptpubkey(long _this_ptr, long _val); @@ -7454,6 +8222,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_clone_ptr")] public static extern long Shutdown_clone_ptr(long _arg); // struct LDKShutdown Shutdown_clone(const struct LDKShutdown *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_clone")] public static extern long Shutdown_clone(long _orig); + // uint64_t Shutdown_hash(const struct LDKShutdown *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_hash")] public static extern long Shutdown_hash(long _o); // bool Shutdown_eq(const struct LDKShutdown *NONNULL_PTR a, const struct LDKShutdown *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Shutdown_eq")] public static extern bool Shutdown_eq(long _a, long _b); // void ClosingSignedFeeRange_free(struct LDKClosingSignedFeeRange this_obj); @@ -7472,6 +8242,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSignedFeeRange_clone_ptr")] public static extern long ClosingSignedFeeRange_clone_ptr(long _arg); // struct LDKClosingSignedFeeRange ClosingSignedFeeRange_clone(const struct LDKClosingSignedFeeRange *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSignedFeeRange_clone")] public static extern long ClosingSignedFeeRange_clone(long _orig); + // uint64_t ClosingSignedFeeRange_hash(const struct LDKClosingSignedFeeRange *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSignedFeeRange_hash")] public static extern long ClosingSignedFeeRange_hash(long _o); // bool ClosingSignedFeeRange_eq(const struct LDKClosingSignedFeeRange *NONNULL_PTR a, const struct LDKClosingSignedFeeRange *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSignedFeeRange_eq")] public static extern bool ClosingSignedFeeRange_eq(long _a, long _b); // void ClosingSigned_free(struct LDKClosingSigned this_obj); @@ -7498,6 +8270,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSigned_clone_ptr")] public static extern long ClosingSigned_clone_ptr(long _arg); // struct LDKClosingSigned ClosingSigned_clone(const struct LDKClosingSigned *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSigned_clone")] public static extern long ClosingSigned_clone(long _orig); + // uint64_t ClosingSigned_hash(const struct LDKClosingSigned *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSigned_hash")] public static extern long ClosingSigned_hash(long _o); // bool ClosingSigned_eq(const struct LDKClosingSigned *NONNULL_PTR a, const struct LDKClosingSigned *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClosingSigned_eq")] public static extern bool ClosingSigned_eq(long _a, long _b); // void UpdateAddHTLC_free(struct LDKUpdateAddHTLC this_obj); @@ -7526,10 +8300,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_get_skimmed_fee_msat")] public static extern long UpdateAddHTLC_get_skimmed_fee_msat(long _this_ptr); // void UpdateAddHTLC_set_skimmed_fee_msat(struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr, struct LDKCOption_u64Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_set_skimmed_fee_msat")] public static extern void UpdateAddHTLC_set_skimmed_fee_msat(long _this_ptr, long _val); + // struct LDKOnionPacket UpdateAddHTLC_get_onion_routing_packet(const struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_get_onion_routing_packet")] public static extern long UpdateAddHTLC_get_onion_routing_packet(long _this_ptr); + // void UpdateAddHTLC_set_onion_routing_packet(struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr, struct LDKOnionPacket val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_set_onion_routing_packet")] public static extern void UpdateAddHTLC_set_onion_routing_packet(long _this_ptr, long _val); + // struct LDKPublicKey UpdateAddHTLC_get_blinding_point(const struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_get_blinding_point")] public static extern long UpdateAddHTLC_get_blinding_point(long _this_ptr); + // void UpdateAddHTLC_set_blinding_point(struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr, struct LDKPublicKey val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_set_blinding_point")] public static extern void UpdateAddHTLC_set_blinding_point(long _this_ptr, long _val); + // MUST_USE_RES struct LDKUpdateAddHTLC UpdateAddHTLC_new(struct LDKThirtyTwoBytes channel_id_arg, uint64_t htlc_id_arg, uint64_t amount_msat_arg, struct LDKThirtyTwoBytes payment_hash_arg, uint32_t cltv_expiry_arg, struct LDKCOption_u64Z skimmed_fee_msat_arg, struct LDKOnionPacket onion_routing_packet_arg, struct LDKPublicKey blinding_point_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_new")] public static extern long UpdateAddHTLC_new(long _channel_id_arg, long _htlc_id_arg, long _amount_msat_arg, long _payment_hash_arg, int _cltv_expiry_arg, long _skimmed_fee_msat_arg, long _onion_routing_packet_arg, long _blinding_point_arg); // uint64_t UpdateAddHTLC_clone_ptr(LDKUpdateAddHTLC *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_clone_ptr")] public static extern long UpdateAddHTLC_clone_ptr(long _arg); // struct LDKUpdateAddHTLC UpdateAddHTLC_clone(const struct LDKUpdateAddHTLC *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_clone")] public static extern long UpdateAddHTLC_clone(long _orig); + // uint64_t UpdateAddHTLC_hash(const struct LDKUpdateAddHTLC *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_hash")] public static extern long UpdateAddHTLC_hash(long _o); // bool UpdateAddHTLC_eq(const struct LDKUpdateAddHTLC *NONNULL_PTR a, const struct LDKUpdateAddHTLC *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_eq")] public static extern bool UpdateAddHTLC_eq(long _a, long _b); // void OnionMessage_free(struct LDKOnionMessage this_obj); @@ -7548,6 +8334,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_clone_ptr")] public static extern long OnionMessage_clone_ptr(long _arg); // struct LDKOnionMessage OnionMessage_clone(const struct LDKOnionMessage *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_clone")] public static extern long OnionMessage_clone(long _orig); + // uint64_t OnionMessage_hash(const struct LDKOnionMessage *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_hash")] public static extern long OnionMessage_hash(long _o); // bool OnionMessage_eq(const struct LDKOnionMessage *NONNULL_PTR a, const struct LDKOnionMessage *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_eq")] public static extern bool OnionMessage_eq(long _a, long _b); // void UpdateFulfillHTLC_free(struct LDKUpdateFulfillHTLC this_obj); @@ -7570,6 +8358,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_clone_ptr")] public static extern long UpdateFulfillHTLC_clone_ptr(long _arg); // struct LDKUpdateFulfillHTLC UpdateFulfillHTLC_clone(const struct LDKUpdateFulfillHTLC *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_clone")] public static extern long UpdateFulfillHTLC_clone(long _orig); + // uint64_t UpdateFulfillHTLC_hash(const struct LDKUpdateFulfillHTLC *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_hash")] public static extern long UpdateFulfillHTLC_hash(long _o); // bool UpdateFulfillHTLC_eq(const struct LDKUpdateFulfillHTLC *NONNULL_PTR a, const struct LDKUpdateFulfillHTLC *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_eq")] public static extern bool UpdateFulfillHTLC_eq(long _a, long _b); // void UpdateFailHTLC_free(struct LDKUpdateFailHTLC this_obj); @@ -7586,6 +8376,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailHTLC_clone_ptr")] public static extern long UpdateFailHTLC_clone_ptr(long _arg); // struct LDKUpdateFailHTLC UpdateFailHTLC_clone(const struct LDKUpdateFailHTLC *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailHTLC_clone")] public static extern long UpdateFailHTLC_clone(long _orig); + // uint64_t UpdateFailHTLC_hash(const struct LDKUpdateFailHTLC *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailHTLC_hash")] public static extern long UpdateFailHTLC_hash(long _o); // bool UpdateFailHTLC_eq(const struct LDKUpdateFailHTLC *NONNULL_PTR a, const struct LDKUpdateFailHTLC *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailHTLC_eq")] public static extern bool UpdateFailHTLC_eq(long _a, long _b); // void UpdateFailMalformedHTLC_free(struct LDKUpdateFailMalformedHTLC this_obj); @@ -7606,6 +8398,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailMalformedHTLC_clone_ptr")] public static extern long UpdateFailMalformedHTLC_clone_ptr(long _arg); // struct LDKUpdateFailMalformedHTLC UpdateFailMalformedHTLC_clone(const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailMalformedHTLC_clone")] public static extern long UpdateFailMalformedHTLC_clone(long _orig); + // uint64_t UpdateFailMalformedHTLC_hash(const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailMalformedHTLC_hash")] public static extern long UpdateFailMalformedHTLC_hash(long _o); // bool UpdateFailMalformedHTLC_eq(const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR a, const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFailMalformedHTLC_eq")] public static extern bool UpdateFailMalformedHTLC_eq(long _a, long _b); // void CommitmentSigned_free(struct LDKCommitmentSigned this_obj); @@ -7628,6 +8422,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentSigned_clone_ptr")] public static extern long CommitmentSigned_clone_ptr(long _arg); // struct LDKCommitmentSigned CommitmentSigned_clone(const struct LDKCommitmentSigned *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentSigned_clone")] public static extern long CommitmentSigned_clone(long _orig); + // uint64_t CommitmentSigned_hash(const struct LDKCommitmentSigned *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentSigned_hash")] public static extern long CommitmentSigned_hash(long _o); // bool CommitmentSigned_eq(const struct LDKCommitmentSigned *NONNULL_PTR a, const struct LDKCommitmentSigned *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentSigned_eq")] public static extern bool CommitmentSigned_eq(long _a, long _b); // void RevokeAndACK_free(struct LDKRevokeAndACK this_obj); @@ -7650,6 +8446,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevokeAndACK_clone_ptr")] public static extern long RevokeAndACK_clone_ptr(long _arg); // struct LDKRevokeAndACK RevokeAndACK_clone(const struct LDKRevokeAndACK *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevokeAndACK_clone")] public static extern long RevokeAndACK_clone(long _orig); + // uint64_t RevokeAndACK_hash(const struct LDKRevokeAndACK *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevokeAndACK_hash")] public static extern long RevokeAndACK_hash(long _o); // bool RevokeAndACK_eq(const struct LDKRevokeAndACK *NONNULL_PTR a, const struct LDKRevokeAndACK *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RevokeAndACK_eq")] public static extern bool RevokeAndACK_eq(long _a, long _b); // void UpdateFee_free(struct LDKUpdateFee this_obj); @@ -7668,6 +8466,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFee_clone_ptr")] public static extern long UpdateFee_clone_ptr(long _arg); // struct LDKUpdateFee UpdateFee_clone(const struct LDKUpdateFee *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFee_clone")] public static extern long UpdateFee_clone(long _orig); + // uint64_t UpdateFee_hash(const struct LDKUpdateFee *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFee_hash")] public static extern long UpdateFee_hash(long _o); // bool UpdateFee_eq(const struct LDKUpdateFee *NONNULL_PTR a, const struct LDKUpdateFee *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFee_eq")] public static extern bool UpdateFee_eq(long _a, long _b); // void ChannelReestablish_free(struct LDKChannelReestablish this_obj); @@ -7702,6 +8502,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReestablish_clone_ptr")] public static extern long ChannelReestablish_clone_ptr(long _arg); // struct LDKChannelReestablish ChannelReestablish_clone(const struct LDKChannelReestablish *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReestablish_clone")] public static extern long ChannelReestablish_clone(long _orig); + // uint64_t ChannelReestablish_hash(const struct LDKChannelReestablish *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReestablish_hash")] public static extern long ChannelReestablish_hash(long _o); // bool ChannelReestablish_eq(const struct LDKChannelReestablish *NONNULL_PTR a, const struct LDKChannelReestablish *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelReestablish_eq")] public static extern bool ChannelReestablish_eq(long _a, long _b); // void AnnouncementSignatures_free(struct LDKAnnouncementSignatures this_obj); @@ -7728,6 +8530,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AnnouncementSignatures_clone_ptr")] public static extern long AnnouncementSignatures_clone_ptr(long _arg); // struct LDKAnnouncementSignatures AnnouncementSignatures_clone(const struct LDKAnnouncementSignatures *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AnnouncementSignatures_clone")] public static extern long AnnouncementSignatures_clone(long _orig); + // uint64_t AnnouncementSignatures_hash(const struct LDKAnnouncementSignatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AnnouncementSignatures_hash")] public static extern long AnnouncementSignatures_hash(long _o); // bool AnnouncementSignatures_eq(const struct LDKAnnouncementSignatures *NONNULL_PTR a, const struct LDKAnnouncementSignatures *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AnnouncementSignatures_eq")] public static extern bool AnnouncementSignatures_eq(long _a, long _b); // void SocketAddress_free(struct LDKSocketAddress this_ptr); @@ -7746,6 +8550,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddress_onion_v3")] public static extern long SocketAddress_onion_v3(long _ed25519_pubkey, short _checksum, byte _version, short _port); // struct LDKSocketAddress SocketAddress_hostname(struct LDKHostname hostname, uint16_t port); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddress_hostname")] public static extern long SocketAddress_hostname(long _hostname, short _port); + // uint64_t SocketAddress_hash(const struct LDKSocketAddress *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddress_hash")] public static extern long SocketAddress_hash(long _o); // bool SocketAddress_eq(const struct LDKSocketAddress *NONNULL_PTR a, const struct LDKSocketAddress *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddress_eq")] public static extern bool SocketAddress_eq(long _a, long _b); // struct LDKCVec_u8Z SocketAddress_write(const struct LDKSocketAddress *NONNULL_PTR obj); @@ -7762,6 +8568,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddressParseError_invalid_port")] public static extern SocketAddressParseError SocketAddressParseError_invalid_port(); // enum LDKSocketAddressParseError SocketAddressParseError_invalid_onion_v3(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddressParseError_invalid_onion_v3")] public static extern SocketAddressParseError SocketAddressParseError_invalid_onion_v3(); + // uint64_t SocketAddressParseError_hash(const enum LDKSocketAddressParseError *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddressParseError_hash")] public static extern long SocketAddressParseError_hash(long _o); // bool SocketAddressParseError_eq(const enum LDKSocketAddressParseError *NONNULL_PTR a, const enum LDKSocketAddressParseError *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SocketAddressParseError_eq")] public static extern bool SocketAddressParseError_eq(long _a, long _b); // struct LDKCResult_SocketAddressSocketAddressParseErrorZ parse_onion_address(struct LDKStr host, uint16_t port); @@ -7814,6 +8622,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedNodeAnnouncement_clone_ptr")] public static extern long UnsignedNodeAnnouncement_clone_ptr(long _arg); // struct LDKUnsignedNodeAnnouncement UnsignedNodeAnnouncement_clone(const struct LDKUnsignedNodeAnnouncement *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedNodeAnnouncement_clone")] public static extern long UnsignedNodeAnnouncement_clone(long _orig); + // uint64_t UnsignedNodeAnnouncement_hash(const struct LDKUnsignedNodeAnnouncement *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedNodeAnnouncement_hash")] public static extern long UnsignedNodeAnnouncement_hash(long _o); // bool UnsignedNodeAnnouncement_eq(const struct LDKUnsignedNodeAnnouncement *NONNULL_PTR a, const struct LDKUnsignedNodeAnnouncement *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedNodeAnnouncement_eq")] public static extern bool UnsignedNodeAnnouncement_eq(long _a, long _b); // void NodeAnnouncement_free(struct LDKNodeAnnouncement this_obj); @@ -7832,6 +8642,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAnnouncement_clone_ptr")] public static extern long NodeAnnouncement_clone_ptr(long _arg); // struct LDKNodeAnnouncement NodeAnnouncement_clone(const struct LDKNodeAnnouncement *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAnnouncement_clone")] public static extern long NodeAnnouncement_clone(long _orig); + // uint64_t NodeAnnouncement_hash(const struct LDKNodeAnnouncement *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAnnouncement_hash")] public static extern long NodeAnnouncement_hash(long _o); // bool NodeAnnouncement_eq(const struct LDKNodeAnnouncement *NONNULL_PTR a, const struct LDKNodeAnnouncement *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAnnouncement_eq")] public static extern bool NodeAnnouncement_eq(long _a, long _b); // void UnsignedChannelAnnouncement_free(struct LDKUnsignedChannelAnnouncement this_obj); @@ -7874,6 +8686,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelAnnouncement_clone_ptr")] public static extern long UnsignedChannelAnnouncement_clone_ptr(long _arg); // struct LDKUnsignedChannelAnnouncement UnsignedChannelAnnouncement_clone(const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelAnnouncement_clone")] public static extern long UnsignedChannelAnnouncement_clone(long _orig); + // uint64_t UnsignedChannelAnnouncement_hash(const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelAnnouncement_hash")] public static extern long UnsignedChannelAnnouncement_hash(long _o); // bool UnsignedChannelAnnouncement_eq(const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR a, const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelAnnouncement_eq")] public static extern bool UnsignedChannelAnnouncement_eq(long _a, long _b); // void ChannelAnnouncement_free(struct LDKChannelAnnouncement this_obj); @@ -7904,6 +8718,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelAnnouncement_clone_ptr")] public static extern long ChannelAnnouncement_clone_ptr(long _arg); // struct LDKChannelAnnouncement ChannelAnnouncement_clone(const struct LDKChannelAnnouncement *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelAnnouncement_clone")] public static extern long ChannelAnnouncement_clone(long _orig); + // uint64_t ChannelAnnouncement_hash(const struct LDKChannelAnnouncement *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelAnnouncement_hash")] public static extern long ChannelAnnouncement_hash(long _o); // bool ChannelAnnouncement_eq(const struct LDKChannelAnnouncement *NONNULL_PTR a, const struct LDKChannelAnnouncement *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelAnnouncement_eq")] public static extern bool ChannelAnnouncement_eq(long _a, long _b); // void UnsignedChannelUpdate_free(struct LDKUnsignedChannelUpdate this_obj); @@ -7954,6 +8770,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelUpdate_clone_ptr")] public static extern long UnsignedChannelUpdate_clone_ptr(long _arg); // struct LDKUnsignedChannelUpdate UnsignedChannelUpdate_clone(const struct LDKUnsignedChannelUpdate *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelUpdate_clone")] public static extern long UnsignedChannelUpdate_clone(long _orig); + // uint64_t UnsignedChannelUpdate_hash(const struct LDKUnsignedChannelUpdate *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelUpdate_hash")] public static extern long UnsignedChannelUpdate_hash(long _o); // bool UnsignedChannelUpdate_eq(const struct LDKUnsignedChannelUpdate *NONNULL_PTR a, const struct LDKUnsignedChannelUpdate *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UnsignedChannelUpdate_eq")] public static extern bool UnsignedChannelUpdate_eq(long _a, long _b); // void ChannelUpdate_free(struct LDKChannelUpdate this_obj); @@ -7972,6 +8790,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelUpdate_clone_ptr")] public static extern long ChannelUpdate_clone_ptr(long _arg); // struct LDKChannelUpdate ChannelUpdate_clone(const struct LDKChannelUpdate *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelUpdate_clone")] public static extern long ChannelUpdate_clone(long _orig); + // uint64_t ChannelUpdate_hash(const struct LDKChannelUpdate *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelUpdate_hash")] public static extern long ChannelUpdate_hash(long _o); // bool ChannelUpdate_eq(const struct LDKChannelUpdate *NONNULL_PTR a, const struct LDKChannelUpdate *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelUpdate_eq")] public static extern bool ChannelUpdate_eq(long _a, long _b); // void QueryChannelRange_free(struct LDKQueryChannelRange this_obj); @@ -7994,6 +8814,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryChannelRange_clone_ptr")] public static extern long QueryChannelRange_clone_ptr(long _arg); // struct LDKQueryChannelRange QueryChannelRange_clone(const struct LDKQueryChannelRange *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryChannelRange_clone")] public static extern long QueryChannelRange_clone(long _orig); + // uint64_t QueryChannelRange_hash(const struct LDKQueryChannelRange *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryChannelRange_hash")] public static extern long QueryChannelRange_hash(long _o); // bool QueryChannelRange_eq(const struct LDKQueryChannelRange *NONNULL_PTR a, const struct LDKQueryChannelRange *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryChannelRange_eq")] public static extern bool QueryChannelRange_eq(long _a, long _b); // void ReplyChannelRange_free(struct LDKReplyChannelRange this_obj); @@ -8024,6 +8846,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyChannelRange_clone_ptr")] public static extern long ReplyChannelRange_clone_ptr(long _arg); // struct LDKReplyChannelRange ReplyChannelRange_clone(const struct LDKReplyChannelRange *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyChannelRange_clone")] public static extern long ReplyChannelRange_clone(long _orig); + // uint64_t ReplyChannelRange_hash(const struct LDKReplyChannelRange *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyChannelRange_hash")] public static extern long ReplyChannelRange_hash(long _o); // bool ReplyChannelRange_eq(const struct LDKReplyChannelRange *NONNULL_PTR a, const struct LDKReplyChannelRange *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyChannelRange_eq")] public static extern bool ReplyChannelRange_eq(long _a, long _b); // void QueryShortChannelIds_free(struct LDKQueryShortChannelIds this_obj); @@ -8042,6 +8866,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryShortChannelIds_clone_ptr")] public static extern long QueryShortChannelIds_clone_ptr(long _arg); // struct LDKQueryShortChannelIds QueryShortChannelIds_clone(const struct LDKQueryShortChannelIds *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryShortChannelIds_clone")] public static extern long QueryShortChannelIds_clone(long _orig); + // uint64_t QueryShortChannelIds_hash(const struct LDKQueryShortChannelIds *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryShortChannelIds_hash")] public static extern long QueryShortChannelIds_hash(long _o); // bool QueryShortChannelIds_eq(const struct LDKQueryShortChannelIds *NONNULL_PTR a, const struct LDKQueryShortChannelIds *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_QueryShortChannelIds_eq")] public static extern bool QueryShortChannelIds_eq(long _a, long _b); // void ReplyShortChannelIdsEnd_free(struct LDKReplyShortChannelIdsEnd this_obj); @@ -8060,6 +8886,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyShortChannelIdsEnd_clone_ptr")] public static extern long ReplyShortChannelIdsEnd_clone_ptr(long _arg); // struct LDKReplyShortChannelIdsEnd ReplyShortChannelIdsEnd_clone(const struct LDKReplyShortChannelIdsEnd *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyShortChannelIdsEnd_clone")] public static extern long ReplyShortChannelIdsEnd_clone(long _orig); + // uint64_t ReplyShortChannelIdsEnd_hash(const struct LDKReplyShortChannelIdsEnd *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyShortChannelIdsEnd_hash")] public static extern long ReplyShortChannelIdsEnd_hash(long _o); // bool ReplyShortChannelIdsEnd_eq(const struct LDKReplyShortChannelIdsEnd *NONNULL_PTR a, const struct LDKReplyShortChannelIdsEnd *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReplyShortChannelIdsEnd_eq")] public static extern bool ReplyShortChannelIdsEnd_eq(long _a, long _b); // void GossipTimestampFilter_free(struct LDKGossipTimestampFilter this_obj); @@ -8082,6 +8910,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GossipTimestampFilter_clone_ptr")] public static extern long GossipTimestampFilter_clone_ptr(long _arg); // struct LDKGossipTimestampFilter GossipTimestampFilter_clone(const struct LDKGossipTimestampFilter *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GossipTimestampFilter_clone")] public static extern long GossipTimestampFilter_clone(long _orig); + // uint64_t GossipTimestampFilter_hash(const struct LDKGossipTimestampFilter *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GossipTimestampFilter_hash")] public static extern long GossipTimestampFilter_hash(long _o); // bool GossipTimestampFilter_eq(const struct LDKGossipTimestampFilter *NONNULL_PTR a, const struct LDKGossipTimestampFilter *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GossipTimestampFilter_eq")] public static extern bool GossipTimestampFilter_eq(long _a, long _b); // void ErrorAction_free(struct LDKErrorAction this_ptr); @@ -8104,6 +8934,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorAction_send_error_message")] public static extern long ErrorAction_send_error_message(long _msg); // struct LDKErrorAction ErrorAction_send_warning_message(struct LDKWarningMessage msg, enum LDKLevel log_level); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorAction_send_warning_message")] public static extern long ErrorAction_send_warning_message(long _msg, Level _log_level); + // uint64_t ErrorAction_hash(const struct LDKErrorAction *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ErrorAction_hash")] public static extern long ErrorAction_hash(long _o); // void LightningError_free(struct LDKLightningError this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_LightningError_free")] public static extern void LightningError_free(long _this_obj); // struct LDKStr LightningError_get_err(const struct LDKLightningError *NONNULL_PTR this_ptr); @@ -8152,6 +8984,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentUpdate_clone_ptr")] public static extern long CommitmentUpdate_clone_ptr(long _arg); // struct LDKCommitmentUpdate CommitmentUpdate_clone(const struct LDKCommitmentUpdate *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentUpdate_clone")] public static extern long CommitmentUpdate_clone(long _orig); + // uint64_t CommitmentUpdate_hash(const struct LDKCommitmentUpdate *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentUpdate_hash")] public static extern long CommitmentUpdate_hash(long _o); // bool CommitmentUpdate_eq(const struct LDKCommitmentUpdate *NONNULL_PTR a, const struct LDKCommitmentUpdate *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CommitmentUpdate_eq")] public static extern bool CommitmentUpdate_eq(long _a, long _b); // void ChannelMessageHandler_free(struct LDKChannelMessageHandler this_ptr); @@ -8160,6 +8994,44 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RoutingMessageHandler_free")] public static extern void RoutingMessageHandler_free(long _this_ptr); // void OnionMessageHandler_free(struct LDKOnionMessageHandler this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessageHandler_free")] public static extern void OnionMessageHandler_free(long _this_ptr); + // void FinalOnionHopData_free(struct LDKFinalOnionHopData this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_free")] public static extern void FinalOnionHopData_free(long _this_obj); + // const uint8_t (*FinalOnionHopData_get_payment_secret(const struct LDKFinalOnionHopData *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_get_payment_secret")] public static extern long FinalOnionHopData_get_payment_secret(long _this_ptr); + // void FinalOnionHopData_set_payment_secret(struct LDKFinalOnionHopData *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_set_payment_secret")] public static extern void FinalOnionHopData_set_payment_secret(long _this_ptr, long _val); + // uint64_t FinalOnionHopData_get_total_msat(const struct LDKFinalOnionHopData *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_get_total_msat")] public static extern long FinalOnionHopData_get_total_msat(long _this_ptr); + // void FinalOnionHopData_set_total_msat(struct LDKFinalOnionHopData *NONNULL_PTR this_ptr, uint64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_set_total_msat")] public static extern void FinalOnionHopData_set_total_msat(long _this_ptr, long _val); + // MUST_USE_RES struct LDKFinalOnionHopData FinalOnionHopData_new(struct LDKThirtyTwoBytes payment_secret_arg, uint64_t total_msat_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_new")] public static extern long FinalOnionHopData_new(long _payment_secret_arg, long _total_msat_arg); + // uint64_t FinalOnionHopData_clone_ptr(LDKFinalOnionHopData *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_clone_ptr")] public static extern long FinalOnionHopData_clone_ptr(long _arg); + // struct LDKFinalOnionHopData FinalOnionHopData_clone(const struct LDKFinalOnionHopData *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_clone")] public static extern long FinalOnionHopData_clone(long _orig); + // void OnionPacket_free(struct LDKOnionPacket this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_free")] public static extern void OnionPacket_free(long _this_obj); + // uint8_t OnionPacket_get_version(const struct LDKOnionPacket *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_get_version")] public static extern byte OnionPacket_get_version(long _this_ptr); + // void OnionPacket_set_version(struct LDKOnionPacket *NONNULL_PTR this_ptr, uint8_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_set_version")] public static extern void OnionPacket_set_version(long _this_ptr, byte _val); + // struct LDKCResult_PublicKeySecp256k1ErrorZ OnionPacket_get_public_key(const struct LDKOnionPacket *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_get_public_key")] public static extern long OnionPacket_get_public_key(long _this_ptr); + // void OnionPacket_set_public_key(struct LDKOnionPacket *NONNULL_PTR this_ptr, struct LDKCResult_PublicKeySecp256k1ErrorZ val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_set_public_key")] public static extern void OnionPacket_set_public_key(long _this_ptr, long _val); + // const uint8_t (*OnionPacket_get_hmac(const struct LDKOnionPacket *NONNULL_PTR this_ptr))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_get_hmac")] public static extern long OnionPacket_get_hmac(long _this_ptr); + // void OnionPacket_set_hmac(struct LDKOnionPacket *NONNULL_PTR this_ptr, struct LDKThirtyTwoBytes val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_set_hmac")] public static extern void OnionPacket_set_hmac(long _this_ptr, long _val); + // uint64_t OnionPacket_clone_ptr(LDKOnionPacket *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_clone_ptr")] public static extern long OnionPacket_clone_ptr(long _arg); + // struct LDKOnionPacket OnionPacket_clone(const struct LDKOnionPacket *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_clone")] public static extern long OnionPacket_clone(long _orig); + // uint64_t OnionPacket_hash(const struct LDKOnionPacket *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_hash")] public static extern long OnionPacket_hash(long _o); + // bool OnionPacket_eq(const struct LDKOnionPacket *NONNULL_PTR a, const struct LDKOnionPacket *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_eq")] public static extern bool OnionPacket_eq(long _a, long _b); // struct LDKCVec_u8Z AcceptChannel_write(const struct LDKAcceptChannel *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannel_write")] public static extern long AcceptChannel_write(long _obj); // struct LDKCResult_AcceptChannelDecodeErrorZ AcceptChannel_read(struct LDKu8slice ser); @@ -8168,6 +9040,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_write")] public static extern long AcceptChannelV2_write(long _obj); // struct LDKCResult_AcceptChannelV2DecodeErrorZ AcceptChannelV2_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_AcceptChannelV2_read")] public static extern long AcceptChannelV2_read(long _ser); + // struct LDKCVec_u8Z Stfu_write(const struct LDKStfu *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_write")] public static extern long Stfu_write(long _obj); + // struct LDKCResult_StfuDecodeErrorZ Stfu_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Stfu_read")] public static extern long Stfu_read(long _ser); + // struct LDKCVec_u8Z Splice_write(const struct LDKSplice *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_write")] public static extern long Splice_write(long _obj); + // struct LDKCResult_SpliceDecodeErrorZ Splice_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Splice_read")] public static extern long Splice_read(long _ser); + // struct LDKCVec_u8Z SpliceAck_write(const struct LDKSpliceAck *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_write")] public static extern long SpliceAck_write(long _obj); + // struct LDKCResult_SpliceAckDecodeErrorZ SpliceAck_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceAck_read")] public static extern long SpliceAck_read(long _ser); + // struct LDKCVec_u8Z SpliceLocked_write(const struct LDKSpliceLocked *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_write")] public static extern long SpliceLocked_write(long _obj); + // struct LDKCResult_SpliceLockedDecodeErrorZ SpliceLocked_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpliceLocked_read")] public static extern long SpliceLocked_read(long _ser); // struct LDKCVec_u8Z TxAddInput_write(const struct LDKTxAddInput *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxAddInput_write")] public static extern long TxAddInput_write(long _obj); // struct LDKCResult_TxAddInputDecodeErrorZ TxAddInput_read(struct LDKu8slice ser); @@ -8272,6 +9160,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_write")] public static extern long UpdateFulfillHTLC_write(long _obj); // struct LDKCResult_UpdateFulfillHTLCDecodeErrorZ UpdateFulfillHTLC_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateFulfillHTLC_read")] public static extern long UpdateFulfillHTLC_read(long _ser); + // struct LDKCVec_u8Z OnionPacket_write(const struct LDKOnionPacket *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_write")] public static extern long OnionPacket_write(long _obj); + // struct LDKCResult_OnionPacketDecodeErrorZ OnionPacket_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionPacket_read")] public static extern long OnionPacket_read(long _ser); // struct LDKCVec_u8Z UpdateAddHTLC_write(const struct LDKUpdateAddHTLC *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_UpdateAddHTLC_write")] public static extern long UpdateAddHTLC_write(long _obj); // struct LDKCResult_UpdateAddHTLCDecodeErrorZ UpdateAddHTLC_read(struct LDKu8slice ser); @@ -8280,6 +9172,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_read")] public static extern long OnionMessage_read(long _ser); // struct LDKCVec_u8Z OnionMessage_write(const struct LDKOnionMessage *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessage_write")] public static extern long OnionMessage_write(long _obj); + // struct LDKCVec_u8Z FinalOnionHopData_write(const struct LDKFinalOnionHopData *NONNULL_PTR obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_write")] public static extern long FinalOnionHopData_write(long _obj); + // struct LDKCResult_FinalOnionHopDataDecodeErrorZ FinalOnionHopData_read(struct LDKu8slice ser); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FinalOnionHopData_read")] public static extern long FinalOnionHopData_read(long _ser); // struct LDKCVec_u8Z Ping_write(const struct LDKPing *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Ping_write")] public static extern long Ping_write(long _obj); // struct LDKCResult_PingDecodeErrorZ Ping_read(struct LDKu8slice ser); @@ -8348,6 +9244,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_IgnoringMessageHandler_free")] public static extern void IgnoringMessageHandler_free(long _this_obj); // MUST_USE_RES struct LDKIgnoringMessageHandler IgnoringMessageHandler_new(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_IgnoringMessageHandler_new")] public static extern long IgnoringMessageHandler_new(); + // struct LDKEventsProvider IgnoringMessageHandler_as_EventsProvider(const struct LDKIgnoringMessageHandler *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_IgnoringMessageHandler_as_EventsProvider")] public static extern long IgnoringMessageHandler_as_EventsProvider(long _this_arg); // struct LDKMessageSendEventsProvider IgnoringMessageHandler_as_MessageSendEventsProvider(const struct LDKIgnoringMessageHandler *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_IgnoringMessageHandler_as_MessageSendEventsProvider")] public static extern long IgnoringMessageHandler_as_MessageSendEventsProvider(long _this_arg); // struct LDKRoutingMessageHandler IgnoringMessageHandler_as_RoutingMessageHandler(const struct LDKIgnoringMessageHandler *NONNULL_PTR this_arg); @@ -8474,35 +9372,31 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CounterpartyCommitmentSecrets_read")] public static extern long CounterpartyCommitmentSecrets_read(long _ser); // struct LDKSecretKey derive_private_key(struct LDKPublicKey per_commitment_point, const uint8_t (*base_secret)[32]); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_derive_private_key")] public static extern long derive_private_key(long _per_commitment_point, long _base_secret); - // struct LDKPublicKey derive_public_key(struct LDKPublicKey per_commitment_point, struct LDKPublicKey base_point); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_derive_public_key")] public static extern long derive_public_key(long _per_commitment_point, long _base_point); // struct LDKSecretKey derive_private_revocation_key(const uint8_t (*per_commitment_secret)[32], const uint8_t (*countersignatory_revocation_base_secret)[32]); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_derive_private_revocation_key")] public static extern long derive_private_revocation_key(long _per_commitment_secret, long _countersignatory_revocation_base_secret); - // struct LDKPublicKey derive_public_revocation_key(struct LDKPublicKey per_commitment_point, struct LDKPublicKey countersignatory_revocation_base_point); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_derive_public_revocation_key")] public static extern long derive_public_revocation_key(long _per_commitment_point, long _countersignatory_revocation_base_point); // void TxCreationKeys_free(struct LDKTxCreationKeys this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_free")] public static extern void TxCreationKeys_free(long _this_obj); // struct LDKPublicKey TxCreationKeys_get_per_commitment_point(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_get_per_commitment_point")] public static extern long TxCreationKeys_get_per_commitment_point(long _this_ptr); // void TxCreationKeys_set_per_commitment_point(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_set_per_commitment_point")] public static extern void TxCreationKeys_set_per_commitment_point(long _this_ptr, long _val); - // struct LDKPublicKey TxCreationKeys_get_revocation_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); + // struct LDKRevocationKey TxCreationKeys_get_revocation_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_get_revocation_key")] public static extern long TxCreationKeys_get_revocation_key(long _this_ptr); - // void TxCreationKeys_set_revocation_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void TxCreationKeys_set_revocation_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKRevocationKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_set_revocation_key")] public static extern void TxCreationKeys_set_revocation_key(long _this_ptr, long _val); - // struct LDKPublicKey TxCreationKeys_get_broadcaster_htlc_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); + // struct LDKHtlcKey TxCreationKeys_get_broadcaster_htlc_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_get_broadcaster_htlc_key")] public static extern long TxCreationKeys_get_broadcaster_htlc_key(long _this_ptr); - // void TxCreationKeys_set_broadcaster_htlc_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void TxCreationKeys_set_broadcaster_htlc_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKHtlcKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_set_broadcaster_htlc_key")] public static extern void TxCreationKeys_set_broadcaster_htlc_key(long _this_ptr, long _val); - // struct LDKPublicKey TxCreationKeys_get_countersignatory_htlc_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); + // struct LDKHtlcKey TxCreationKeys_get_countersignatory_htlc_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_get_countersignatory_htlc_key")] public static extern long TxCreationKeys_get_countersignatory_htlc_key(long _this_ptr); - // void TxCreationKeys_set_countersignatory_htlc_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void TxCreationKeys_set_countersignatory_htlc_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKHtlcKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_set_countersignatory_htlc_key")] public static extern void TxCreationKeys_set_countersignatory_htlc_key(long _this_ptr, long _val); - // struct LDKPublicKey TxCreationKeys_get_broadcaster_delayed_payment_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); + // struct LDKDelayedPaymentKey TxCreationKeys_get_broadcaster_delayed_payment_key(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_get_broadcaster_delayed_payment_key")] public static extern long TxCreationKeys_get_broadcaster_delayed_payment_key(long _this_ptr); - // void TxCreationKeys_set_broadcaster_delayed_payment_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void TxCreationKeys_set_broadcaster_delayed_payment_key(struct LDKTxCreationKeys *NONNULL_PTR this_ptr, struct LDKDelayedPaymentKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_set_broadcaster_delayed_payment_key")] public static extern void TxCreationKeys_set_broadcaster_delayed_payment_key(long _this_ptr, long _val); - // MUST_USE_RES struct LDKTxCreationKeys TxCreationKeys_new(struct LDKPublicKey per_commitment_point_arg, struct LDKPublicKey revocation_key_arg, struct LDKPublicKey broadcaster_htlc_key_arg, struct LDKPublicKey countersignatory_htlc_key_arg, struct LDKPublicKey broadcaster_delayed_payment_key_arg); + // MUST_USE_RES struct LDKTxCreationKeys TxCreationKeys_new(struct LDKPublicKey per_commitment_point_arg, struct LDKRevocationKey revocation_key_arg, struct LDKHtlcKey broadcaster_htlc_key_arg, struct LDKHtlcKey countersignatory_htlc_key_arg, struct LDKDelayedPaymentKey broadcaster_delayed_payment_key_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_new")] public static extern long TxCreationKeys_new(long _per_commitment_point_arg, long _revocation_key_arg, long _broadcaster_htlc_key_arg, long _countersignatory_htlc_key_arg, long _broadcaster_delayed_payment_key_arg); // bool TxCreationKeys_eq(const struct LDKTxCreationKeys *NONNULL_PTR a, const struct LDKTxCreationKeys *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_eq")] public static extern bool TxCreationKeys_eq(long _a, long _b); @@ -8520,23 +9414,23 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_get_funding_pubkey")] public static extern long ChannelPublicKeys_get_funding_pubkey(long _this_ptr); // void ChannelPublicKeys_set_funding_pubkey(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_set_funding_pubkey")] public static extern void ChannelPublicKeys_set_funding_pubkey(long _this_ptr, long _val); - // struct LDKPublicKey ChannelPublicKeys_get_revocation_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); + // struct LDKRevocationBasepoint ChannelPublicKeys_get_revocation_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_get_revocation_basepoint")] public static extern long ChannelPublicKeys_get_revocation_basepoint(long _this_ptr); - // void ChannelPublicKeys_set_revocation_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void ChannelPublicKeys_set_revocation_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKRevocationBasepoint val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_set_revocation_basepoint")] public static extern void ChannelPublicKeys_set_revocation_basepoint(long _this_ptr, long _val); // struct LDKPublicKey ChannelPublicKeys_get_payment_point(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_get_payment_point")] public static extern long ChannelPublicKeys_get_payment_point(long _this_ptr); // void ChannelPublicKeys_set_payment_point(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_set_payment_point")] public static extern void ChannelPublicKeys_set_payment_point(long _this_ptr, long _val); - // struct LDKPublicKey ChannelPublicKeys_get_delayed_payment_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); + // struct LDKDelayedPaymentBasepoint ChannelPublicKeys_get_delayed_payment_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_get_delayed_payment_basepoint")] public static extern long ChannelPublicKeys_get_delayed_payment_basepoint(long _this_ptr); - // void ChannelPublicKeys_set_delayed_payment_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void ChannelPublicKeys_set_delayed_payment_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKDelayedPaymentBasepoint val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_set_delayed_payment_basepoint")] public static extern void ChannelPublicKeys_set_delayed_payment_basepoint(long _this_ptr, long _val); - // struct LDKPublicKey ChannelPublicKeys_get_htlc_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); + // struct LDKHtlcBasepoint ChannelPublicKeys_get_htlc_basepoint(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_get_htlc_basepoint")] public static extern long ChannelPublicKeys_get_htlc_basepoint(long _this_ptr); - // void ChannelPublicKeys_set_htlc_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void ChannelPublicKeys_set_htlc_basepoint(struct LDKChannelPublicKeys *NONNULL_PTR this_ptr, struct LDKHtlcBasepoint val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_set_htlc_basepoint")] public static extern void ChannelPublicKeys_set_htlc_basepoint(long _this_ptr, long _val); - // MUST_USE_RES struct LDKChannelPublicKeys ChannelPublicKeys_new(struct LDKPublicKey funding_pubkey_arg, struct LDKPublicKey revocation_basepoint_arg, struct LDKPublicKey payment_point_arg, struct LDKPublicKey delayed_payment_basepoint_arg, struct LDKPublicKey htlc_basepoint_arg); + // MUST_USE_RES struct LDKChannelPublicKeys ChannelPublicKeys_new(struct LDKPublicKey funding_pubkey_arg, struct LDKRevocationBasepoint revocation_basepoint_arg, struct LDKPublicKey payment_point_arg, struct LDKDelayedPaymentBasepoint delayed_payment_basepoint_arg, struct LDKHtlcBasepoint htlc_basepoint_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_new")] public static extern long ChannelPublicKeys_new(long _funding_pubkey_arg, long _revocation_basepoint_arg, long _payment_point_arg, long _delayed_payment_basepoint_arg, long _htlc_basepoint_arg); // uint64_t ChannelPublicKeys_clone_ptr(LDKChannelPublicKeys *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_clone_ptr")] public static extern long ChannelPublicKeys_clone_ptr(long _arg); @@ -8550,11 +9444,11 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_write")] public static extern long ChannelPublicKeys_write(long _obj); // struct LDKCResult_ChannelPublicKeysDecodeErrorZ ChannelPublicKeys_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelPublicKeys_read")] public static extern long ChannelPublicKeys_read(long _ser); - // MUST_USE_RES struct LDKTxCreationKeys TxCreationKeys_derive_new(struct LDKPublicKey per_commitment_point, struct LDKPublicKey broadcaster_delayed_payment_base, struct LDKPublicKey broadcaster_htlc_base, struct LDKPublicKey countersignatory_revocation_base, struct LDKPublicKey countersignatory_htlc_base); + // MUST_USE_RES struct LDKTxCreationKeys TxCreationKeys_derive_new(struct LDKPublicKey per_commitment_point, const struct LDKDelayedPaymentBasepoint *NONNULL_PTR broadcaster_delayed_payment_base, const struct LDKHtlcBasepoint *NONNULL_PTR broadcaster_htlc_base, const struct LDKRevocationBasepoint *NONNULL_PTR countersignatory_revocation_base, const struct LDKHtlcBasepoint *NONNULL_PTR countersignatory_htlc_base); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_derive_new")] public static extern long TxCreationKeys_derive_new(long _per_commitment_point, long _broadcaster_delayed_payment_base, long _broadcaster_htlc_base, long _countersignatory_revocation_base, long _countersignatory_htlc_base); // MUST_USE_RES struct LDKTxCreationKeys TxCreationKeys_from_channel_static_keys(struct LDKPublicKey per_commitment_point, const struct LDKChannelPublicKeys *NONNULL_PTR broadcaster_keys, const struct LDKChannelPublicKeys *NONNULL_PTR countersignatory_keys); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TxCreationKeys_from_channel_static_keys")] public static extern long TxCreationKeys_from_channel_static_keys(long _per_commitment_point, long _broadcaster_keys, long _countersignatory_keys); - // struct LDKCVec_u8Z get_revokeable_redeemscript(struct LDKPublicKey revocation_key, uint16_t contest_delay, struct LDKPublicKey broadcaster_delayed_payment_key); + // struct LDKCVec_u8Z get_revokeable_redeemscript(const struct LDKRevocationKey *NONNULL_PTR revocation_key, uint16_t contest_delay, const struct LDKDelayedPaymentKey *NONNULL_PTR broadcaster_delayed_payment_key); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_get_revokeable_redeemscript")] public static extern long get_revokeable_redeemscript(long _revocation_key, short _contest_delay, long _broadcaster_delayed_payment_key); // struct LDKCVec_u8Z get_counterparty_payment_script(const struct LDKChannelTypeFeatures *NONNULL_PTR channel_type_features, struct LDKPublicKey payment_key); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_get_counterparty_payment_script")] public static extern long get_counterparty_payment_script(long _channel_type_features, long _payment_key); @@ -8596,7 +9490,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_get_htlc_redeemscript")] public static extern long get_htlc_redeemscript(long _htlc, long _channel_type_features, long _keys); // struct LDKCVec_u8Z make_funding_redeemscript(struct LDKPublicKey broadcaster, struct LDKPublicKey countersignatory); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_make_funding_redeemscript")] public static extern long make_funding_redeemscript(long _broadcaster, long _countersignatory); - // struct LDKTransaction build_htlc_transaction(const uint8_t (*commitment_txid)[32], uint32_t feerate_per_kw, uint16_t contest_delay, const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc, const struct LDKChannelTypeFeatures *NONNULL_PTR channel_type_features, struct LDKPublicKey broadcaster_delayed_payment_key, struct LDKPublicKey revocation_key); + // struct LDKTransaction build_htlc_transaction(const uint8_t (*commitment_txid)[32], uint32_t feerate_per_kw, uint16_t contest_delay, const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc, const struct LDKChannelTypeFeatures *NONNULL_PTR channel_type_features, const struct LDKDelayedPaymentKey *NONNULL_PTR broadcaster_delayed_payment_key, const struct LDKRevocationKey *NONNULL_PTR revocation_key); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_build_htlc_transaction")] public static extern long build_htlc_transaction(long _commitment_txid, int _feerate_per_kw, short _contest_delay, long _htlc, long _channel_type_features, long _broadcaster_delayed_payment_key, long _revocation_key); // struct LDKWitness build_htlc_input_witness(struct LDKECDSASignature local_sig, struct LDKECDSASignature remote_sig, struct LDKCOption_ThirtyTwoBytesZ preimage, struct LDKu8slice redeem_script, const struct LDKChannelTypeFeatures *NONNULL_PTR channel_type_features); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_build_htlc_input_witness")] public static extern long build_htlc_input_witness(long _local_sig, long _remote_sig, long _preimage, long _redeem_script, long _channel_type_features); @@ -8864,6 +9758,24 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelTypeFeatures_clone_ptr")] public static extern long ChannelTypeFeatures_clone_ptr(long _arg); // struct LDKChannelTypeFeatures ChannelTypeFeatures_clone(const struct LDKChannelTypeFeatures *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelTypeFeatures_clone")] public static extern long ChannelTypeFeatures_clone(long _orig); + // uint64_t InitFeatures_hash(const struct LDKInitFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_hash")] public static extern long InitFeatures_hash(long _o); + // uint64_t NodeFeatures_hash(const struct LDKNodeFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_hash")] public static extern long NodeFeatures_hash(long _o); + // uint64_t ChannelFeatures_hash(const struct LDKChannelFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelFeatures_hash")] public static extern long ChannelFeatures_hash(long _o); + // uint64_t Bolt11InvoiceFeatures_hash(const struct LDKBolt11InvoiceFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Bolt11InvoiceFeatures_hash")] public static extern long Bolt11InvoiceFeatures_hash(long _o); + // uint64_t OfferFeatures_hash(const struct LDKOfferFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OfferFeatures_hash")] public static extern long OfferFeatures_hash(long _o); + // uint64_t InvoiceRequestFeatures_hash(const struct LDKInvoiceRequestFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InvoiceRequestFeatures_hash")] public static extern long InvoiceRequestFeatures_hash(long _o); + // uint64_t Bolt12InvoiceFeatures_hash(const struct LDKBolt12InvoiceFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Bolt12InvoiceFeatures_hash")] public static extern long Bolt12InvoiceFeatures_hash(long _o); + // uint64_t BlindedHopFeatures_hash(const struct LDKBlindedHopFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedHopFeatures_hash")] public static extern long BlindedHopFeatures_hash(long _o); + // uint64_t ChannelTypeFeatures_hash(const struct LDKChannelTypeFeatures *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelTypeFeatures_hash")] public static extern long ChannelTypeFeatures_hash(long _o); // void InitFeatures_free(struct LDKInitFeatures this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_free")] public static extern void InitFeatures_free(long _this_obj); // void NodeFeatures_free(struct LDKNodeFeatures this_obj); @@ -9258,6 +10170,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_requires_anchors_zero_fee_htlc_tx")] public static extern bool NodeFeatures_requires_anchors_zero_fee_htlc_tx(long _this_arg); // MUST_USE_RES bool ChannelTypeFeatures_requires_anchors_zero_fee_htlc_tx(const struct LDKChannelTypeFeatures *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelTypeFeatures_requires_anchors_zero_fee_htlc_tx")] public static extern bool ChannelTypeFeatures_requires_anchors_zero_fee_htlc_tx(long _this_arg); + // void InitFeatures_set_route_blinding_optional(struct LDKInitFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_set_route_blinding_optional")] public static extern void InitFeatures_set_route_blinding_optional(long _this_arg); + // void InitFeatures_set_route_blinding_required(struct LDKInitFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_set_route_blinding_required")] public static extern void InitFeatures_set_route_blinding_required(long _this_arg); + // MUST_USE_RES bool InitFeatures_supports_route_blinding(const struct LDKInitFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_supports_route_blinding")] public static extern bool InitFeatures_supports_route_blinding(long _this_arg); + // void NodeFeatures_set_route_blinding_optional(struct LDKNodeFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_set_route_blinding_optional")] public static extern void NodeFeatures_set_route_blinding_optional(long _this_arg); + // void NodeFeatures_set_route_blinding_required(struct LDKNodeFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_set_route_blinding_required")] public static extern void NodeFeatures_set_route_blinding_required(long _this_arg); + // MUST_USE_RES bool NodeFeatures_supports_route_blinding(const struct LDKNodeFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_supports_route_blinding")] public static extern bool NodeFeatures_supports_route_blinding(long _this_arg); + // MUST_USE_RES bool InitFeatures_requires_route_blinding(const struct LDKInitFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_requires_route_blinding")] public static extern bool InitFeatures_requires_route_blinding(long _this_arg); + // MUST_USE_RES bool NodeFeatures_requires_route_blinding(const struct LDKNodeFeatures *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeFeatures_requires_route_blinding")] public static extern bool NodeFeatures_requires_route_blinding(long _this_arg); // void InitFeatures_set_shutdown_any_segwit_optional(struct LDKInitFeatures *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InitFeatures_set_shutdown_any_segwit_optional")] public static extern void InitFeatures_set_shutdown_any_segwit_optional(long _this_arg); // void InitFeatures_set_shutdown_any_segwit_required(struct LDKInitFeatures *NONNULL_PTR this_arg); @@ -9404,7 +10332,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_eq")] public static extern bool ShutdownScript_eq(long _a, long _b); // void InvalidShutdownScript_free(struct LDKInvalidShutdownScript this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InvalidShutdownScript_free")] public static extern void InvalidShutdownScript_free(long _this_obj); - // struct LDKu8slice InvalidShutdownScript_get_script(const struct LDKInvalidShutdownScript *NONNULL_PTR this_ptr); + // struct LDKCVec_u8Z InvalidShutdownScript_get_script(const struct LDKInvalidShutdownScript *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InvalidShutdownScript_get_script")] public static extern long InvalidShutdownScript_get_script(long _this_ptr); // void InvalidShutdownScript_set_script(struct LDKInvalidShutdownScript *NONNULL_PTR this_ptr, struct LDKCVec_u8Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InvalidShutdownScript_set_script")] public static extern void InvalidShutdownScript_set_script(long _this_ptr, long _val); @@ -9422,8 +10350,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_new_p2wpkh")] public static extern long ShutdownScript_new_p2wpkh(long _pubkey_hash); // MUST_USE_RES struct LDKShutdownScript ShutdownScript_new_p2wsh(const uint8_t (*script_hash)[32]); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_new_p2wsh")] public static extern long ShutdownScript_new_p2wsh(long _script_hash); - // MUST_USE_RES struct LDKCResult_ShutdownScriptInvalidShutdownScriptZ ShutdownScript_new_witness_program(struct LDKWitnessVersion version, struct LDKu8slice program); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_new_witness_program")] public static extern long ShutdownScript_new_witness_program(byte _version, long _program); + // MUST_USE_RES struct LDKCResult_ShutdownScriptInvalidShutdownScriptZ ShutdownScript_new_witness_program(struct LDKWitnessProgram witness_program); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_new_witness_program")] public static extern long ShutdownScript_new_witness_program(long _witness_program); // MUST_USE_RES struct LDKCVec_u8Z ShutdownScript_into_inner(struct LDKShutdownScript this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ShutdownScript_into_inner")] public static extern long ShutdownScript_into_inner(long _this_arg); // MUST_USE_RES struct LDKPublicKey ShutdownScript_as_legacy_pubkey(const struct LDKShutdownScript *NONNULL_PTR this_arg); @@ -9554,6 +10482,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Offer_supports_chain")] public static extern bool Offer_supports_chain(long _this_arg, long _chain); // MUST_USE_RES bool Offer_is_expired(const struct LDKOffer *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Offer_is_expired")] public static extern bool Offer_is_expired(long _this_arg); + // MUST_USE_RES bool Offer_is_expired_no_std(const struct LDKOffer *NONNULL_PTR this_arg, uint64_t duration_since_epoch); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Offer_is_expired_no_std")] public static extern bool Offer_is_expired_no_std(long _this_arg, long _duration_since_epoch); // MUST_USE_RES bool Offer_is_valid_quantity(const struct LDKOffer *NONNULL_PTR this_arg, uint64_t quantity); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Offer_is_valid_quantity")] public static extern bool Offer_is_valid_quantity(long _this_arg, long _quantity); // MUST_USE_RES bool Offer_expects_quantity(const struct LDKOffer *NONNULL_PTR this_arg); @@ -9892,6 +10822,16 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InvoiceRequest_write")] public static extern long InvoiceRequest_write(long _obj); // void TaggedHash_free(struct LDKTaggedHash this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_free")] public static extern void TaggedHash_free(long _this_obj); + // uint64_t TaggedHash_clone_ptr(LDKTaggedHash *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_clone_ptr")] public static extern long TaggedHash_clone_ptr(long _arg); + // struct LDKTaggedHash TaggedHash_clone(const struct LDKTaggedHash *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_clone")] public static extern long TaggedHash_clone(long _orig); + // MUST_USE_RES const uint8_t (*TaggedHash_as_digest(const struct LDKTaggedHash *NONNULL_PTR this_arg))[32]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_as_digest")] public static extern long TaggedHash_as_digest(long _this_arg); + // MUST_USE_RES struct LDKStr TaggedHash_tag(const struct LDKTaggedHash *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_tag")] public static extern long TaggedHash_tag(long _this_arg); + // MUST_USE_RES struct LDKThirtyTwoBytes TaggedHash_merkle_root(const struct LDKTaggedHash *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_TaggedHash_merkle_root")] public static extern long TaggedHash_merkle_root(long _this_arg); // void Bolt12ParseError_free(struct LDKBolt12ParseError this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Bolt12ParseError_free")] public static extern void Bolt12ParseError_free(long _this_obj); // uint64_t Bolt12ParseError_clone_ptr(LDKBolt12ParseError *NONNULL_PTR arg); @@ -9966,6 +10906,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Refund_absolute_expiry")] public static extern long Refund_absolute_expiry(long _this_arg); // MUST_USE_RES bool Refund_is_expired(const struct LDKRefund *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Refund_is_expired")] public static extern bool Refund_is_expired(long _this_arg); + // MUST_USE_RES bool Refund_is_expired_no_std(const struct LDKRefund *NONNULL_PTR this_arg, uint64_t duration_since_epoch); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Refund_is_expired_no_std")] public static extern bool Refund_is_expired_no_std(long _this_arg, long _duration_since_epoch); // MUST_USE_RES struct LDKPrintableString Refund_issuer(const struct LDKRefund *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Refund_issuer")] public static extern long Refund_issuer(long _this_arg); // MUST_USE_RES struct LDKCVec_BlindedPathZ Refund_paths(const struct LDKRefund *NONNULL_PTR this_arg); @@ -10028,6 +10970,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeId_from_pubkey")] public static extern long NodeId_from_pubkey(long _pubkey); // MUST_USE_RES struct LDKu8slice NodeId_as_slice(const struct LDKNodeId *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeId_as_slice")] public static extern long NodeId_as_slice(long _this_arg); + // MUST_USE_RES const uint8_t (*NodeId_as_array(const struct LDKNodeId *NONNULL_PTR this_arg))[33]; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeId_as_array")] public static extern long NodeId_as_array(long _this_arg); // MUST_USE_RES struct LDKCResult_PublicKeySecp256k1ErrorZ NodeId_as_pubkey(const struct LDKNodeId *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeId_as_pubkey")] public static extern long NodeId_as_pubkey(long _this_arg); // uint64_t NodeId_hash(const struct LDKNodeId *NONNULL_PTR o); @@ -10168,8 +11112,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DirectedChannelInfo_clone")] public static extern long DirectedChannelInfo_clone(long _orig); // MUST_USE_RES struct LDKChannelInfo DirectedChannelInfo_channel(const struct LDKDirectedChannelInfo *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DirectedChannelInfo_channel")] public static extern long DirectedChannelInfo_channel(long _this_arg); - // MUST_USE_RES uint64_t DirectedChannelInfo_htlc_maximum_msat(const struct LDKDirectedChannelInfo *NONNULL_PTR this_arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DirectedChannelInfo_htlc_maximum_msat")] public static extern long DirectedChannelInfo_htlc_maximum_msat(long _this_arg); // MUST_USE_RES struct LDKEffectiveCapacity DirectedChannelInfo_effective_capacity(const struct LDKDirectedChannelInfo *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DirectedChannelInfo_effective_capacity")] public static extern long DirectedChannelInfo_effective_capacity(long _this_arg); // void EffectiveCapacity_free(struct LDKEffectiveCapacity this_ptr); @@ -10264,6 +11206,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAlias_clone_ptr")] public static extern long NodeAlias_clone_ptr(long _arg); // struct LDKNodeAlias NodeAlias_clone(const struct LDKNodeAlias *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAlias_clone")] public static extern long NodeAlias_clone(long _orig); + // uint64_t NodeAlias_hash(const struct LDKNodeAlias *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAlias_hash")] public static extern long NodeAlias_hash(long _o); // bool NodeAlias_eq(const struct LDKNodeAlias *NONNULL_PTR a, const struct LDKNodeAlias *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_NodeAlias_eq")] public static extern bool NodeAlias_eq(long _a, long _b); // struct LDKCVec_u8Z NodeAlias_write(const struct LDKNodeAlias *NONNULL_PTR obj); @@ -10342,10 +11286,12 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReadOnlyNetworkGraph_get_addresses")] public static extern long ReadOnlyNetworkGraph_get_addresses(long _this_arg, long _pubkey); // void DefaultRouter_free(struct LDKDefaultRouter this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultRouter_free")] public static extern void DefaultRouter_free(long _this_obj); - // MUST_USE_RES struct LDKDefaultRouter DefaultRouter_new(const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKLogger logger, struct LDKThirtyTwoBytes random_seed_bytes, struct LDKLockableScore scorer, struct LDKProbabilisticScoringFeeParameters score_params); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultRouter_new")] public static extern long DefaultRouter_new(long _network_graph, long _logger, long _random_seed_bytes, long _scorer, long _score_params); + // MUST_USE_RES struct LDKDefaultRouter DefaultRouter_new(const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKLogger logger, struct LDKEntropySource entropy_source, struct LDKLockableScore scorer, struct LDKProbabilisticScoringFeeParameters score_params); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultRouter_new")] public static extern long DefaultRouter_new(long _network_graph, long _logger, long _entropy_source, long _scorer, long _score_params); // struct LDKRouter DefaultRouter_as_Router(const struct LDKDefaultRouter *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultRouter_as_Router")] public static extern long DefaultRouter_as_Router(long _this_arg); + // struct LDKMessageRouter DefaultRouter_as_MessageRouter(const struct LDKDefaultRouter *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultRouter_as_MessageRouter")] public static extern long DefaultRouter_as_MessageRouter(long _this_arg); // void Router_free(struct LDKRouter this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Router_free")] public static extern void Router_free(long _this_ptr); // void ScorerAccountingForInFlightHtlcs_free(struct LDKScorerAccountingForInFlightHtlcs this_obj); @@ -10558,8 +11504,12 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_get_previously_failed_channels")] public static extern long PaymentParameters_get_previously_failed_channels(long _this_ptr); // void PaymentParameters_set_previously_failed_channels(struct LDKPaymentParameters *NONNULL_PTR this_ptr, struct LDKCVec_u64Z val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_set_previously_failed_channels")] public static extern void PaymentParameters_set_previously_failed_channels(long _this_ptr, long _val); - // MUST_USE_RES struct LDKPaymentParameters PaymentParameters_new(struct LDKPayee payee_arg, struct LDKCOption_u64Z expiry_time_arg, uint32_t max_total_cltv_expiry_delta_arg, uint8_t max_path_count_arg, uint8_t max_channel_saturation_power_of_half_arg, struct LDKCVec_u64Z previously_failed_channels_arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_new")] public static extern long PaymentParameters_new(long _payee_arg, long _expiry_time_arg, int _max_total_cltv_expiry_delta_arg, byte _max_path_count_arg, byte _max_channel_saturation_power_of_half_arg, long _previously_failed_channels_arg); + // struct LDKCVec_u64Z PaymentParameters_get_previously_failed_blinded_path_idxs(const struct LDKPaymentParameters *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_get_previously_failed_blinded_path_idxs")] public static extern long PaymentParameters_get_previously_failed_blinded_path_idxs(long _this_ptr); + // void PaymentParameters_set_previously_failed_blinded_path_idxs(struct LDKPaymentParameters *NONNULL_PTR this_ptr, struct LDKCVec_u64Z val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_set_previously_failed_blinded_path_idxs")] public static extern void PaymentParameters_set_previously_failed_blinded_path_idxs(long _this_ptr, long _val); + // MUST_USE_RES struct LDKPaymentParameters PaymentParameters_new(struct LDKPayee payee_arg, struct LDKCOption_u64Z expiry_time_arg, uint32_t max_total_cltv_expiry_delta_arg, uint8_t max_path_count_arg, uint8_t max_channel_saturation_power_of_half_arg, struct LDKCVec_u64Z previously_failed_channels_arg, struct LDKCVec_u64Z previously_failed_blinded_path_idxs_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_new")] public static extern long PaymentParameters_new(long _payee_arg, long _expiry_time_arg, int _max_total_cltv_expiry_delta_arg, byte _max_path_count_arg, byte _max_channel_saturation_power_of_half_arg, long _previously_failed_channels_arg, long _previously_failed_blinded_path_idxs_arg); // uint64_t PaymentParameters_clone_ptr(LDKPaymentParameters *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentParameters_clone_ptr")] public static extern long PaymentParameters_clone_ptr(long _arg); // struct LDKPaymentParameters PaymentParameters_clone(const struct LDKPaymentParameters *NONNULL_PTR orig); @@ -10654,6 +11604,68 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RouteHintHop_write")] public static extern long RouteHintHop_write(long _obj); // struct LDKCResult_RouteHintHopDecodeErrorZ RouteHintHop_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RouteHintHop_read")] public static extern long RouteHintHop_read(long _ser); + // void FirstHopCandidate_free(struct LDKFirstHopCandidate this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FirstHopCandidate_free")] public static extern void FirstHopCandidate_free(long _this_obj); + // uint64_t FirstHopCandidate_clone_ptr(LDKFirstHopCandidate *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FirstHopCandidate_clone_ptr")] public static extern long FirstHopCandidate_clone_ptr(long _arg); + // struct LDKFirstHopCandidate FirstHopCandidate_clone(const struct LDKFirstHopCandidate *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_FirstHopCandidate_clone")] public static extern long FirstHopCandidate_clone(long _orig); + // void PublicHopCandidate_free(struct LDKPublicHopCandidate this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PublicHopCandidate_free")] public static extern void PublicHopCandidate_free(long _this_obj); + // uint64_t PublicHopCandidate_get_short_channel_id(const struct LDKPublicHopCandidate *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PublicHopCandidate_get_short_channel_id")] public static extern long PublicHopCandidate_get_short_channel_id(long _this_ptr); + // void PublicHopCandidate_set_short_channel_id(struct LDKPublicHopCandidate *NONNULL_PTR this_ptr, uint64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PublicHopCandidate_set_short_channel_id")] public static extern void PublicHopCandidate_set_short_channel_id(long _this_ptr, long _val); + // uint64_t PublicHopCandidate_clone_ptr(LDKPublicHopCandidate *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PublicHopCandidate_clone_ptr")] public static extern long PublicHopCandidate_clone_ptr(long _arg); + // struct LDKPublicHopCandidate PublicHopCandidate_clone(const struct LDKPublicHopCandidate *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PublicHopCandidate_clone")] public static extern long PublicHopCandidate_clone(long _orig); + // void PrivateHopCandidate_free(struct LDKPrivateHopCandidate this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PrivateHopCandidate_free")] public static extern void PrivateHopCandidate_free(long _this_obj); + // uint64_t PrivateHopCandidate_clone_ptr(LDKPrivateHopCandidate *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PrivateHopCandidate_clone_ptr")] public static extern long PrivateHopCandidate_clone_ptr(long _arg); + // struct LDKPrivateHopCandidate PrivateHopCandidate_clone(const struct LDKPrivateHopCandidate *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PrivateHopCandidate_clone")] public static extern long PrivateHopCandidate_clone(long _orig); + // void BlindedPathCandidate_free(struct LDKBlindedPathCandidate this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPathCandidate_free")] public static extern void BlindedPathCandidate_free(long _this_obj); + // uint64_t BlindedPathCandidate_clone_ptr(LDKBlindedPathCandidate *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPathCandidate_clone_ptr")] public static extern long BlindedPathCandidate_clone_ptr(long _arg); + // struct LDKBlindedPathCandidate BlindedPathCandidate_clone(const struct LDKBlindedPathCandidate *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPathCandidate_clone")] public static extern long BlindedPathCandidate_clone(long _orig); + // void OneHopBlindedPathCandidate_free(struct LDKOneHopBlindedPathCandidate this_obj); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OneHopBlindedPathCandidate_free")] public static extern void OneHopBlindedPathCandidate_free(long _this_obj); + // uint64_t OneHopBlindedPathCandidate_clone_ptr(LDKOneHopBlindedPathCandidate *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OneHopBlindedPathCandidate_clone_ptr")] public static extern long OneHopBlindedPathCandidate_clone_ptr(long _arg); + // struct LDKOneHopBlindedPathCandidate OneHopBlindedPathCandidate_clone(const struct LDKOneHopBlindedPathCandidate *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OneHopBlindedPathCandidate_clone")] public static extern long OneHopBlindedPathCandidate_clone(long _orig); + // void CandidateRouteHop_free(struct LDKCandidateRouteHop this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_free")] public static extern void CandidateRouteHop_free(long _this_ptr); + // uint64_t CandidateRouteHop_clone_ptr(LDKCandidateRouteHop *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_clone_ptr")] public static extern long CandidateRouteHop_clone_ptr(long _arg); + // struct LDKCandidateRouteHop CandidateRouteHop_clone(const struct LDKCandidateRouteHop *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_clone")] public static extern long CandidateRouteHop_clone(long _orig); + // struct LDKCandidateRouteHop CandidateRouteHop_first_hop(struct LDKFirstHopCandidate a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_first_hop")] public static extern long CandidateRouteHop_first_hop(long _a); + // struct LDKCandidateRouteHop CandidateRouteHop_public_hop(struct LDKPublicHopCandidate a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_public_hop")] public static extern long CandidateRouteHop_public_hop(long _a); + // struct LDKCandidateRouteHop CandidateRouteHop_private_hop(struct LDKPrivateHopCandidate a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_private_hop")] public static extern long CandidateRouteHop_private_hop(long _a); + // struct LDKCandidateRouteHop CandidateRouteHop_blinded(struct LDKBlindedPathCandidate a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_blinded")] public static extern long CandidateRouteHop_blinded(long _a); + // struct LDKCandidateRouteHop CandidateRouteHop_one_hop_blinded(struct LDKOneHopBlindedPathCandidate a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_one_hop_blinded")] public static extern long CandidateRouteHop_one_hop_blinded(long _a); + // MUST_USE_RES struct LDKCOption_u64Z CandidateRouteHop_globally_unique_short_channel_id(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_globally_unique_short_channel_id")] public static extern long CandidateRouteHop_globally_unique_short_channel_id(long _this_arg); + // MUST_USE_RES uint32_t CandidateRouteHop_cltv_expiry_delta(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_cltv_expiry_delta")] public static extern int CandidateRouteHop_cltv_expiry_delta(long _this_arg); + // MUST_USE_RES uint64_t CandidateRouteHop_htlc_minimum_msat(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_htlc_minimum_msat")] public static extern long CandidateRouteHop_htlc_minimum_msat(long _this_arg); + // MUST_USE_RES struct LDKRoutingFees CandidateRouteHop_fees(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_fees")] public static extern long CandidateRouteHop_fees(long _this_arg); + // MUST_USE_RES struct LDKNodeId CandidateRouteHop_source(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_source")] public static extern long CandidateRouteHop_source(long _this_arg); + // MUST_USE_RES struct LDKNodeId CandidateRouteHop_target(const struct LDKCandidateRouteHop *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_CandidateRouteHop_target")] public static extern long CandidateRouteHop_target(long _this_arg); // struct LDKCResult_RouteLightningErrorZ find_route(struct LDKPublicKey our_node_pubkey, const struct LDKRouteParameters *NONNULL_PTR route_params, const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKCVec_ChannelDetailsZ *first_hops, struct LDKLogger logger, const struct LDKScoreLookUp *NONNULL_PTR scorer, const struct LDKProbabilisticScoringFeeParameters *NONNULL_PTR score_params, const uint8_t (*random_seed_bytes)[32]); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_find_route")] public static extern long find_route(long _our_node_pubkey, long _route_params, long _network_graph, long _first_hops, long _logger, long _scorer, long _score_params, long _random_seed_bytes); // struct LDKCResult_RouteLightningErrorZ build_route_from_hops(struct LDKPublicKey our_node_pubkey, struct LDKCVec_PublicKeyZ hops, const struct LDKRouteParameters *NONNULL_PTR route_params, const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKLogger logger, const uint8_t (*random_seed_bytes)[32]); @@ -10838,9 +11850,9 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_get_output")] public static extern long DelayedPaymentOutputDescriptor_get_output(long _this_ptr); // void DelayedPaymentOutputDescriptor_set_output(struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr, struct LDKTxOut val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_set_output")] public static extern void DelayedPaymentOutputDescriptor_set_output(long _this_ptr, long _val); - // struct LDKPublicKey DelayedPaymentOutputDescriptor_get_revocation_pubkey(const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr); + // struct LDKRevocationKey DelayedPaymentOutputDescriptor_get_revocation_pubkey(const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_get_revocation_pubkey")] public static extern long DelayedPaymentOutputDescriptor_get_revocation_pubkey(long _this_ptr); - // void DelayedPaymentOutputDescriptor_set_revocation_pubkey(struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr, struct LDKPublicKey val); + // void DelayedPaymentOutputDescriptor_set_revocation_pubkey(struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr, struct LDKRevocationKey val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_set_revocation_pubkey")] public static extern void DelayedPaymentOutputDescriptor_set_revocation_pubkey(long _this_ptr, long _val); // const uint8_t (*DelayedPaymentOutputDescriptor_get_channel_keys_id(const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr))[32]; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_get_channel_keys_id")] public static extern long DelayedPaymentOutputDescriptor_get_channel_keys_id(long _this_ptr); @@ -10850,7 +11862,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_get_channel_value_satoshis")] public static extern long DelayedPaymentOutputDescriptor_get_channel_value_satoshis(long _this_ptr); // void DelayedPaymentOutputDescriptor_set_channel_value_satoshis(struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr, uint64_t val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_set_channel_value_satoshis")] public static extern void DelayedPaymentOutputDescriptor_set_channel_value_satoshis(long _this_ptr, long _val); - // MUST_USE_RES struct LDKDelayedPaymentOutputDescriptor DelayedPaymentOutputDescriptor_new(struct LDKOutPoint outpoint_arg, struct LDKPublicKey per_commitment_point_arg, uint16_t to_self_delay_arg, struct LDKTxOut output_arg, struct LDKPublicKey revocation_pubkey_arg, struct LDKThirtyTwoBytes channel_keys_id_arg, uint64_t channel_value_satoshis_arg); + // MUST_USE_RES struct LDKDelayedPaymentOutputDescriptor DelayedPaymentOutputDescriptor_new(struct LDKOutPoint outpoint_arg, struct LDKPublicKey per_commitment_point_arg, uint16_t to_self_delay_arg, struct LDKTxOut output_arg, struct LDKRevocationKey revocation_pubkey_arg, struct LDKThirtyTwoBytes channel_keys_id_arg, uint64_t channel_value_satoshis_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_new")] public static extern long DelayedPaymentOutputDescriptor_new(long _outpoint_arg, long _per_commitment_point_arg, short _to_self_delay_arg, long _output_arg, long _revocation_pubkey_arg, long _channel_keys_id_arg, long _channel_value_satoshis_arg); // uint64_t DelayedPaymentOutputDescriptor_clone_ptr(LDKDelayedPaymentOutputDescriptor *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DelayedPaymentOutputDescriptor_clone_ptr")] public static extern long DelayedPaymentOutputDescriptor_clone_ptr(long _arg); @@ -10898,7 +11910,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_StaticPaymentOutputDescriptor_eq")] public static extern bool StaticPaymentOutputDescriptor_eq(long _a, long _b); // MUST_USE_RES struct LDKCOption_CVec_u8ZZ StaticPaymentOutputDescriptor_witness_script(const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_StaticPaymentOutputDescriptor_witness_script")] public static extern long StaticPaymentOutputDescriptor_witness_script(long _this_arg); - // MUST_USE_RES uintptr_t StaticPaymentOutputDescriptor_max_witness_length(const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR this_arg); + // MUST_USE_RES uint64_t StaticPaymentOutputDescriptor_max_witness_length(const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_StaticPaymentOutputDescriptor_max_witness_length")] public static extern long StaticPaymentOutputDescriptor_max_witness_length(long _this_arg); // struct LDKCVec_u8Z StaticPaymentOutputDescriptor_write(const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_StaticPaymentOutputDescriptor_write")] public static extern long StaticPaymentOutputDescriptor_write(long _obj); @@ -10910,8 +11922,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_clone_ptr")] public static extern long SpendableOutputDescriptor_clone_ptr(long _arg); // struct LDKSpendableOutputDescriptor SpendableOutputDescriptor_clone(const struct LDKSpendableOutputDescriptor *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_clone")] public static extern long SpendableOutputDescriptor_clone(long _orig); - // struct LDKSpendableOutputDescriptor SpendableOutputDescriptor_static_output(struct LDKOutPoint outpoint, struct LDKTxOut output); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_static_output")] public static extern long SpendableOutputDescriptor_static_output(long _outpoint, long _output); + // struct LDKSpendableOutputDescriptor SpendableOutputDescriptor_static_output(struct LDKOutPoint outpoint, struct LDKTxOut output, struct LDKThirtyTwoBytes channel_keys_id); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_static_output")] public static extern long SpendableOutputDescriptor_static_output(long _outpoint, long _output, long _channel_keys_id); // struct LDKSpendableOutputDescriptor SpendableOutputDescriptor_delayed_payment_output(struct LDKDelayedPaymentOutputDescriptor a); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_delayed_payment_output")] public static extern long SpendableOutputDescriptor_delayed_payment_output(long _a); // struct LDKSpendableOutputDescriptor SpendableOutputDescriptor_static_payment_output(struct LDKStaticPaymentOutputDescriptor a); @@ -10924,7 +11936,7 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_write")] public static extern long SpendableOutputDescriptor_write(long _obj); // struct LDKCResult_SpendableOutputDescriptorDecodeErrorZ SpendableOutputDescriptor_read(struct LDKu8slice ser); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_read")] public static extern long SpendableOutputDescriptor_read(long _ser); - // MUST_USE_RES struct LDKCResult_C2Tuple_CVec_u8ZusizeZNoneZ SpendableOutputDescriptor_create_spendable_outputs_psbt(struct LDKCVec_SpendableOutputDescriptorZ descriptors, struct LDKCVec_TxOutZ outputs, struct LDKCVec_u8Z change_destination_script, uint32_t feerate_sat_per_1000_weight, struct LDKCOption_u32Z locktime); + // MUST_USE_RES struct LDKCResult_C2Tuple_CVec_u8Zu64ZNoneZ SpendableOutputDescriptor_create_spendable_outputs_psbt(struct LDKCVec_SpendableOutputDescriptorZ descriptors, struct LDKCVec_TxOutZ outputs, struct LDKCVec_u8Z change_destination_script, uint32_t feerate_sat_per_1000_weight, struct LDKCOption_u32Z locktime); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SpendableOutputDescriptor_create_spendable_outputs_psbt")] public static extern long SpendableOutputDescriptor_create_spendable_outputs_psbt(long _descriptors, long _outputs, long _change_destination_script, int _feerate_sat_per_1000_weight, long _locktime); // void ChannelDerivationParameters_free(struct LDKChannelDerivationParameters this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelDerivationParameters_free")] public static extern void ChannelDerivationParameters_free(long _this_obj); @@ -11008,14 +12020,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_HTLCDescriptor_derive_channel_signer")] public static extern long HTLCDescriptor_derive_channel_signer(long _this_arg, long _signer_provider); // void ChannelSigner_free(struct LDKChannelSigner this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ChannelSigner_free")] public static extern void ChannelSigner_free(long _this_ptr); - // void EcdsaChannelSigner_free(struct LDKEcdsaChannelSigner this_ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_free")] public static extern void EcdsaChannelSigner_free(long _this_ptr); - // uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_clone_ptr")] public static extern long WriteableEcdsaChannelSigner_clone_ptr(long _arg); - // struct LDKWriteableEcdsaChannelSigner WriteableEcdsaChannelSigner_clone(const struct LDKWriteableEcdsaChannelSigner *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_clone")] public static extern long WriteableEcdsaChannelSigner_clone(long _orig); - // void WriteableEcdsaChannelSigner_free(struct LDKWriteableEcdsaChannelSigner this_ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_free")] public static extern void WriteableEcdsaChannelSigner_free(long _this_ptr); // enum LDKRecipient Recipient_clone(const enum LDKRecipient *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Recipient_clone")] public static extern Recipient Recipient_clone(long _orig); // enum LDKRecipient Recipient_node(void); @@ -11074,9 +12078,9 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InMemorySigner_get_channel_parameters")] public static extern long InMemorySigner_get_channel_parameters(long _this_arg); // MUST_USE_RES struct LDKChannelTypeFeatures InMemorySigner_channel_type_features(const struct LDKInMemorySigner *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InMemorySigner_channel_type_features")] public static extern long InMemorySigner_channel_type_features(long _this_arg); - // MUST_USE_RES struct LDKCResult_CVec_CVec_u8ZZNoneZ InMemorySigner_sign_counterparty_payment_input(const struct LDKInMemorySigner *NONNULL_PTR this_arg, struct LDKTransaction spend_tx, uintptr_t input_idx, const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR descriptor); + // MUST_USE_RES struct LDKCResult_WitnessNoneZ InMemorySigner_sign_counterparty_payment_input(const struct LDKInMemorySigner *NONNULL_PTR this_arg, struct LDKTransaction spend_tx, uintptr_t input_idx, const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR descriptor); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InMemorySigner_sign_counterparty_payment_input")] public static extern long InMemorySigner_sign_counterparty_payment_input(long _this_arg, long _spend_tx, long _input_idx, long _descriptor); - // MUST_USE_RES struct LDKCResult_CVec_CVec_u8ZZNoneZ InMemorySigner_sign_dynamic_p2wsh_input(const struct LDKInMemorySigner *NONNULL_PTR this_arg, struct LDKTransaction spend_tx, uintptr_t input_idx, const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR descriptor); + // MUST_USE_RES struct LDKCResult_WitnessNoneZ InMemorySigner_sign_dynamic_p2wsh_input(const struct LDKInMemorySigner *NONNULL_PTR this_arg, struct LDKTransaction spend_tx, uintptr_t input_idx, const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR descriptor); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InMemorySigner_sign_dynamic_p2wsh_input")] public static extern long InMemorySigner_sign_dynamic_p2wsh_input(long _this_arg, long _spend_tx, long _input_idx, long _descriptor); // struct LDKEntropySource InMemorySigner_as_EntropySource(const struct LDKInMemorySigner *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_InMemorySigner_as_EntropySource")] public static extern long InMemorySigner_as_EntropySource(long _this_arg); @@ -11126,14 +12130,22 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PhantomKeysManager_get_node_secret_key")] public static extern long PhantomKeysManager_get_node_secret_key(long _this_arg); // MUST_USE_RES struct LDKSecretKey PhantomKeysManager_get_phantom_node_secret_key(const struct LDKPhantomKeysManager *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PhantomKeysManager_get_phantom_node_secret_key")] public static extern long PhantomKeysManager_get_phantom_node_secret_key(long _this_arg); + // void EcdsaChannelSigner_free(struct LDKEcdsaChannelSigner this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_EcdsaChannelSigner_free")] public static extern void EcdsaChannelSigner_free(long _this_ptr); + // uint64_t WriteableEcdsaChannelSigner_clone_ptr(LDKWriteableEcdsaChannelSigner *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_clone_ptr")] public static extern long WriteableEcdsaChannelSigner_clone_ptr(long _arg); + // struct LDKWriteableEcdsaChannelSigner WriteableEcdsaChannelSigner_clone(const struct LDKWriteableEcdsaChannelSigner *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_clone")] public static extern long WriteableEcdsaChannelSigner_clone(long _orig); + // void WriteableEcdsaChannelSigner_free(struct LDKWriteableEcdsaChannelSigner this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_WriteableEcdsaChannelSigner_free")] public static extern void WriteableEcdsaChannelSigner_free(long _this_ptr); // void OnionMessenger_free(struct LDKOnionMessenger this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessenger_free")] public static extern void OnionMessenger_free(long _this_obj); // void MessageRouter_free(struct LDKMessageRouter this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageRouter_free")] public static extern void MessageRouter_free(long _this_ptr); // void DefaultMessageRouter_free(struct LDKDefaultMessageRouter this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultMessageRouter_free")] public static extern void DefaultMessageRouter_free(long _this_obj); - // MUST_USE_RES struct LDKDefaultMessageRouter DefaultMessageRouter_new(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultMessageRouter_new")] public static extern long DefaultMessageRouter_new(); + // MUST_USE_RES struct LDKDefaultMessageRouter DefaultMessageRouter_new(const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKEntropySource entropy_source); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultMessageRouter_new")] public static extern long DefaultMessageRouter_new(long _network_graph, long _entropy_source); // struct LDKMessageRouter DefaultMessageRouter_as_MessageRouter(const struct LDKDefaultMessageRouter *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_DefaultMessageRouter_as_MessageRouter")] public static extern long DefaultMessageRouter_as_MessageRouter(long _this_arg); // void OnionMessagePath_free(struct LDKOnionMessagePath this_obj); @@ -11146,12 +12158,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_get_destination")] public static extern long OnionMessagePath_get_destination(long _this_ptr); // void OnionMessagePath_set_destination(struct LDKOnionMessagePath *NONNULL_PTR this_ptr, struct LDKDestination val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_set_destination")] public static extern void OnionMessagePath_set_destination(long _this_ptr, long _val); - // MUST_USE_RES struct LDKOnionMessagePath OnionMessagePath_new(struct LDKCVec_PublicKeyZ intermediate_nodes_arg, struct LDKDestination destination_arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_new")] public static extern long OnionMessagePath_new(long _intermediate_nodes_arg, long _destination_arg); + // struct LDKCOption_CVec_SocketAddressZZ OnionMessagePath_get_first_node_addresses(const struct LDKOnionMessagePath *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_get_first_node_addresses")] public static extern long OnionMessagePath_get_first_node_addresses(long _this_ptr); + // void OnionMessagePath_set_first_node_addresses(struct LDKOnionMessagePath *NONNULL_PTR this_ptr, struct LDKCOption_CVec_SocketAddressZZ val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_set_first_node_addresses")] public static extern void OnionMessagePath_set_first_node_addresses(long _this_ptr, long _val); + // MUST_USE_RES struct LDKOnionMessagePath OnionMessagePath_new(struct LDKCVec_PublicKeyZ intermediate_nodes_arg, struct LDKDestination destination_arg, struct LDKCOption_CVec_SocketAddressZZ first_node_addresses_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_new")] public static extern long OnionMessagePath_new(long _intermediate_nodes_arg, long _destination_arg, long _first_node_addresses_arg); // uint64_t OnionMessagePath_clone_ptr(LDKOnionMessagePath *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_clone_ptr")] public static extern long OnionMessagePath_clone_ptr(long _arg); // struct LDKOnionMessagePath OnionMessagePath_clone(const struct LDKOnionMessagePath *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_clone")] public static extern long OnionMessagePath_clone(long _orig); + // MUST_USE_RES struct LDKPublicKey OnionMessagePath_first_node(const struct LDKOnionMessagePath *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessagePath_first_node")] public static extern long OnionMessagePath_first_node(long _this_arg); // void Destination_free(struct LDKDestination this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Destination_free")] public static extern void Destination_free(long _this_ptr); // uint64_t Destination_clone_ptr(LDKDestination *NONNULL_PTR arg); @@ -11162,6 +12180,18 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Destination_node")] public static extern long Destination_node(long _a); // struct LDKDestination Destination_blinded_path(struct LDKBlindedPath a); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Destination_blinded_path")] public static extern long Destination_blinded_path(long _a); + // void SendSuccess_free(struct LDKSendSuccess this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_free")] public static extern void SendSuccess_free(long _this_ptr); + // uint64_t SendSuccess_clone_ptr(LDKSendSuccess *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_clone_ptr")] public static extern long SendSuccess_clone_ptr(long _arg); + // struct LDKSendSuccess SendSuccess_clone(const struct LDKSendSuccess *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_clone")] public static extern long SendSuccess_clone(long _orig); + // struct LDKSendSuccess SendSuccess_buffered(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_buffered")] public static extern long SendSuccess_buffered(); + // struct LDKSendSuccess SendSuccess_buffered_awaiting_connection(struct LDKPublicKey a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_buffered_awaiting_connection")] public static extern long SendSuccess_buffered_awaiting_connection(long _a); + // bool SendSuccess_eq(const struct LDKSendSuccess *NONNULL_PTR a, const struct LDKSendSuccess *NONNULL_PTR b); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendSuccess_eq")] public static extern bool SendSuccess_eq(long _a, long _b); // void SendError_free(struct LDKSendError this_ptr); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_free")] public static extern void SendError_free(long _this_ptr); // uint64_t SendError_clone_ptr(LDKSendError *NONNULL_PTR arg); @@ -11174,8 +12204,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_too_big_packet")] public static extern long SendError_too_big_packet(); // struct LDKSendError SendError_too_few_blinded_hops(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_too_few_blinded_hops")] public static extern long SendError_too_few_blinded_hops(); - // struct LDKSendError SendError_invalid_first_hop(void); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_invalid_first_hop")] public static extern long SendError_invalid_first_hop(); + // struct LDKSendError SendError_invalid_first_hop(struct LDKPublicKey a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_invalid_first_hop")] public static extern long SendError_invalid_first_hop(long _a); + // struct LDKSendError SendError_path_not_found(void); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_path_not_found")] public static extern long SendError_path_not_found(); // struct LDKSendError SendError_invalid_message(void); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SendError_invalid_message")] public static extern long SendError_invalid_message(); // struct LDKSendError SendError_buffer_full(void); @@ -11198,14 +12230,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PeeledOnion_forward")] public static extern long PeeledOnion_forward(long _a, long _b); // struct LDKPeeledOnion PeeledOnion_receive(struct LDKParsedOnionMessageContents a, struct LDKThirtyTwoBytes b, struct LDKBlindedPath c); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PeeledOnion_receive")] public static extern long PeeledOnion_receive(long _a, long _b, long _c); - // struct LDKCResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ create_onion_message(const struct LDKEntropySource *NONNULL_PTR entropy_source, const struct LDKNodeSigner *NONNULL_PTR node_signer, struct LDKOnionMessagePath path, struct LDKOnionMessageContents contents, struct LDKBlindedPath reply_path); + // struct LDKCResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ create_onion_message(const struct LDKEntropySource *NONNULL_PTR entropy_source, const struct LDKNodeSigner *NONNULL_PTR node_signer, struct LDKOnionMessagePath path, struct LDKOnionMessageContents contents, struct LDKBlindedPath reply_path); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_create_onion_message")] public static extern long create_onion_message(long _entropy_source, long _node_signer, long _path, long _contents, long _reply_path); // struct LDKCResult_PeeledOnionNoneZ peel_onion_message(const struct LDKOnionMessage *NONNULL_PTR msg, struct LDKNodeSigner node_signer, struct LDKLogger logger, struct LDKCustomOnionMessageHandler custom_handler); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_peel_onion_message")] public static extern long peel_onion_message(long _msg, long _node_signer, long _logger, long _custom_handler); // MUST_USE_RES struct LDKOnionMessenger OnionMessenger_new(struct LDKEntropySource entropy_source, struct LDKNodeSigner node_signer, struct LDKLogger logger, struct LDKMessageRouter message_router, struct LDKOffersMessageHandler offers_handler, struct LDKCustomOnionMessageHandler custom_handler); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessenger_new")] public static extern long OnionMessenger_new(long _entropy_source, long _node_signer, long _logger, long _message_router, long _offers_handler, long _custom_handler); - // MUST_USE_RES struct LDKCResult_NoneSendErrorZ OnionMessenger_send_onion_message(const struct LDKOnionMessenger *NONNULL_PTR this_arg, struct LDKOnionMessagePath path, struct LDKOnionMessageContents contents, struct LDKBlindedPath reply_path); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessenger_send_onion_message")] public static extern long OnionMessenger_send_onion_message(long _this_arg, long _path, long _contents, long _reply_path); + // MUST_USE_RES struct LDKCResult_SendSuccessSendErrorZ OnionMessenger_send_onion_message(const struct LDKOnionMessenger *NONNULL_PTR this_arg, struct LDKOnionMessageContents contents, struct LDKDestination destination, struct LDKBlindedPath reply_path); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessenger_send_onion_message")] public static extern long OnionMessenger_send_onion_message(long _this_arg, long _contents, long _destination, long _reply_path); // struct LDKOnionMessageHandler OnionMessenger_as_OnionMessageHandler(const struct LDKOnionMessenger *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OnionMessenger_as_OnionMessageHandler")] public static extern long OnionMessenger_as_OnionMessageHandler(long _this_arg); // void OffersMessageHandler_free(struct LDKOffersMessageHandler this_ptr); @@ -11224,6 +12256,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OffersMessage_invoice_error")] public static extern long OffersMessage_invoice_error(long _a); // MUST_USE_RES bool OffersMessage_is_known_type(uint64_t tlv_type); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OffersMessage_is_known_type")] public static extern bool OffersMessage_is_known_type(long _tlv_type); + // struct LDKOnionMessageContents OffersMessage_as_OnionMessageContents(const struct LDKOffersMessage *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OffersMessage_as_OnionMessageContents")] public static extern long OffersMessage_as_OnionMessageContents(long _this_arg); // struct LDKCVec_u8Z OffersMessage_write(const struct LDKOffersMessage *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_OffersMessage_write")] public static extern long OffersMessage_write(long _obj); // struct LDKCResult_OffersMessageDecodeErrorZ OffersMessage_read(struct LDKu8slice ser, uint64_t arg_a, const struct LDKLogger *NONNULL_PTR arg_b); @@ -11252,6 +12286,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Packet_clone_ptr")] public static extern long Packet_clone_ptr(long _arg); // struct LDKPacket Packet_clone(const struct LDKPacket *NONNULL_PTR orig); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Packet_clone")] public static extern long Packet_clone(long _orig); + // uint64_t Packet_hash(const struct LDKPacket *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Packet_hash")] public static extern long Packet_hash(long _o); // bool Packet_eq(const struct LDKPacket *NONNULL_PTR a, const struct LDKPacket *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Packet_eq")] public static extern bool Packet_eq(long _a, long _b); // struct LDKCVec_u8Z Packet_write(const struct LDKPacket *NONNULL_PTR obj); @@ -11326,6 +12362,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPath_new_for_message")] public static extern long BlindedPath_new_for_message(long _node_pks, long _entropy_source); // MUST_USE_RES struct LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ BlindedPath_one_hop_for_payment(struct LDKPublicKey payee_node_id, struct LDKReceiveTlvs payee_tlvs, const struct LDKEntropySource *NONNULL_PTR entropy_source); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPath_one_hop_for_payment")] public static extern long BlindedPath_one_hop_for_payment(long _payee_node_id, long _payee_tlvs, long _entropy_source); + // MUST_USE_RES struct LDKCResult_C2Tuple_BlindedPayInfoBlindedPathZNoneZ BlindedPath_new_for_payment(struct LDKCVec_ForwardNodeZ intermediate_nodes, struct LDKPublicKey payee_node_id, struct LDKReceiveTlvs payee_tlvs, uint64_t htlc_maximum_msat, const struct LDKEntropySource *NONNULL_PTR entropy_source); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPath_new_for_payment")] public static extern long BlindedPath_new_for_payment(long _intermediate_nodes, long _payee_node_id, long _payee_tlvs, long _htlc_maximum_msat, long _entropy_source); // struct LDKCVec_u8Z BlindedPath_write(const struct LDKBlindedPath *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_BlindedPath_write")] public static extern long BlindedPath_write(long _obj); // struct LDKCResult_BlindedPathDecodeErrorZ BlindedPath_read(struct LDKu8slice ser); @@ -11434,8 +12472,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ForwardTlvs_write")] public static extern long ForwardTlvs_write(long _obj); // struct LDKCVec_u8Z ReceiveTlvs_write(const struct LDKReceiveTlvs *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReceiveTlvs_write")] public static extern long ReceiveTlvs_write(long _obj); - // struct LDKCResult_ReceiveTlvsDecodeErrorZ ReceiveTlvs_read(struct LDKu8slice ser); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ReceiveTlvs_read")] public static extern long ReceiveTlvs_read(long _ser); // struct LDKCVec_u8Z PaymentRelay_write(const struct LDKPaymentRelay *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentRelay_write")] public static extern long PaymentRelay_write(long _obj); // struct LDKCResult_PaymentRelayDecodeErrorZ PaymentRelay_read(struct LDKu8slice ser); @@ -11456,6 +12492,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentPurpose_spontaneous_payment")] public static extern long PaymentPurpose_spontaneous_payment(long _a); // bool PaymentPurpose_eq(const struct LDKPaymentPurpose *NONNULL_PTR a, const struct LDKPaymentPurpose *NONNULL_PTR b); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentPurpose_eq")] public static extern bool PaymentPurpose_eq(long _a, long _b); + // MUST_USE_RES struct LDKCOption_ThirtyTwoBytesZ PaymentPurpose_preimage(const struct LDKPaymentPurpose *NONNULL_PTR this_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentPurpose_preimage")] public static extern long PaymentPurpose_preimage(long _this_arg); // struct LDKCVec_u8Z PaymentPurpose_write(const struct LDKPaymentPurpose *NONNULL_PTR obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentPurpose_write")] public static extern long PaymentPurpose_write(long _obj); // struct LDKCResult_PaymentPurposeDecodeErrorZ PaymentPurpose_read(struct LDKu8slice ser); @@ -11478,8 +12516,12 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_get_value_msat")] public static extern long ClaimedHTLC_get_value_msat(long _this_ptr); // void ClaimedHTLC_set_value_msat(struct LDKClaimedHTLC *NONNULL_PTR this_ptr, uint64_t val); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_set_value_msat")] public static extern void ClaimedHTLC_set_value_msat(long _this_ptr, long _val); - // MUST_USE_RES struct LDKClaimedHTLC ClaimedHTLC_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKU128 user_channel_id_arg, uint32_t cltv_expiry_arg, uint64_t value_msat_arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_new")] public static extern long ClaimedHTLC_new(long _channel_id_arg, long _user_channel_id_arg, int _cltv_expiry_arg, long _value_msat_arg); + // uint64_t ClaimedHTLC_get_counterparty_skimmed_fee_msat(const struct LDKClaimedHTLC *NONNULL_PTR this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_get_counterparty_skimmed_fee_msat")] public static extern long ClaimedHTLC_get_counterparty_skimmed_fee_msat(long _this_ptr); + // void ClaimedHTLC_set_counterparty_skimmed_fee_msat(struct LDKClaimedHTLC *NONNULL_PTR this_ptr, uint64_t val); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_set_counterparty_skimmed_fee_msat")] public static extern void ClaimedHTLC_set_counterparty_skimmed_fee_msat(long _this_ptr, long _val); + // MUST_USE_RES struct LDKClaimedHTLC ClaimedHTLC_new(struct LDKThirtyTwoBytes channel_id_arg, struct LDKU128 user_channel_id_arg, uint32_t cltv_expiry_arg, uint64_t value_msat_arg, uint64_t counterparty_skimmed_fee_msat_arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_new")] public static extern long ClaimedHTLC_new(long _channel_id_arg, long _user_channel_id_arg, int _cltv_expiry_arg, long _value_msat_arg, long _counterparty_skimmed_fee_msat_arg); // uint64_t ClaimedHTLC_clone_ptr(LDKClaimedHTLC *NONNULL_PTR arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ClaimedHTLC_clone_ptr")] public static extern long ClaimedHTLC_clone_ptr(long _arg); // struct LDKClaimedHTLC ClaimedHTLC_clone(const struct LDKClaimedHTLC *NONNULL_PTR orig); @@ -11590,6 +12632,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_payment_claimable")] public static extern long Event_payment_claimable(long _receiver_node_id, long _payment_hash, long _onion_fields, long _amount_msat, long _counterparty_skimmed_fee_msat, long _purpose, long _via_channel_id, long _via_user_channel_id, long _claim_deadline); // struct LDKEvent Event_payment_claimed(struct LDKPublicKey receiver_node_id, struct LDKThirtyTwoBytes payment_hash, uint64_t amount_msat, struct LDKPaymentPurpose purpose, struct LDKCVec_ClaimedHTLCZ htlcs, struct LDKCOption_u64Z sender_intended_total_msat); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_payment_claimed")] public static extern long Event_payment_claimed(long _receiver_node_id, long _payment_hash, long _amount_msat, long _purpose, long _htlcs, long _sender_intended_total_msat); + // struct LDKEvent Event_connection_needed(struct LDKPublicKey node_id, struct LDKCVec_SocketAddressZ addresses); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_connection_needed")] public static extern long Event_connection_needed(long _node_id, long _addresses); // struct LDKEvent Event_invoice_request_failed(struct LDKThirtyTwoBytes payment_id); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_invoice_request_failed")] public static extern long Event_invoice_request_failed(long _payment_id); // struct LDKEvent Event_payment_sent(struct LDKCOption_ThirtyTwoBytesZ payment_id, struct LDKThirtyTwoBytes payment_preimage, struct LDKThirtyTwoBytes payment_hash, struct LDKCOption_u64Z fee_paid_msat); @@ -11616,8 +12660,8 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_channel_pending")] public static extern long Event_channel_pending(long _channel_id, long _user_channel_id, long _former_temporary_channel_id, long _counterparty_node_id, long _funding_txo); // struct LDKEvent Event_channel_ready(struct LDKThirtyTwoBytes channel_id, struct LDKU128 user_channel_id, struct LDKPublicKey counterparty_node_id, struct LDKChannelTypeFeatures channel_type); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_channel_ready")] public static extern long Event_channel_ready(long _channel_id, long _user_channel_id, long _counterparty_node_id, long _channel_type); - // struct LDKEvent Event_channel_closed(struct LDKThirtyTwoBytes channel_id, struct LDKU128 user_channel_id, struct LDKClosureReason reason, struct LDKPublicKey counterparty_node_id, struct LDKCOption_u64Z channel_capacity_sats); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_channel_closed")] public static extern long Event_channel_closed(long _channel_id, long _user_channel_id, long _reason, long _counterparty_node_id, long _channel_capacity_sats); + // struct LDKEvent Event_channel_closed(struct LDKThirtyTwoBytes channel_id, struct LDKU128 user_channel_id, struct LDKClosureReason reason, struct LDKPublicKey counterparty_node_id, struct LDKCOption_u64Z channel_capacity_sats, struct LDKOutPoint channel_funding_txo); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_channel_closed")] public static extern long Event_channel_closed(long _channel_id, long _user_channel_id, long _reason, long _counterparty_node_id, long _channel_capacity_sats, long _channel_funding_txo); // struct LDKEvent Event_discard_funding(struct LDKThirtyTwoBytes channel_id, struct LDKTransaction transaction); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Event_discard_funding")] public static extern long Event_discard_funding(long _channel_id, long _transaction); // struct LDKEvent Event_open_channel_request(struct LDKThirtyTwoBytes temporary_channel_id, struct LDKPublicKey counterparty_node_id, uint64_t funding_satoshis, uint64_t push_msat, struct LDKChannelTypeFeatures channel_type); @@ -11650,6 +12694,14 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_funding_created")] public static extern long MessageSendEvent_send_funding_created(long _node_id, long _msg); // struct LDKMessageSendEvent MessageSendEvent_send_funding_signed(struct LDKPublicKey node_id, struct LDKFundingSigned msg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_funding_signed")] public static extern long MessageSendEvent_send_funding_signed(long _node_id, long _msg); + // struct LDKMessageSendEvent MessageSendEvent_send_stfu(struct LDKPublicKey node_id, struct LDKStfu msg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_stfu")] public static extern long MessageSendEvent_send_stfu(long _node_id, long _msg); + // struct LDKMessageSendEvent MessageSendEvent_send_splice(struct LDKPublicKey node_id, struct LDKSplice msg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_splice")] public static extern long MessageSendEvent_send_splice(long _node_id, long _msg); + // struct LDKMessageSendEvent MessageSendEvent_send_splice_ack(struct LDKPublicKey node_id, struct LDKSpliceAck msg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_splice_ack")] public static extern long MessageSendEvent_send_splice_ack(long _node_id, long _msg); + // struct LDKMessageSendEvent MessageSendEvent_send_splice_locked(struct LDKPublicKey node_id, struct LDKSpliceLocked msg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_splice_locked")] public static extern long MessageSendEvent_send_splice_locked(long _node_id, long _msg); // struct LDKMessageSendEvent MessageSendEvent_send_tx_add_input(struct LDKPublicKey node_id, struct LDKTxAddInput msg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_MessageSendEvent_send_tx_add_input")] public static extern long MessageSendEvent_send_tx_add_input(long _node_id, long _msg); // struct LDKMessageSendEvent MessageSendEvent_send_tx_add_output(struct LDKPublicKey node_id, struct LDKTxAddOutput msg); @@ -12200,8 +13252,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Bolt11Invoice_amount_milli_satoshis")] public static extern long Bolt11Invoice_amount_milli_satoshis(long _this_arg); // MUST_USE_RES struct LDKCResult_DescriptionCreationErrorZ Description_new(struct LDKStr description); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Description_new")] public static extern long Description_new(long _description); - // MUST_USE_RES struct LDKStr Description_into_inner(struct LDKDescription this_arg); + // MUST_USE_RES struct LDKUntrustedString Description_into_inner(struct LDKDescription this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Description_into_inner")] public static extern long Description_into_inner(long _this_arg); + // struct LDKStr Description_to_str(const struct LDKDescription *NONNULL_PTR o); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Description_to_str")] public static extern long Description_to_str(long _o); // MUST_USE_RES struct LDKExpiryTime ExpiryTime_from_seconds(uint64_t seconds); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ExpiryTime_from_seconds")] public static extern long ExpiryTime_from_seconds(long _seconds); // MUST_USE_RES struct LDKExpiryTime ExpiryTime_from_duration(uint64_t duration); @@ -12272,42 +13326,10 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignOrCreationError_eq")] public static extern bool SignOrCreationError_eq(long _a, long _b); // struct LDKStr SignOrCreationError_to_str(const struct LDKSignOrCreationError *NONNULL_PTR o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SignOrCreationError_to_str")] public static extern long SignOrCreationError_to_str(long _o); - // struct LDKCResult_ThirtyTwoBytesPaymentErrorZ pay_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice, struct LDKRetry retry_strategy, const struct LDKChannelManager *NONNULL_PTR channelmanager); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_pay_invoice")] public static extern long pay_invoice(long _invoice, long _retry_strategy, long _channelmanager); - // struct LDKCResult_NonePaymentErrorZ pay_invoice_with_id(const struct LDKBolt11Invoice *NONNULL_PTR invoice, struct LDKThirtyTwoBytes payment_id, struct LDKRetry retry_strategy, const struct LDKChannelManager *NONNULL_PTR channelmanager); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_pay_invoice_with_id")] public static extern long pay_invoice_with_id(long _invoice, long _payment_id, long _retry_strategy, long _channelmanager); - // struct LDKCResult_ThirtyTwoBytesPaymentErrorZ pay_zero_value_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice, uint64_t amount_msats, struct LDKRetry retry_strategy, const struct LDKChannelManager *NONNULL_PTR channelmanager); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_pay_zero_value_invoice")] public static extern long pay_zero_value_invoice(long _invoice, long _amount_msats, long _retry_strategy, long _channelmanager); - // struct LDKCResult_NonePaymentErrorZ pay_zero_value_invoice_with_id(const struct LDKBolt11Invoice *NONNULL_PTR invoice, uint64_t amount_msats, struct LDKThirtyTwoBytes payment_id, struct LDKRetry retry_strategy, const struct LDKChannelManager *NONNULL_PTR channelmanager); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_pay_zero_value_invoice_with_id")] public static extern long pay_zero_value_invoice_with_id(long _invoice, long _amount_msats, long _payment_id, long _retry_strategy, long _channelmanager); - // struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ preflight_probe_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice, const struct LDKChannelManager *NONNULL_PTR channelmanager, struct LDKCOption_u64Z liquidity_limit_multiplier); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_preflight_probe_invoice")] public static extern long preflight_probe_invoice(long _invoice, long _channelmanager, long _liquidity_limit_multiplier); - // struct LDKCResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ preflight_probe_zero_value_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice, uint64_t amount_msat, const struct LDKChannelManager *NONNULL_PTR channelmanager, struct LDKCOption_u64Z liquidity_limit_multiplier); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_preflight_probe_zero_value_invoice")] public static extern long preflight_probe_zero_value_invoice(long _invoice, long _amount_msat, long _channelmanager, long _liquidity_limit_multiplier); - // void PaymentError_free(struct LDKPaymentError this_ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_free")] public static extern void PaymentError_free(long _this_ptr); - // uint64_t PaymentError_clone_ptr(LDKPaymentError *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_clone_ptr")] public static extern long PaymentError_clone_ptr(long _arg); - // struct LDKPaymentError PaymentError_clone(const struct LDKPaymentError *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_clone")] public static extern long PaymentError_clone(long _orig); - // struct LDKPaymentError PaymentError_invoice(struct LDKStr a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_invoice")] public static extern long PaymentError_invoice(long _a); - // struct LDKPaymentError PaymentError_sending(enum LDKRetryableSendFailure a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_sending")] public static extern long PaymentError_sending(RetryableSendFailure _a); - // bool PaymentError_eq(const struct LDKPaymentError *NONNULL_PTR a, const struct LDKPaymentError *NONNULL_PTR b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_PaymentError_eq")] public static extern bool PaymentError_eq(long _a, long _b); - // void ProbingError_free(struct LDKProbingError this_ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_free")] public static extern void ProbingError_free(long _this_ptr); - // uint64_t ProbingError_clone_ptr(LDKProbingError *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_clone_ptr")] public static extern long ProbingError_clone_ptr(long _arg); - // struct LDKProbingError ProbingError_clone(const struct LDKProbingError *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_clone")] public static extern long ProbingError_clone(long _orig); - // struct LDKProbingError ProbingError_invoice(struct LDKStr a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_invoice")] public static extern long ProbingError_invoice(long _a); - // struct LDKProbingError ProbingError_sending(struct LDKProbeSendFailure a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_sending")] public static extern long ProbingError_sending(long _a); - // bool ProbingError_eq(const struct LDKProbingError *NONNULL_PTR a, const struct LDKProbingError *NONNULL_PTR b); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_ProbingError_eq")] public static extern bool ProbingError_eq(long _a, long _b); + // struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ payment_parameters_from_zero_amount_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice, uint64_t amount_msat); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_payment_parameters_from_zero_amount_invoice")] public static extern long payment_parameters_from_zero_amount_invoice(long _invoice, long _amount_msat); + // struct LDKCResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ payment_parameters_from_invoice(const struct LDKBolt11Invoice *NONNULL_PTR invoice); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_payment_parameters_from_invoice")] public static extern long payment_parameters_from_invoice(long _invoice); // struct LDKCResult_Bolt11InvoiceSignOrCreationErrorZ create_phantom_invoice(struct LDKCOption_u64Z amt_msat, struct LDKCOption_ThirtyTwoBytesZ payment_hash, struct LDKStr description, uint32_t invoice_expiry_delta_secs, struct LDKCVec_PhantomRouteHintsZ phantom_route_hints, struct LDKEntropySource entropy_source, struct LDKNodeSigner node_signer, struct LDKLogger logger, enum LDKCurrency network, struct LDKCOption_u16Z min_final_cltv_expiry_delta, uint64_t duration_since_epoch); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_create_phantom_invoice")] public static extern long create_phantom_invoice(long _amt_msat, long _payment_hash, long _description, int _invoice_expiry_delta_secs, long _phantom_route_hints, long _entropy_source, long _node_signer, long _logger, Currency _network, long _min_final_cltv_expiry_delta, long _duration_since_epoch); // struct LDKCResult_Bolt11InvoiceSignOrCreationErrorZ create_phantom_invoice_with_description_hash(struct LDKCOption_u64Z amt_msat, struct LDKCOption_ThirtyTwoBytesZ payment_hash, uint32_t invoice_expiry_delta_secs, struct LDKSha256 description_hash, struct LDKCVec_PhantomRouteHintsZ phantom_route_hints, struct LDKEntropySource entropy_source, struct LDKNodeSigner node_signer, struct LDKLogger logger, enum LDKCurrency network, struct LDKCOption_u16Z min_final_cltv_expiry_delta, uint64_t duration_since_epoch); @@ -12340,6 +13362,16 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_Currency_to_str")] public static extern long Currency_to_str(long _o); // struct LDKStr SiPrefix_to_str(const enum LDKSiPrefix *NONNULL_PTR o); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_SiPrefix_to_str")] public static extern long SiPrefix_to_str(long _o); + // void GraphSyncError_free(struct LDKGraphSyncError this_ptr); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_free")] public static extern void GraphSyncError_free(long _this_ptr); + // uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_clone_ptr")] public static extern long GraphSyncError_clone_ptr(long _arg); + // struct LDKGraphSyncError GraphSyncError_clone(const struct LDKGraphSyncError *NONNULL_PTR orig); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_clone")] public static extern long GraphSyncError_clone(long _orig); + // struct LDKGraphSyncError GraphSyncError_decode_error(struct LDKDecodeError a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_decode_error")] public static extern long GraphSyncError_decode_error(long _a); + // struct LDKGraphSyncError GraphSyncError_lightning_error(struct LDKLightningError a); + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_lightning_error")] public static extern long GraphSyncError_lightning_error(long _a); // void RapidGossipSync_free(struct LDKRapidGossipSync this_obj); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RapidGossipSync_free")] public static extern void RapidGossipSync_free(long _this_obj); // MUST_USE_RES struct LDKRapidGossipSync RapidGossipSync_new(const struct LDKNetworkGraph *NONNULL_PTR network_graph, struct LDKLogger logger); @@ -12352,16 +13384,6 @@ internal class bindings { [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RapidGossipSync_update_network_graph_no_std")] public static extern long RapidGossipSync_update_network_graph_no_std(long _this_arg, long _update_data, long _current_time_unix); // MUST_USE_RES bool RapidGossipSync_is_initial_sync_complete(const struct LDKRapidGossipSync *NONNULL_PTR this_arg); [DllImport ("ldkcsharp", EntryPoint="CS_LDK_RapidGossipSync_is_initial_sync_complete")] public static extern bool RapidGossipSync_is_initial_sync_complete(long _this_arg); - // void GraphSyncError_free(struct LDKGraphSyncError this_ptr); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_free")] public static extern void GraphSyncError_free(long _this_ptr); - // uint64_t GraphSyncError_clone_ptr(LDKGraphSyncError *NONNULL_PTR arg); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_clone_ptr")] public static extern long GraphSyncError_clone_ptr(long _arg); - // struct LDKGraphSyncError GraphSyncError_clone(const struct LDKGraphSyncError *NONNULL_PTR orig); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_clone")] public static extern long GraphSyncError_clone(long _orig); - // struct LDKGraphSyncError GraphSyncError_decode_error(struct LDKDecodeError a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_decode_error")] public static extern long GraphSyncError_decode_error(long _a); - // struct LDKGraphSyncError GraphSyncError_lightning_error(struct LDKLightningError a); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_GraphSyncError_lightning_error")] public static extern long GraphSyncError_lightning_error(long _a); static long c_callback_l_l(int obj_ptr, int fn_id, long a) { if (obj_ptr >= js_objs.Count) { @@ -12411,153 +13433,160 @@ internal class bindings { Environment.Exit(44); } return ((LDKEcdsaChannelSigner)obj).sign_channel_announcement_with_funding_key(a); - case 35: + case 36: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKNodeSigner)obj).sign_bolt12_invoice_request(a); - case 36: + case 37: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKNodeSigner)obj).sign_bolt12_invoice(a); - case 37: + case 38: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKNodeSigner)obj).sign_gossip_message(a); - case 40: + case 41: if (!(obj is LDKSignerProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKSignerProvider)obj).read_chan_signer(a); - case 57: - if (!(obj is LDKPersister)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKPersister in l_l"); - Console.Error.Flush(); - Environment.Exit(44); + case 42: + if (!(obj is LDKSignerProvider)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_l"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKSignerProvider)obj).get_destination_script(a); + case 62: + if (!(obj is LDKPersister)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKPersister in l_l"); + Console.Error.Flush(); + Environment.Exit(44); } return ((LDKPersister)obj).persist_manager(a); - case 58: + case 63: if (!(obj is LDKPersister)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKPersister in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKPersister)obj).persist_graph(a); - case 59: + case 64: if (!(obj is LDKPersister)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKPersister in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKPersister)obj).persist_scorer(a); - case 105: + case 114: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKChannelMessageHandler)obj).provided_init_features(a); - case 107: + case 116: if (!(obj is LDKOffersMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOffersMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOffersMessageHandler)obj).handle_message(a); - case 109: + case 118: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_node_announcement(a); - case 110: + case 119: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_channel_announcement(a); - case 111: + case 120: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_channel_update(a); - case 112: + case 121: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).get_next_channel_announcement(a); - case 113: + case 122: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).get_next_node_announcement(a); - case 121: + case 130: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).provided_init_features(a); - case 123: + case 133: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOnionMessageHandler)obj).next_onion_message_for_peer(a); - case 127: + case 138: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOnionMessageHandler)obj).provided_init_features(a); - case 132: + case 143: if (!(obj is LDKCustomMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomMessageHandler)obj).provided_init_features(a); - case 133: + case 144: if (!(obj is LDKCustomOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomOnionMessageHandler in l_l"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomOnionMessageHandler)obj).handle_custom_message(a); - case 143: + case 153: if (!(obj is LDKCoinSelectionSource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCoinSelectionSource in l_l"); Console.Error.Flush(); Environment.Exit(44); } - return ((LDKCoinSelectionSource)obj).sign_tx(a); - case 146: + return ((LDKCoinSelectionSource)obj).sign_psbt(a); + case 156: if (!(obj is LDKWalletSource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWalletSource in l_l"); Console.Error.Flush(); Environment.Exit(44); } - return ((LDKWalletSource)obj).sign_tx(a); + return ((LDKWalletSource)obj).sign_psbt(a); default: Console.Error.WriteLine("Got unknown function call with id " + fn_id + " from C in l_l"); Console.Error.Flush(); @@ -12566,8 +13595,9 @@ internal class bindings { } } public delegate long l_l_callback(int obj_ptr, int fn_id, long a); + static l_l_callback l_l_callback_inst = c_callback_l_l; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_l_invoker")] public static extern int register_l_l_invoker(l_l_callback callee); - static int _run_l_l_registration = register_l_l_invoker(c_callback_l_l); + static int _run_l_l_registration = register_l_l_invoker(l_l_callback_inst); static long c_callback_l_ll(int obj_ptr, int fn_id, long a, long b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_ll"); @@ -12588,20 +13618,13 @@ internal class bindings { Environment.Exit(44); } return ((LDKChannelSigner)obj).validate_holder_commitment(a, b); - case 5: - if (!(obj is LDKEcdsaChannelSigner)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_ll"); - Console.Error.Flush(); - Environment.Exit(44); - } - return ((LDKEcdsaChannelSigner)obj).sign_counterparty_commitment(a, b); - case 6: - if (!(obj is LDKEcdsaChannelSigner)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_ll"); + case 3: + if (!(obj is LDKChannelSigner)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelSigner in l_ll"); Console.Error.Flush(); Environment.Exit(44); } - return ((LDKEcdsaChannelSigner)obj).validate_counterparty_revocation(a, b); + return ((LDKChannelSigner)obj).validate_counterparty_revocation(a, b); case 13: if (!(obj is LDKEcdsaChannelSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_ll"); @@ -12609,70 +13632,77 @@ internal class bindings { Environment.Exit(44); } return ((LDKEcdsaChannelSigner)obj).sign_holder_anchor_input(a, b); - case 25: + case 26: if (!(obj is LDKUtxoLookup)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKUtxoLookup in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKUtxoLookup)obj).get_utxo(a, b); - case 26: + case 27: if (!(obj is LDKWatch)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWatch in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKWatch)obj).watch_channel(a, b); - case 39: + case 40: if (!(obj is LDKSignerProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKSignerProvider)obj).derive_channel_signer(a, b); - case 56: + case 46: + if (!(obj is LDKMessageRouter)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKMessageRouter in l_ll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKMessageRouter)obj).create_blinded_paths(a, b); + case 61: if (!(obj is LDKKVStore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKKVStore in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKKVStore)obj).list(a, b); - case 115: + case 124: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_reply_channel_range(a, b); - case 116: + case 125: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_reply_short_channel_ids_end(a, b); - case 117: + case 126: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_query_channel_range(a, b); - case 118: + case 127: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).handle_query_short_channel_ids(a, b); - case 129: + case 140: if (!(obj is LDKCustomMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomMessageHandler in l_ll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomMessageHandler)obj).handle_custom_message(a, b); - case 134: + case 145: if (!(obj is LDKCustomOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomOnionMessageHandler in l_ll"); Console.Error.Flush(); @@ -12687,8 +13717,9 @@ internal class bindings { } } public delegate long l_ll_callback(int obj_ptr, int fn_id, long a, long b); + static l_ll_callback l_ll_callback_inst = c_callback_l_ll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_ll_invoker")] public static extern int register_l_ll_invoker(l_ll_callback callee); - static int _run_l_ll_registration = register_l_ll_invoker(c_callback_l_ll); + static int _run_l_ll_registration = register_l_ll_invoker(l_ll_callback_inst); static long c_callback_l_(int obj_ptr, int fn_id) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_"); @@ -12702,7 +13733,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 3: + case 4: if (!(obj is LDKChannelSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelSigner in l_"); Console.Error.Flush(); @@ -12716,182 +13747,189 @@ internal class bindings { Environment.Exit(44); } return ((LDKWriteableEcdsaChannelSigner)obj).write(); - case 21: + case 22: if (!(obj is LDKLockableScore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKLockableScore in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKLockableScore)obj).read_lock(); - case 22: + case 23: if (!(obj is LDKLockableScore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKLockableScore in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKLockableScore)obj).write_lock(); - case 23: + case 24: if (!(obj is LDKWriteableScore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWriteableScore in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKWriteableScore)obj).write(); - case 28: + case 29: if (!(obj is LDKWatch)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWatch in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKWatch)obj).release_pending_monitor_events(); - case 30: + case 31: if (!(obj is LDKEntropySource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKEntropySource in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKEntropySource)obj).get_secure_random_bytes(); - case 31: + case 32: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKNodeSigner)obj).get_inbound_payment_key_material(); - case 41: - if (!(obj is LDKSignerProvider)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_"); - Console.Error.Flush(); - Environment.Exit(44); - } - return ((LDKSignerProvider)obj).get_destination_script(); - case 42: + case 43: if (!(obj is LDKSignerProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKSignerProvider)obj).get_shutdown_scriptpubkey(); - case 47: + case 51: if (!(obj is LDKType)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKType in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKType)obj).debug_str(); - case 48: + case 52: if (!(obj is LDKType)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKType in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKType)obj).write(); - case 49: + case 53: if (!(obj is LDKOnionMessageContents)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageContents in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOnionMessageContents)obj).tlv_type(); - case 50: + case 54: if (!(obj is LDKOnionMessageContents)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageContents in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOnionMessageContents)obj).write(); - case 69: + case 55: + if (!(obj is LDKOnionMessageContents)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageContents in l_"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKOnionMessageContents)obj).debug_str(); + case 74: if (!(obj is LDKConfirm)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKConfirm in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKConfirm)obj).get_relevant_txids(); - case 72: + case 77: if (!(obj is LDKMessageSendEventsProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKMessageSendEventsProvider in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKMessageSendEventsProvider)obj).get_and_clear_pending_msg_events(); - case 104: + case 113: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKChannelMessageHandler)obj).provided_node_features(); - case 106: + case 115: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKChannelMessageHandler)obj).get_chain_hashes(); - case 108: + case 117: if (!(obj is LDKOffersMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOffersMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOffersMessageHandler)obj).release_pending_messages(); - case 120: + case 129: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).provided_node_features(); - case 126: + case 131: + if (!(obj is LDKOnionMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in l_"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKOnionMessageHandler)obj).get_and_clear_connections_needed(); + case 137: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKOnionMessageHandler)obj).provided_node_features(); - case 130: + case 141: if (!(obj is LDKCustomMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomMessageHandler)obj).get_and_clear_pending_msg(); - case 131: + case 142: if (!(obj is LDKCustomMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomMessageHandler)obj).provided_node_features(); - case 135: + case 146: if (!(obj is LDKCustomOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomOnionMessageHandler in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKCustomOnionMessageHandler)obj).release_pending_custom_messages(); - case 139: + case 150: if (!(obj is LDKSocketDescriptor)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSocketDescriptor in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKSocketDescriptor)obj).hash(); - case 140: + case 151: if (!(obj is LDKScore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKScore in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKScore)obj).write(); - case 144: + case 154: if (!(obj is LDKWalletSource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWalletSource in l_"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKWalletSource)obj).list_confirmed_utxos(); - case 145: + case 155: if (!(obj is LDKWalletSource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWalletSource in l_"); Console.Error.Flush(); @@ -12906,8 +13944,9 @@ internal class bindings { } } public delegate long l__callback(int obj_ptr, int fn_id); + static l__callback l__callback_inst = c_callback_l_; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l__invoker")] public static extern int register_l__invoker(l__callback callee); - static int _run_l__registration = register_l__invoker(c_callback_l_); + static int _run_l__registration = register_l__invoker(l__callback_inst); static void c_callback_void_l(int obj_ptr, int fn_id, long a) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_l"); @@ -12921,7 +13960,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 4: + case 5: if (!(obj is LDKChannelSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelSigner in void_l"); Console.Error.Flush(); @@ -12929,23 +13968,15 @@ internal class bindings { } ((LDKChannelSigner)obj).provide_channel_parameters(a); return; - case 18: - if (!(obj is LDKScoreUpdate)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_l"); - Console.Error.Flush(); - Environment.Exit(44); - } - ((LDKScoreUpdate)obj).payment_path_successful(a); - return; - case 20: + case 21: if (!(obj is LDKScoreUpdate)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_l"); Console.Error.Flush(); Environment.Exit(44); } - ((LDKScoreUpdate)obj).probe_successful(a); + ((LDKScoreUpdate)obj).time_passed(a); return; - case 24: + case 25: if (!(obj is LDKLogger)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKLogger in void_l"); Console.Error.Flush(); @@ -12953,7 +13984,7 @@ internal class bindings { } ((LDKLogger)obj).log(a); return; - case 29: + case 30: if (!(obj is LDKBroadcasterInterface)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKBroadcasterInterface in void_l"); Console.Error.Flush(); @@ -12961,7 +13992,7 @@ internal class bindings { } ((LDKBroadcasterInterface)obj).broadcast_transactions(a); return; - case 52: + case 57: if (!(obj is LDKFilter)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKFilter in void_l"); Console.Error.Flush(); @@ -12969,7 +14000,7 @@ internal class bindings { } ((LDKFilter)obj).register_output(a); return; - case 67: + case 72: if (!(obj is LDKConfirm)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKConfirm in void_l"); Console.Error.Flush(); @@ -12977,7 +14008,7 @@ internal class bindings { } ((LDKConfirm)obj).transaction_unconfirmed(a); return; - case 70: + case 75: if (!(obj is LDKEventHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKEventHandler in void_l"); Console.Error.Flush(); @@ -12985,7 +14016,7 @@ internal class bindings { } ((LDKEventHandler)obj).handle_event(a); return; - case 71: + case 76: if (!(obj is LDKEventsProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKEventsProvider in void_l"); Console.Error.Flush(); @@ -12993,7 +14024,7 @@ internal class bindings { } ((LDKEventsProvider)obj).process_pending_events(a); return; - case 99: + case 108: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_l"); Console.Error.Flush(); @@ -13001,7 +14032,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).peer_disconnected(a); return; - case 125: + case 135: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in void_l"); Console.Error.Flush(); @@ -13017,8 +14048,68 @@ internal class bindings { } } public delegate void void_l_callback(int obj_ptr, int fn_id, long a); + static void_l_callback void_l_callback_inst = c_callback_void_l; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void_l_invoker")] public static extern int register_void_l_invoker(void_l_callback callee); - static int _run_void_l_registration = register_void_l_invoker(c_callback_void_l); + static int _run_void_l_registration = register_void_l_invoker(void_l_callback_inst); + static long c_callback_l_lll(int obj_ptr, int fn_id, long a, long b, long c) { + if (obj_ptr >= js_objs.Count) { + Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_lll"); + Console.Error.Flush(); + Environment.Exit(42); + } + object obj = js_objs[obj_ptr].Target; + if (obj == null) { + Console.Error.WriteLine("Got function call on GC'd JS object in l_lll"); + Console.Error.Flush(); + Environment.Exit(43); + } + switch (fn_id) { + case 6: + if (!(obj is LDKEcdsaChannelSigner)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_lll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKEcdsaChannelSigner)obj).sign_counterparty_commitment(a, b, c); + case 10: + if (!(obj is LDKEcdsaChannelSigner)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_lll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKEcdsaChannelSigner)obj).sign_holder_htlc_transaction(a, b, c); + case 16: + if (!(obj is LDKScoreLookUp)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreLookUp in l_lll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKScoreLookUp)obj).channel_penalty_msat(a, b, c); + case 45: + if (!(obj is LDKMessageRouter)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKMessageRouter in l_lll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKMessageRouter)obj).find_path(a, b, c); + case 58: + if (!(obj is LDKKVStore)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKKVStore in l_lll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKKVStore)obj).read(a, b, c); + default: + Console.Error.WriteLine("Got unknown function call with id " + fn_id + " from C in l_lll"); + Console.Error.Flush(); + Environment.Exit(45); + return 0; + } + } + public delegate long l_lll_callback(int obj_ptr, int fn_id, long a, long b, long c); + static l_lll_callback l_lll_callback_inst = c_callback_l_lll; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_lll_invoker")] public static extern int register_l_lll_invoker(l_lll_callback callee); + static int _run_l_lll_registration = register_l_lll_invoker(l_lll_callback_inst); static long c_callback_l_llll(int obj_ptr, int fn_id, long a, long b, long c, long d) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_llll"); @@ -13039,14 +14130,21 @@ internal class bindings { Environment.Exit(44); } return ((LDKEcdsaChannelSigner)obj).sign_justice_revoked_output(a, b, c, d); - case 44: + case 47: if (!(obj is LDKRouter)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRouter in l_llll"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRouter)obj).find_route(a, b, c, d); - case 54: + case 49: + if (!(obj is LDKRouter)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKRouter in l_llll"); + Console.Error.Flush(); + Environment.Exit(44); + } + return ((LDKRouter)obj).create_blinded_payment_paths(a, b, c, d); + case 59: if (!(obj is LDKKVStore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKKVStore in l_llll"); Console.Error.Flush(); @@ -13061,8 +14159,9 @@ internal class bindings { } } public delegate long l_llll_callback(int obj_ptr, int fn_id, long a, long b, long c, long d); + static l_llll_callback l_llll_callback_inst = c_callback_l_llll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_llll_invoker")] public static extern int register_l_llll_invoker(l_llll_callback callee); - static int _run_l_llll_registration = register_l_llll_invoker(c_callback_l_llll); + static int _run_l_llll_registration = register_l_llll_invoker(l_llll_callback_inst); static long c_callback_l_lllll(int obj_ptr, int fn_id, long a, long b, long c, long d, long e) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_lllll"); @@ -13090,13 +14189,6 @@ internal class bindings { Environment.Exit(44); } return ((LDKEcdsaChannelSigner)obj).sign_counterparty_htlc_transaction(a, b, c, d, e); - case 16: - if (!(obj is LDKScoreLookUp)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreLookUp in l_lllll"); - Console.Error.Flush(); - Environment.Exit(44); - } - return ((LDKScoreLookUp)obj).channel_penalty_msat(a, b, c, d, e); default: Console.Error.WriteLine("Got unknown function call with id " + fn_id + " from C in l_lllll"); Console.Error.Flush(); @@ -13105,52 +14197,49 @@ internal class bindings { } } public delegate long l_lllll_callback(int obj_ptr, int fn_id, long a, long b, long c, long d, long e); + static l_lllll_callback l_lllll_callback_inst = c_callback_l_lllll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_lllll_invoker")] public static extern int register_l_lllll_invoker(l_lllll_callback callee); - static int _run_l_lllll_registration = register_l_lllll_invoker(c_callback_l_lllll); - static long c_callback_l_lll(int obj_ptr, int fn_id, long a, long b, long c) { + static int _run_l_lllll_registration = register_l_lllll_invoker(l_lllll_callback_inst); + static void c_callback_void_lll(int obj_ptr, int fn_id, long a, long b, long c) { if (obj_ptr >= js_objs.Count) { - Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_lll"); + Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_lll"); Console.Error.Flush(); Environment.Exit(42); } object obj = js_objs[obj_ptr].Target; if (obj == null) { - Console.Error.WriteLine("Got function call on GC'd JS object in l_lll"); + Console.Error.WriteLine("Got function call on GC'd JS object in void_lll"); Console.Error.Flush(); Environment.Exit(43); } switch (fn_id) { - case 10: - if (!(obj is LDKEcdsaChannelSigner)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKEcdsaChannelSigner in l_lll"); - Console.Error.Flush(); - Environment.Exit(44); - } - return ((LDKEcdsaChannelSigner)obj).sign_holder_htlc_transaction(a, b, c); - case 53: - if (!(obj is LDKKVStore)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKKVStore in l_lll"); + case 17: + if (!(obj is LDKScoreUpdate)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_lll"); Console.Error.Flush(); Environment.Exit(44); } - return ((LDKKVStore)obj).read(a, b, c); - case 141: - if (!(obj is LDKMessageRouter)) { - Console.Error.WriteLine("Got function call to object that wasn't a LDKMessageRouter in l_lll"); + ((LDKScoreUpdate)obj).payment_path_failed(a, b, c); + return; + case 19: + if (!(obj is LDKScoreUpdate)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_lll"); Console.Error.Flush(); Environment.Exit(44); } - return ((LDKMessageRouter)obj).find_path(a, b, c); + ((LDKScoreUpdate)obj).probe_failed(a, b, c); + return; default: - Console.Error.WriteLine("Got unknown function call with id " + fn_id + " from C in l_lll"); + Console.Error.WriteLine("Got unknown function call with id " + fn_id + " from C in void_lll"); Console.Error.Flush(); Environment.Exit(45); - return 0; + return; } } - public delegate long l_lll_callback(int obj_ptr, int fn_id, long a, long b, long c); - [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_lll_invoker")] public static extern int register_l_lll_invoker(l_lll_callback callee); - static int _run_l_lll_registration = register_l_lll_invoker(c_callback_l_lll); + public delegate void void_lll_callback(int obj_ptr, int fn_id, long a, long b, long c); + static void_lll_callback void_lll_callback_inst = c_callback_void_lll; + [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void_lll_invoker")] public static extern int register_void_lll_invoker(void_lll_callback callee); + static int _run_void_lll_registration = register_void_lll_invoker(void_lll_callback_inst); static void c_callback_void_ll(int obj_ptr, int fn_id, long a, long b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_ll"); @@ -13164,23 +14253,23 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 17: + case 18: if (!(obj is LDKScoreUpdate)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_ll"); Console.Error.Flush(); Environment.Exit(44); } - ((LDKScoreUpdate)obj).payment_path_failed(a, b); + ((LDKScoreUpdate)obj).payment_path_successful(a, b); return; - case 19: + case 20: if (!(obj is LDKScoreUpdate)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKScoreUpdate in void_ll"); Console.Error.Flush(); Environment.Exit(44); } - ((LDKScoreUpdate)obj).probe_failed(a, b); + ((LDKScoreUpdate)obj).probe_successful(a, b); return; - case 51: + case 56: if (!(obj is LDKFilter)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKFilter in void_ll"); Console.Error.Flush(); @@ -13188,7 +14277,7 @@ internal class bindings { } ((LDKFilter)obj).register_tx(a, b); return; - case 73: + case 78: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13196,7 +14285,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_open_channel(a, b); return; - case 74: + case 79: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13204,7 +14293,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_open_channel_v2(a, b); return; - case 75: + case 80: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13212,7 +14301,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_accept_channel(a, b); return; - case 76: + case 81: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13220,7 +14309,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_accept_channel_v2(a, b); return; - case 77: + case 82: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13228,7 +14317,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_funding_created(a, b); return; - case 78: + case 83: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13236,7 +14325,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_funding_signed(a, b); return; - case 79: + case 84: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13244,7 +14333,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_channel_ready(a, b); return; - case 80: + case 85: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13252,7 +14341,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_shutdown(a, b); return; - case 81: + case 86: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13260,7 +14349,39 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_closing_signed(a, b); return; - case 82: + case 87: + if (!(obj is LDKChannelMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); + Console.Error.Flush(); + Environment.Exit(44); + } + ((LDKChannelMessageHandler)obj).handle_stfu(a, b); + return; + case 88: + if (!(obj is LDKChannelMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); + Console.Error.Flush(); + Environment.Exit(44); + } + ((LDKChannelMessageHandler)obj).handle_splice(a, b); + return; + case 89: + if (!(obj is LDKChannelMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); + Console.Error.Flush(); + Environment.Exit(44); + } + ((LDKChannelMessageHandler)obj).handle_splice_ack(a, b); + return; + case 90: + if (!(obj is LDKChannelMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); + Console.Error.Flush(); + Environment.Exit(44); + } + ((LDKChannelMessageHandler)obj).handle_splice_locked(a, b); + return; + case 91: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13268,7 +14389,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_add_input(a, b); return; - case 83: + case 92: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13276,7 +14397,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_add_output(a, b); return; - case 84: + case 93: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13284,7 +14405,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_remove_input(a, b); return; - case 85: + case 94: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13292,7 +14413,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_remove_output(a, b); return; - case 86: + case 95: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13300,7 +14421,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_complete(a, b); return; - case 87: + case 96: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13308,7 +14429,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_signatures(a, b); return; - case 88: + case 97: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13316,7 +14437,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_init_rbf(a, b); return; - case 89: + case 98: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13324,7 +14445,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_ack_rbf(a, b); return; - case 90: + case 99: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13332,7 +14453,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_tx_abort(a, b); return; - case 91: + case 100: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13340,7 +14461,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_update_add_htlc(a, b); return; - case 92: + case 101: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13348,7 +14469,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_update_fulfill_htlc(a, b); return; - case 93: + case 102: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13356,7 +14477,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_update_fail_htlc(a, b); return; - case 94: + case 103: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13364,7 +14485,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_update_fail_malformed_htlc(a, b); return; - case 95: + case 104: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13372,7 +14493,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_commitment_signed(a, b); return; - case 96: + case 105: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13380,7 +14501,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_revoke_and_ack(a, b); return; - case 97: + case 106: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13388,7 +14509,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_update_fee(a, b); return; - case 98: + case 107: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13396,7 +14517,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_announcement_signatures(a, b); return; - case 101: + case 110: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13404,7 +14525,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_channel_reestablish(a, b); return; - case 102: + case 111: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13412,7 +14533,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_channel_update(a, b); return; - case 103: + case 112: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in void_ll"); Console.Error.Flush(); @@ -13420,7 +14541,7 @@ internal class bindings { } ((LDKChannelMessageHandler)obj).handle_error(a, b); return; - case 122: + case 132: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in void_ll"); Console.Error.Flush(); @@ -13436,8 +14557,9 @@ internal class bindings { } } public delegate void void_ll_callback(int obj_ptr, int fn_id, long a, long b); + static void_ll_callback void_ll_callback_inst = c_callback_void_ll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void_ll_invoker")] public static extern int register_void_ll_invoker(void_ll_callback callee); - static int _run_void_ll_registration = register_void_ll_invoker(c_callback_void_ll); + static int _run_void_ll_registration = register_void_ll_invoker(void_ll_callback_inst); static ChannelMonitorUpdateStatus c_callback_ChannelMonitorUpdateStatus_ll(int obj_ptr, int fn_id, long a, long b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in ChannelMonitorUpdateStatus_ll"); @@ -13451,7 +14573,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 27: + case 28: if (!(obj is LDKWatch)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKWatch in ChannelMonitorUpdateStatus_ll"); Console.Error.Flush(); @@ -13466,8 +14588,9 @@ internal class bindings { } } public delegate ChannelMonitorUpdateStatus ChannelMonitorUpdateStatus_ll_callback(int obj_ptr, int fn_id, long a, long b); + static ChannelMonitorUpdateStatus_ll_callback ChannelMonitorUpdateStatus_ll_callback_inst = c_callback_ChannelMonitorUpdateStatus_ll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_ChannelMonitorUpdateStatus_ll_invoker")] public static extern int register_ChannelMonitorUpdateStatus_ll_invoker(ChannelMonitorUpdateStatus_ll_callback callee); - static int _run_ChannelMonitorUpdateStatus_ll_registration = register_ChannelMonitorUpdateStatus_ll_invoker(c_callback_ChannelMonitorUpdateStatus_ll); + static int _run_ChannelMonitorUpdateStatus_ll_registration = register_ChannelMonitorUpdateStatus_ll_invoker(ChannelMonitorUpdateStatus_ll_callback_inst); static long c_callback_l_Recipient(int obj_ptr, int fn_id, Recipient a) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_Recipient"); @@ -13481,7 +14604,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 32: + case 33: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_Recipient"); Console.Error.Flush(); @@ -13496,8 +14619,9 @@ internal class bindings { } } public delegate long l_Recipient_callback(int obj_ptr, int fn_id, Recipient a); + static l_Recipient_callback l_Recipient_callback_inst = c_callback_l_Recipient; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_Recipient_invoker")] public static extern int register_l_Recipient_invoker(l_Recipient_callback callee); - static int _run_l_Recipient_registration = register_l_Recipient_invoker(c_callback_l_Recipient); + static int _run_l_Recipient_registration = register_l_Recipient_invoker(l_Recipient_callback_inst); static long c_callback_l_Recipientll(int obj_ptr, int fn_id, Recipient a, long b, long c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_Recipientll"); @@ -13511,7 +14635,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 33: + case 34: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_Recipientll"); Console.Error.Flush(); @@ -13526,8 +14650,9 @@ internal class bindings { } } public delegate long l_Recipientll_callback(int obj_ptr, int fn_id, Recipient a, long b, long c); + static l_Recipientll_callback l_Recipientll_callback_inst = c_callback_l_Recipientll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_Recipientll_invoker")] public static extern int register_l_Recipientll_invoker(l_Recipientll_callback callee); - static int _run_l_Recipientll_registration = register_l_Recipientll_invoker(c_callback_l_Recipientll); + static int _run_l_Recipientll_registration = register_l_Recipientll_invoker(l_Recipientll_callback_inst); static long c_callback_l_llRecipient(int obj_ptr, int fn_id, long a, long b, Recipient c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_llRecipient"); @@ -13541,7 +14666,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 34: + case 35: if (!(obj is LDKNodeSigner)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKNodeSigner in l_llRecipient"); Console.Error.Flush(); @@ -13556,8 +14681,9 @@ internal class bindings { } } public delegate long l_llRecipient_callback(int obj_ptr, int fn_id, long a, long b, Recipient c); + static l_llRecipient_callback l_llRecipient_callback_inst = c_callback_l_llRecipient; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_llRecipient_invoker")] public static extern int register_l_llRecipient_invoker(l_llRecipient_callback callee); - static int _run_l_llRecipient_registration = register_l_llRecipient_invoker(c_callback_l_llRecipient); + static int _run_l_llRecipient_registration = register_l_llRecipient_invoker(l_llRecipient_callback_inst); static long c_callback_l_bll(int obj_ptr, int fn_id, bool a, long b, long c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_bll"); @@ -13571,7 +14697,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 38: + case 39: if (!(obj is LDKSignerProvider)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSignerProvider in l_bll"); Console.Error.Flush(); @@ -13586,8 +14712,9 @@ internal class bindings { } } public delegate long l_bll_callback(int obj_ptr, int fn_id, bool a, long b, long c); + static l_bll_callback l_bll_callback_inst = c_callback_l_bll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_bll_invoker")] public static extern int register_l_bll_invoker(l_bll_callback callee); - static int _run_l_bll_registration = register_l_bll_invoker(c_callback_l_bll); + static int _run_l_bll_registration = register_l_bll_invoker(l_bll_callback_inst); static int c_callback_i_ConfirmationTarget(int obj_ptr, int fn_id, ConfirmationTarget a) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in i_ConfirmationTarget"); @@ -13601,7 +14728,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 43: + case 44: if (!(obj is LDKFeeEstimator)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKFeeEstimator in i_ConfirmationTarget"); Console.Error.Flush(); @@ -13616,8 +14743,9 @@ internal class bindings { } } public delegate int i_ConfirmationTarget_callback(int obj_ptr, int fn_id, ConfirmationTarget a); + static i_ConfirmationTarget_callback i_ConfirmationTarget_callback_inst = c_callback_i_ConfirmationTarget; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_i_ConfirmationTarget_invoker")] public static extern int register_i_ConfirmationTarget_invoker(i_ConfirmationTarget_callback callee); - static int _run_i_ConfirmationTarget_registration = register_i_ConfirmationTarget_invoker(c_callback_i_ConfirmationTarget); + static int _run_i_ConfirmationTarget_registration = register_i_ConfirmationTarget_invoker(i_ConfirmationTarget_callback_inst); static long c_callback_l_llllll(int obj_ptr, int fn_id, long a, long b, long c, long d, long e, long f) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_llllll"); @@ -13631,7 +14759,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 45: + case 48: if (!(obj is LDKRouter)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRouter in l_llllll"); Console.Error.Flush(); @@ -13646,8 +14774,9 @@ internal class bindings { } } public delegate long l_llllll_callback(int obj_ptr, int fn_id, long a, long b, long c, long d, long e, long f); + static l_llllll_callback l_llllll_callback_inst = c_callback_l_llllll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_llllll_invoker")] public static extern int register_l_llllll_invoker(l_llllll_callback callee); - static int _run_l_llllll_registration = register_l_llllll_invoker(c_callback_l_llllll); + static int _run_l_llllll_registration = register_l_llllll_invoker(l_llllll_callback_inst); static short c_callback_s_(int obj_ptr, int fn_id) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in s_"); @@ -13661,7 +14790,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 46: + case 50: if (!(obj is LDKType)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKType in s_"); Console.Error.Flush(); @@ -13676,8 +14805,9 @@ internal class bindings { } } public delegate short s__callback(int obj_ptr, int fn_id); + static s__callback s__callback_inst = c_callback_s_; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_s__invoker")] public static extern int register_s__invoker(s__callback callee); - static int _run_s__registration = register_s__invoker(c_callback_s_); + static int _run_s__registration = register_s__invoker(s__callback_inst); static long c_callback_l_lllb(int obj_ptr, int fn_id, long a, long b, long c, bool d) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_lllb"); @@ -13691,7 +14821,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 55: + case 60: if (!(obj is LDKKVStore)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKKVStore in l_lllb"); Console.Error.Flush(); @@ -13706,8 +14836,9 @@ internal class bindings { } } public delegate long l_lllb_callback(int obj_ptr, int fn_id, long a, long b, long c, bool d); + static l_lllb_callback l_lllb_callback_inst = c_callback_l_lllb; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_lllb_invoker")] public static extern int register_l_lllb_invoker(l_lllb_callback callee); - static int _run_l_lllb_registration = register_l_lllb_invoker(c_callback_l_lllb); + static int _run_l_lllb_registration = register_l_lllb_invoker(l_lllb_callback_inst); static ChannelMonitorUpdateStatus c_callback_ChannelMonitorUpdateStatus_lll(int obj_ptr, int fn_id, long a, long b, long c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in ChannelMonitorUpdateStatus_lll"); @@ -13721,7 +14852,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 60: + case 65: if (!(obj is LDKPersist)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKPersist in ChannelMonitorUpdateStatus_lll"); Console.Error.Flush(); @@ -13736,8 +14867,9 @@ internal class bindings { } } public delegate ChannelMonitorUpdateStatus ChannelMonitorUpdateStatus_lll_callback(int obj_ptr, int fn_id, long a, long b, long c); + static ChannelMonitorUpdateStatus_lll_callback ChannelMonitorUpdateStatus_lll_callback_inst = c_callback_ChannelMonitorUpdateStatus_lll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_ChannelMonitorUpdateStatus_lll_invoker")] public static extern int register_ChannelMonitorUpdateStatus_lll_invoker(ChannelMonitorUpdateStatus_lll_callback callee); - static int _run_ChannelMonitorUpdateStatus_lll_registration = register_ChannelMonitorUpdateStatus_lll_invoker(c_callback_ChannelMonitorUpdateStatus_lll); + static int _run_ChannelMonitorUpdateStatus_lll_registration = register_ChannelMonitorUpdateStatus_lll_invoker(ChannelMonitorUpdateStatus_lll_callback_inst); static ChannelMonitorUpdateStatus c_callback_ChannelMonitorUpdateStatus_llll(int obj_ptr, int fn_id, long a, long b, long c, long d) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in ChannelMonitorUpdateStatus_llll"); @@ -13751,7 +14883,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 61: + case 66: if (!(obj is LDKPersist)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKPersist in ChannelMonitorUpdateStatus_llll"); Console.Error.Flush(); @@ -13766,8 +14898,9 @@ internal class bindings { } } public delegate ChannelMonitorUpdateStatus ChannelMonitorUpdateStatus_llll_callback(int obj_ptr, int fn_id, long a, long b, long c, long d); + static ChannelMonitorUpdateStatus_llll_callback ChannelMonitorUpdateStatus_llll_callback_inst = c_callback_ChannelMonitorUpdateStatus_llll; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_ChannelMonitorUpdateStatus_llll_invoker")] public static extern int register_ChannelMonitorUpdateStatus_llll_invoker(ChannelMonitorUpdateStatus_llll_callback callee); - static int _run_ChannelMonitorUpdateStatus_llll_registration = register_ChannelMonitorUpdateStatus_llll_invoker(c_callback_ChannelMonitorUpdateStatus_llll); + static int _run_ChannelMonitorUpdateStatus_llll_registration = register_ChannelMonitorUpdateStatus_llll_invoker(ChannelMonitorUpdateStatus_llll_callback_inst); static void c_callback_void_(int obj_ptr, int fn_id) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_"); @@ -13781,7 +14914,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 62: + case 67: if (!(obj is LDKFutureCallback)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKFutureCallback in void_"); Console.Error.Flush(); @@ -13789,7 +14922,15 @@ internal class bindings { } ((LDKFutureCallback)obj).call(); return; - case 137: + case 136: + if (!(obj is LDKOnionMessageHandler)) { + Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in void_"); + Console.Error.Flush(); + Environment.Exit(44); + } + ((LDKOnionMessageHandler)obj).timer_tick_occurred(); + return; + case 148: if (!(obj is LDKSocketDescriptor)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSocketDescriptor in void_"); Console.Error.Flush(); @@ -13805,8 +14946,9 @@ internal class bindings { } } public delegate void void__callback(int obj_ptr, int fn_id); + static void__callback void__callback_inst = c_callback_void_; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void__invoker")] public static extern int register_void__invoker(void__callback callee); - static int _run_void__registration = register_void__invoker(c_callback_void_); + static int _run_void__registration = register_void__invoker(void__callback_inst); static void c_callback_void_lli(int obj_ptr, int fn_id, long a, long b, int c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_lli"); @@ -13820,7 +14962,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 63: + case 68: if (!(obj is LDKListen)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKListen in void_lli"); Console.Error.Flush(); @@ -13828,7 +14970,7 @@ internal class bindings { } ((LDKListen)obj).filtered_block_connected(a, b, c); return; - case 66: + case 71: if (!(obj is LDKConfirm)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKConfirm in void_lli"); Console.Error.Flush(); @@ -13844,8 +14986,9 @@ internal class bindings { } } public delegate void void_lli_callback(int obj_ptr, int fn_id, long a, long b, int c); + static void_lli_callback void_lli_callback_inst = c_callback_void_lli; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void_lli_invoker")] public static extern int register_void_lli_invoker(void_lli_callback callee); - static int _run_void_lli_registration = register_void_lli_invoker(c_callback_void_lli); + static int _run_void_lli_registration = register_void_lli_invoker(void_lli_callback_inst); static void c_callback_void_li(int obj_ptr, int fn_id, long a, int b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in void_li"); @@ -13859,7 +15002,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 64: + case 69: if (!(obj is LDKListen)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKListen in void_li"); Console.Error.Flush(); @@ -13867,7 +15010,7 @@ internal class bindings { } ((LDKListen)obj).block_connected(a, b); return; - case 65: + case 70: if (!(obj is LDKListen)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKListen in void_li"); Console.Error.Flush(); @@ -13875,7 +15018,7 @@ internal class bindings { } ((LDKListen)obj).block_disconnected(a, b); return; - case 68: + case 73: if (!(obj is LDKConfirm)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKConfirm in void_li"); Console.Error.Flush(); @@ -13891,8 +15034,9 @@ internal class bindings { } } public delegate void void_li_callback(int obj_ptr, int fn_id, long a, int b); + static void_li_callback void_li_callback_inst = c_callback_void_li; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_void_li_invoker")] public static extern int register_void_li_invoker(void_li_callback callee); - static int _run_void_li_registration = register_void_li_invoker(c_callback_void_li); + static int _run_void_li_registration = register_void_li_invoker(void_li_callback_inst); static long c_callback_l_llb(int obj_ptr, int fn_id, long a, long b, bool c) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_llb"); @@ -13906,21 +15050,21 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 100: + case 109: if (!(obj is LDKChannelMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKChannelMessageHandler in l_llb"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKChannelMessageHandler)obj).peer_connected(a, b, c); - case 114: + case 123: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in l_llb"); Console.Error.Flush(); Environment.Exit(44); } return ((LDKRoutingMessageHandler)obj).peer_connected(a, b, c); - case 124: + case 134: if (!(obj is LDKOnionMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKOnionMessageHandler in l_llb"); Console.Error.Flush(); @@ -13935,8 +15079,9 @@ internal class bindings { } } public delegate long l_llb_callback(int obj_ptr, int fn_id, long a, long b, bool c); + static l_llb_callback l_llb_callback_inst = c_callback_l_llb; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_llb_invoker")] public static extern int register_l_llb_invoker(l_llb_callback callee); - static int _run_l_llb_registration = register_l_llb_invoker(c_callback_l_llb); + static int _run_l_llb_registration = register_l_llb_invoker(l_llb_callback_inst); static bool c_callback_b_(int obj_ptr, int fn_id) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in b_"); @@ -13950,7 +15095,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 119: + case 128: if (!(obj is LDKRoutingMessageHandler)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKRoutingMessageHandler in b_"); Console.Error.Flush(); @@ -13965,8 +15110,9 @@ internal class bindings { } } public delegate bool b__callback(int obj_ptr, int fn_id); + static b__callback b__callback_inst = c_callback_b_; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_b__invoker")] public static extern int register_b__invoker(b__callback callee); - static int _run_b__registration = register_b__invoker(c_callback_b_); + static int _run_b__registration = register_b__invoker(b__callback_inst); static long c_callback_l_sl(int obj_ptr, int fn_id, short a, long b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_sl"); @@ -13980,7 +15126,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 128: + case 139: if (!(obj is LDKCustomMessageReader)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCustomMessageReader in l_sl"); Console.Error.Flush(); @@ -13995,8 +15141,9 @@ internal class bindings { } } public delegate long l_sl_callback(int obj_ptr, int fn_id, short a, long b); + static l_sl_callback l_sl_callback_inst = c_callback_l_sl; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_sl_invoker")] public static extern int register_l_sl_invoker(l_sl_callback callee); - static int _run_l_sl_registration = register_l_sl_invoker(c_callback_l_sl); + static int _run_l_sl_registration = register_l_sl_invoker(l_sl_callback_inst); static long c_callback_l_lb(int obj_ptr, int fn_id, long a, bool b) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_lb"); @@ -14010,7 +15157,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 136: + case 147: if (!(obj is LDKSocketDescriptor)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSocketDescriptor in l_lb"); Console.Error.Flush(); @@ -14025,8 +15172,9 @@ internal class bindings { } } public delegate long l_lb_callback(int obj_ptr, int fn_id, long a, bool b); + static l_lb_callback l_lb_callback_inst = c_callback_l_lb; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_lb_invoker")] public static extern int register_l_lb_invoker(l_lb_callback callee); - static int _run_l_lb_registration = register_l_lb_invoker(c_callback_l_lb); + static int _run_l_lb_registration = register_l_lb_invoker(l_lb_callback_inst); static bool c_callback_b_l(int obj_ptr, int fn_id, long a) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in b_l"); @@ -14040,7 +15188,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 138: + case 149: if (!(obj is LDKSocketDescriptor)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKSocketDescriptor in b_l"); Console.Error.Flush(); @@ -14055,8 +15203,9 @@ internal class bindings { } } public delegate bool b_l_callback(int obj_ptr, int fn_id, long a); + static b_l_callback b_l_callback_inst = c_callback_b_l; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_b_l_invoker")] public static extern int register_b_l_invoker(b_l_callback callee); - static int _run_b_l_registration = register_b_l_invoker(c_callback_b_l); + static int _run_b_l_registration = register_b_l_invoker(b_l_callback_inst); static long c_callback_l_llli(int obj_ptr, int fn_id, long a, long b, long c, int d) { if (obj_ptr >= js_objs.Count) { Console.Error.WriteLine("Got function call on unknown/free'd JS object in l_llli"); @@ -14070,7 +15219,7 @@ internal class bindings { Environment.Exit(43); } switch (fn_id) { - case 142: + case 152: if (!(obj is LDKCoinSelectionSource)) { Console.Error.WriteLine("Got function call to object that wasn't a LDKCoinSelectionSource in l_llli"); Console.Error.Flush(); @@ -14085,7 +15234,8 @@ internal class bindings { } } public delegate long l_llli_callback(int obj_ptr, int fn_id, long a, long b, long c, int d); + static l_llli_callback l_llli_callback_inst = c_callback_l_llli; [DllImport ("ldkcsharp", EntryPoint="CS_LDK_register_l_llli_invoker")] public static extern int register_l_llli_invoker(l_llli_callback callee); - static int _run_l_llli_registration = register_l_llli_invoker(c_callback_l_llli); + static int _run_l_llli_registration = register_l_llli_invoker(l_llli_callback_inst); } } } } \ No newline at end of file diff --git a/c_sharp/src/org/ldk/structs/AcceptChannel.cs b/c_sharp/src/org/ldk/structs/AcceptChannel.cs index 78b05347..ffa4cfa0 100644 --- a/c_sharp/src/org/ldk/structs/AcceptChannel.cs +++ b/c_sharp/src/org/ldk/structs/AcceptChannel.cs @@ -390,6 +390,18 @@ public class AcceptChannel : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the AcceptChannel. + */ + public long hash() { + long ret = bindings.AcceptChannel_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two AcceptChannels contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/AcceptChannelV2.cs b/c_sharp/src/org/ldk/structs/AcceptChannelV2.cs index eea8b64c..1090715d 100644 --- a/c_sharp/src/org/ldk/structs/AcceptChannelV2.cs +++ b/c_sharp/src/org/ldk/structs/AcceptChannelV2.cs @@ -436,6 +436,18 @@ public class AcceptChannelV2 : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the AcceptChannelV2. + */ + public long hash() { + long ret = bindings.AcceptChannelV2_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two AcceptChannelV2s contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/AnnouncementSignatures.cs b/c_sharp/src/org/ldk/structs/AnnouncementSignatures.cs index 34d31dd4..cebd823c 100644 --- a/c_sharp/src/org/ldk/structs/AnnouncementSignatures.cs +++ b/c_sharp/src/org/ldk/structs/AnnouncementSignatures.cs @@ -128,6 +128,18 @@ public class AnnouncementSignatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the AnnouncementSignatures. + */ + public long hash() { + long ret = bindings.AnnouncementSignatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two AnnouncementSignaturess contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/BlindedForward.cs b/c_sharp/src/org/ldk/structs/BlindedForward.cs new file mode 100644 index 00000000..12a542dd --- /dev/null +++ b/c_sharp/src/org/ldk/structs/BlindedForward.cs @@ -0,0 +1,145 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Information used to forward or fail this HTLC that is being forwarded within a blinded path. + */ +public class BlindedForward : CommonBase { + internal BlindedForward(object _dummy, long ptr) : base(ptr) { } + ~BlindedForward() { + if (ptr != 0) { bindings.BlindedForward_free(ptr); } + } + + /** + * The `blinding_point` that was set in the inbound [`msgs::UpdateAddHTLC`], or in the inbound + * onion payload if we're the introduction node. Useful for calculating the next hop's + * [`msgs::UpdateAddHTLC::blinding_point`]. + */ + public byte[] get_inbound_blinding_point() { + long ret = bindings.BlindedForward_get_inbound_blinding_point(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The `blinding_point` that was set in the inbound [`msgs::UpdateAddHTLC`], or in the inbound + * onion payload if we're the introduction node. Useful for calculating the next hop's + * [`msgs::UpdateAddHTLC::blinding_point`]. + */ + public void set_inbound_blinding_point(byte[] val) { + bindings.BlindedForward_set_inbound_blinding_point(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * If needed, this determines how this HTLC should be failed backwards, based on whether we are + * the introduction node. + */ + public BlindedFailure get_failure() { + BlindedFailure ret = bindings.BlindedForward_get_failure(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * If needed, this determines how this HTLC should be failed backwards, based on whether we are + * the introduction node. + */ + public void set_failure(BlindedFailure val) { + bindings.BlindedForward_set_failure(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new BlindedForward given each field + */ + public static BlindedForward of(byte[] inbound_blinding_point_arg, BlindedFailure failure_arg) { + long ret = bindings.BlindedForward_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(inbound_blinding_point_arg, 33)), failure_arg); + GC.KeepAlive(inbound_blinding_point_arg); + GC.KeepAlive(failure_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.BlindedForward ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.BlindedForward(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.BlindedForward_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the BlindedForward + */ + public BlindedForward clone() { + long ret = bindings.BlindedForward_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.BlindedForward ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.BlindedForward(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the BlindedForward. + */ + public long hash() { + long ret = bindings.BlindedForward_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Checks if two BlindedForwards contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.BlindedForward b) { + bool ret = bindings.BlindedForward_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is BlindedForward)) return false; + return this.eq((BlindedForward)o); + } + /** + * Serialize the BlindedForward object into a byte array which can be read by BlindedForward_read + */ + public byte[] write() { + long ret = bindings.BlindedForward_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a BlindedForward from a byte array, created by BlindedForward_write + */ + public static Result_BlindedForwardDecodeErrorZ read(byte[] ser) { + long ret = bindings.BlindedForward_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedForwardDecodeErrorZ ret_hu_conv = Result_BlindedForwardDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/BlindedHopFeatures.cs b/c_sharp/src/org/ldk/structs/BlindedHopFeatures.cs index bf3c2cc4..d6de7e38 100644 --- a/c_sharp/src/org/ldk/structs/BlindedHopFeatures.cs +++ b/c_sharp/src/org/ldk/structs/BlindedHopFeatures.cs @@ -50,6 +50,18 @@ public class BlindedHopFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the BlindedHopFeatures. + */ + public long hash() { + long ret = bindings.BlindedHopFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/BlindedPathCandidate.cs b/c_sharp/src/org/ldk/structs/BlindedPathCandidate.cs new file mode 100644 index 00000000..e0393bfd --- /dev/null +++ b/c_sharp/src/org/ldk/structs/BlindedPathCandidate.cs @@ -0,0 +1,37 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A [`CandidateRouteHop::Blinded`] entry. + */ +public class BlindedPathCandidate : CommonBase { + internal BlindedPathCandidate(object _dummy, long ptr) : base(ptr) { } + ~BlindedPathCandidate() { + if (ptr != 0) { bindings.BlindedPathCandidate_free(ptr); } + } + + internal long clone_ptr() { + long ret = bindings.BlindedPathCandidate_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the BlindedPathCandidate + */ + public BlindedPathCandidate clone() { + long ret = bindings.BlindedPathCandidate_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.BlindedPathCandidate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.BlindedPathCandidate(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Bolt11InvoiceFeatures.cs b/c_sharp/src/org/ldk/structs/Bolt11InvoiceFeatures.cs index b1e77cc4..7b649b24 100644 --- a/c_sharp/src/org/ldk/structs/Bolt11InvoiceFeatures.cs +++ b/c_sharp/src/org/ldk/structs/Bolt11InvoiceFeatures.cs @@ -50,6 +50,18 @@ public class Bolt11InvoiceFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Bolt11InvoiceFeatures. + */ + public long hash() { + long ret = bindings.Bolt11InvoiceFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/Bolt12InvoiceFeatures.cs b/c_sharp/src/org/ldk/structs/Bolt12InvoiceFeatures.cs index 517d44ae..98b72e12 100644 --- a/c_sharp/src/org/ldk/structs/Bolt12InvoiceFeatures.cs +++ b/c_sharp/src/org/ldk/structs/Bolt12InvoiceFeatures.cs @@ -50,6 +50,18 @@ public class Bolt12InvoiceFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Bolt12InvoiceFeatures. + */ + public long hash() { + long ret = bindings.Bolt12InvoiceFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/BroadcasterInterface.cs b/c_sharp/src/org/ldk/structs/BroadcasterInterface.cs index 67c238a2..2ce07039 100644 --- a/c_sharp/src/org/ldk/structs/BroadcasterInterface.cs +++ b/c_sharp/src/org/ldk/structs/BroadcasterInterface.cs @@ -22,7 +22,7 @@ public interface BroadcasterInterfaceInterface { * be sure to manage both cases correctly. * * Bitcoin transaction packages are defined in BIP 331 and here: - * https://github.com/bitcoin/bitcoin/blob/master/doc/policy/packages.md + * */ void broadcast_transactions(byte[][] txs); } @@ -83,7 +83,7 @@ public class BroadcasterInterface : CommonBase { * be sure to manage both cases correctly. * * Bitcoin transaction packages are defined in BIP 331 and here: - * https://github.com/bitcoin/bitcoin/blob/master/doc/policy/packages.md + * */ public void broadcast_transactions(byte[][] txs) { bindings.BroadcasterInterface_broadcast_transactions(this.ptr, InternalUtils.encodeUint64Array(InternalUtils.mapArray(txs, txs_conv_8 => InternalUtils.encodeUint8Array(txs_conv_8)))); diff --git a/c_sharp/src/org/ldk/structs/CandidateRouteHop.cs b/c_sharp/src/org/ldk/structs/CandidateRouteHop.cs new file mode 100644 index 00000000..39a5020a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/CandidateRouteHop.cs @@ -0,0 +1,255 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +/** + * A wrapper around the various hop representations. + * + * Can be used to examine the properties of a hop, + * potentially to decide whether to include it in a route. + */ +public class CandidateRouteHop : CommonBase { + protected CandidateRouteHop(object _dummy, long ptr) : base(ptr) { } + ~CandidateRouteHop() { + if (ptr != 0) { bindings.CandidateRouteHop_free(ptr); } + } + + internal static CandidateRouteHop constr_from_ptr(long ptr) { + long raw_ty = bindings.LDKCandidateRouteHop_ty_from_ptr(ptr); + switch (raw_ty) { + case 0: return new CandidateRouteHop_FirstHop(ptr); + case 1: return new CandidateRouteHop_PublicHop(ptr); + case 2: return new CandidateRouteHop_PrivateHop(ptr); + case 3: return new CandidateRouteHop_Blinded(ptr); + case 4: return new CandidateRouteHop_OneHopBlinded(ptr); + default: + throw new ArgumentException("Impossible enum variant"); + } + } + + /** A CandidateRouteHop of type FirstHop */ + public class CandidateRouteHop_FirstHop : CandidateRouteHop { + public FirstHopCandidate first_hop; + internal CandidateRouteHop_FirstHop(long ptr) : base(null, ptr) { + long first_hop = bindings.LDKCandidateRouteHop_FirstHop_get_first_hop(ptr); + org.ldk.structs.FirstHopCandidate first_hop_hu_conv = null; if (first_hop < 0 || first_hop > 4096) { first_hop_hu_conv = new org.ldk.structs.FirstHopCandidate(null, first_hop); } + if (first_hop_hu_conv != null) { first_hop_hu_conv.ptrs_to.AddLast(this); }; + this.first_hop = first_hop_hu_conv; + } + } + /** A CandidateRouteHop of type PublicHop */ + public class CandidateRouteHop_PublicHop : CandidateRouteHop { + public PublicHopCandidate public_hop; + internal CandidateRouteHop_PublicHop(long ptr) : base(null, ptr) { + long public_hop = bindings.LDKCandidateRouteHop_PublicHop_get_public_hop(ptr); + org.ldk.structs.PublicHopCandidate public_hop_hu_conv = null; if (public_hop < 0 || public_hop > 4096) { public_hop_hu_conv = new org.ldk.structs.PublicHopCandidate(null, public_hop); } + if (public_hop_hu_conv != null) { public_hop_hu_conv.ptrs_to.AddLast(this); }; + this.public_hop = public_hop_hu_conv; + } + } + /** A CandidateRouteHop of type PrivateHop */ + public class CandidateRouteHop_PrivateHop : CandidateRouteHop { + public PrivateHopCandidate private_hop; + internal CandidateRouteHop_PrivateHop(long ptr) : base(null, ptr) { + long private_hop = bindings.LDKCandidateRouteHop_PrivateHop_get_private_hop(ptr); + org.ldk.structs.PrivateHopCandidate private_hop_hu_conv = null; if (private_hop < 0 || private_hop > 4096) { private_hop_hu_conv = new org.ldk.structs.PrivateHopCandidate(null, private_hop); } + if (private_hop_hu_conv != null) { private_hop_hu_conv.ptrs_to.AddLast(this); }; + this.private_hop = private_hop_hu_conv; + } + } + /** A CandidateRouteHop of type Blinded */ + public class CandidateRouteHop_Blinded : CandidateRouteHop { + public BlindedPathCandidate blinded; + internal CandidateRouteHop_Blinded(long ptr) : base(null, ptr) { + long blinded = bindings.LDKCandidateRouteHop_Blinded_get_blinded(ptr); + org.ldk.structs.BlindedPathCandidate blinded_hu_conv = null; if (blinded < 0 || blinded > 4096) { blinded_hu_conv = new org.ldk.structs.BlindedPathCandidate(null, blinded); } + if (blinded_hu_conv != null) { blinded_hu_conv.ptrs_to.AddLast(this); }; + this.blinded = blinded_hu_conv; + } + } + /** A CandidateRouteHop of type OneHopBlinded */ + public class CandidateRouteHop_OneHopBlinded : CandidateRouteHop { + public OneHopBlindedPathCandidate one_hop_blinded; + internal CandidateRouteHop_OneHopBlinded(long ptr) : base(null, ptr) { + long one_hop_blinded = bindings.LDKCandidateRouteHop_OneHopBlinded_get_one_hop_blinded(ptr); + org.ldk.structs.OneHopBlindedPathCandidate one_hop_blinded_hu_conv = null; if (one_hop_blinded < 0 || one_hop_blinded > 4096) { one_hop_blinded_hu_conv = new org.ldk.structs.OneHopBlindedPathCandidate(null, one_hop_blinded); } + if (one_hop_blinded_hu_conv != null) { one_hop_blinded_hu_conv.ptrs_to.AddLast(this); }; + this.one_hop_blinded = one_hop_blinded_hu_conv; + } + } + internal long clone_ptr() { + long ret = bindings.CandidateRouteHop_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the CandidateRouteHop + */ + public CandidateRouteHop clone() { + long ret = bindings.CandidateRouteHop_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new FirstHop-variant CandidateRouteHop + */ + public static CandidateRouteHop first_hop(org.ldk.structs.FirstHopCandidate a) { + long ret = bindings.CandidateRouteHop_first_hop(a == null ? 0 : a.ptr); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new PublicHop-variant CandidateRouteHop + */ + public static CandidateRouteHop public_hop(org.ldk.structs.PublicHopCandidate a) { + long ret = bindings.CandidateRouteHop_public_hop(a == null ? 0 : a.ptr); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new PrivateHop-variant CandidateRouteHop + */ + public static CandidateRouteHop private_hop(org.ldk.structs.PrivateHopCandidate a) { + long ret = bindings.CandidateRouteHop_private_hop(a == null ? 0 : a.ptr); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new Blinded-variant CandidateRouteHop + */ + public static CandidateRouteHop blinded(org.ldk.structs.BlindedPathCandidate a) { + long ret = bindings.CandidateRouteHop_blinded(a == null ? 0 : a.ptr); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new OneHopBlinded-variant CandidateRouteHop + */ + public static CandidateRouteHop one_hop_blinded(org.ldk.structs.OneHopBlindedPathCandidate a) { + long ret = bindings.CandidateRouteHop_one_hop_blinded(a == null ? 0 : a.ptr); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.CandidateRouteHop ret_hu_conv = org.ldk.structs.CandidateRouteHop.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; + return ret_hu_conv; + } + + /** + * Returns the globally unique short channel ID for this hop, if one is known. + * + * This only returns `Some` if the channel is public (either our own, or one we've learned + * from the public network graph), and thus the short channel ID we have for this channel is + * globally unique and identifies this channel in a global namespace. + */ + public Option_u64Z globally_unique_short_channel_id() { + long ret = bindings.CandidateRouteHop_globally_unique_short_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_u64Z ret_hu_conv = org.ldk.structs.Option_u64Z.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Returns the required difference in HTLC CLTV expiry between the [`Self::source`] and the + * next-hop for an HTLC taking this hop. + * + * This is the time that the node(s) in this hop have to claim the HTLC on-chain if the + * next-hop goes on chain with a payment preimage. + */ + public int cltv_expiry_delta() { + int ret = bindings.CandidateRouteHop_cltv_expiry_delta(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Returns the minimum amount that can be sent over this hop, in millisatoshis. + */ + public long htlc_minimum_msat() { + long ret = bindings.CandidateRouteHop_htlc_minimum_msat(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Returns the fees that must be paid to route an HTLC over this channel. + */ + public RoutingFees fees() { + long ret = bindings.CandidateRouteHop_fees(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RoutingFees ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RoutingFees(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Returns the source node id of current hop. + * + * Source node id refers to the node forwarding the HTLC through this hop. + * + * For [`Self::FirstHop`] we return payer's node id. + */ + public NodeId source() { + long ret = bindings.CandidateRouteHop_source(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.NodeId ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeId(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Returns the target node id of this hop, if known. + * + * Target node id refers to the node receiving the HTLC after this hop. + * + * For [`Self::Blinded`] we return `None` because the ultimate destination after the blinded + * path is unknown. + * + * For [`Self::OneHopBlinded`] we return `None` because the target is the same as the source, + * and such a return value would be somewhat nonsensical. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public NodeId target() { + long ret = bindings.CandidateRouteHop_target(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.NodeId ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NodeId(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/ChannelAnnouncement.cs b/c_sharp/src/org/ldk/structs/ChannelAnnouncement.cs index 1f8c8593..33682123 100644 --- a/c_sharp/src/org/ldk/structs/ChannelAnnouncement.cs +++ b/c_sharp/src/org/ldk/structs/ChannelAnnouncement.cs @@ -154,6 +154,18 @@ public class ChannelAnnouncement : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelAnnouncement. + */ + public long hash() { + long ret = bindings.ChannelAnnouncement_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ChannelAnnouncements contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ChannelConfig.cs b/c_sharp/src/org/ldk/structs/ChannelConfig.cs index da4589dc..9f86419e 100644 --- a/c_sharp/src/org/ldk/structs/ChannelConfig.cs +++ b/c_sharp/src/org/ldk/structs/ChannelConfig.cs @@ -270,7 +270,9 @@ public class ChannelConfig : CommonBase { * - The counterparty will get an [`HTLCIntercepted`] event upon payment forward, and call * [`forward_intercepted_htlc`] with less than the amount provided in * [`HTLCIntercepted::expected_outbound_amount_msat`]. The difference between the expected and - * actual forward amounts is their fee. + * actual forward amounts is their fee. See + * + * for how this feature may be used in the LSP use case. * * # Note * It's important for payee wallet software to verify that [`PaymentClaimable::amount_msat`] is @@ -307,7 +309,9 @@ public class ChannelConfig : CommonBase { * - The counterparty will get an [`HTLCIntercepted`] event upon payment forward, and call * [`forward_intercepted_htlc`] with less than the amount provided in * [`HTLCIntercepted::expected_outbound_amount_msat`]. The difference between the expected and - * actual forward amounts is their fee. + * actual forward amounts is their fee. See + * + * for how this feature may be used in the LSP use case. * * # Note * It's important for payee wallet software to verify that [`PaymentClaimable::amount_msat`] is diff --git a/c_sharp/src/org/ldk/structs/ChannelFeatures.cs b/c_sharp/src/org/ldk/structs/ChannelFeatures.cs index f598bab7..d6e08e34 100644 --- a/c_sharp/src/org/ldk/structs/ChannelFeatures.cs +++ b/c_sharp/src/org/ldk/structs/ChannelFeatures.cs @@ -50,6 +50,18 @@ public class ChannelFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelFeatures. + */ + public long hash() { + long ret = bindings.ChannelFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/ChannelManager.cs b/c_sharp/src/org/ldk/structs/ChannelManager.cs index b11bebee..567fbd56 100644 --- a/c_sharp/src/org/ldk/structs/ChannelManager.cs +++ b/c_sharp/src/org/ldk/structs/ChannelManager.cs @@ -148,6 +148,9 @@ public class ChannelManager : CommonBase { * connection is available, the outbound `open_channel` message may fail to send, resulting in * the channel eventually being silently forgotten (dropped on reload). * + * If `temporary_channel_id` is specified, it will be used as the temporary channel ID of the + * channel. Otherwise, a random one will be generated for you. + * * Returns the new Channel's temporary `channel_id`. This ID will appear as * [`Event::FundingGenerationReady::temporary_channel_id`] and in * [`ChannelDetails::channel_id`] until after @@ -161,16 +164,18 @@ public class ChannelManager : CommonBase { * * Note that override_config (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public Result_ThirtyTwoBytesAPIErrorZ create_channel(byte[] their_network_key, long channel_value_satoshis, long push_msat, org.ldk.util.UInt128 user_channel_id, org.ldk.structs.UserConfig override_config) { - long ret = bindings.ChannelManager_create_channel(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_network_key, 33)), channel_value_satoshis, push_msat, InternalUtils.encodeUint8Array(user_channel_id.getLEBytes()), override_config == null ? 0 : override_config.ptr); + public Result_ThirtyTwoBytesAPIErrorZ create_channel(byte[] their_network_key, long channel_value_satoshis, long push_msat, org.ldk.util.UInt128 user_channel_id, org.ldk.structs.Option_ThirtyTwoBytesZ temporary_channel_id, org.ldk.structs.UserConfig override_config) { + long ret = bindings.ChannelManager_create_channel(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_network_key, 33)), channel_value_satoshis, push_msat, InternalUtils.encodeUint8Array(user_channel_id.getLEBytes()), temporary_channel_id.ptr, override_config == null ? 0 : override_config.ptr); GC.KeepAlive(this); GC.KeepAlive(their_network_key); GC.KeepAlive(channel_value_satoshis); GC.KeepAlive(push_msat); GC.KeepAlive(user_channel_id); + GC.KeepAlive(temporary_channel_id); GC.KeepAlive(override_config); if (ret >= 0 && ret <= 4096) { return null; } Result_ThirtyTwoBytesAPIErrorZ ret_hu_conv = Result_ThirtyTwoBytesAPIErrorZ.constr_from_ptr(ret); + if (this != null) { this.ptrs_to.AddLast(temporary_channel_id); }; if (this != null) { this.ptrs_to.AddLast(override_config); }; return ret_hu_conv; } @@ -688,7 +693,7 @@ public class ChannelManager : CommonBase { * Return values are identical to [`Self::funding_transaction_generated`], respective to * each individual channel and transaction output. * - * Do NOT broadcast the funding transaction yourself. This batch funding transcaction + * Do NOT broadcast the funding transaction yourself. This batch funding transaction * will only be broadcast when we have safely received and persisted the counterparty's * signature for each channel. * @@ -1066,8 +1071,11 @@ public class ChannelManager : CommonBase { * * # Errors * - * Errors if a duplicate `payment_id` is provided given the caveats in the aforementioned link - * or if the provided parameters are invalid for the offer. + * Errors if: + * - a duplicate `payment_id` is provided given the caveats in the aforementioned link, + * - the provided parameters are invalid for the offer, + * - the parameterized [`Router`] is unable to create a blinded reply path for the invoice + * request. * * [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest * [`InvoiceRequest::quantity`]: crate::offers::invoice_request::InvoiceRequest::quantity @@ -1113,6 +1121,11 @@ public class ChannelManager : CommonBase { * node meeting the aforementioned criteria, but there's no guarantee that they will be * received and no retries will be made. * + * # Errors + * + * Errors if the parameterized [`Router`] is unable to create a blinded payment path or reply + * path for the invoice. + * * [`Bolt12Invoice`]: crate::offers::invoice::Bolt12Invoice */ public Result_NoneBolt12SemanticErrorZ request_refund_payment(org.ldk.structs.Refund refund) { diff --git a/c_sharp/src/org/ldk/structs/ChannelMessageHandler.cs b/c_sharp/src/org/ldk/structs/ChannelMessageHandler.cs index ad7d0e37..dcd8c559 100644 --- a/c_sharp/src/org/ldk/structs/ChannelMessageHandler.cs +++ b/c_sharp/src/org/ldk/structs/ChannelMessageHandler.cs @@ -37,6 +37,18 @@ public interface ChannelMessageHandlerInterface { /**Handle an incoming `closing_signed` message from the given peer. */ void handle_closing_signed(byte[] their_node_id, ClosingSigned msg); + /**Handle an incoming `stfu` message from the given peer. + */ + void handle_stfu(byte[] their_node_id, Stfu msg); + /**Handle an incoming `splice` message from the given peer. + */ + void handle_splice(byte[] their_node_id, Splice msg); + /**Handle an incoming `splice_ack` message from the given peer. + */ + void handle_splice_ack(byte[] their_node_id, SpliceAck msg); + /**Handle an incoming `splice_locked` message from the given peer. + */ + void handle_splice_locked(byte[] their_node_id, SpliceLocked msg); /**Handle an incoming `tx_add_input message` from the given peer. */ void handle_tx_add_input(byte[] their_node_id, TxAddInput msg); @@ -201,6 +213,30 @@ public class ChannelMessageHandler : CommonBase { arg.handle_closing_signed(_their_node_id_conv, _msg_hu_conv); GC.KeepAlive(arg); } + public void handle_stfu(long _their_node_id, long _msg) { + byte[] _their_node_id_conv = InternalUtils.decodeUint8Array(_their_node_id); + org.ldk.structs.Stfu _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.Stfu(null, _msg); } + arg.handle_stfu(_their_node_id_conv, _msg_hu_conv); + GC.KeepAlive(arg); + } + public void handle_splice(long _their_node_id, long _msg) { + byte[] _their_node_id_conv = InternalUtils.decodeUint8Array(_their_node_id); + org.ldk.structs.Splice _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.Splice(null, _msg); } + arg.handle_splice(_their_node_id_conv, _msg_hu_conv); + GC.KeepAlive(arg); + } + public void handle_splice_ack(long _their_node_id, long _msg) { + byte[] _their_node_id_conv = InternalUtils.decodeUint8Array(_their_node_id); + org.ldk.structs.SpliceAck _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.SpliceAck(null, _msg); } + arg.handle_splice_ack(_their_node_id_conv, _msg_hu_conv); + GC.KeepAlive(arg); + } + public void handle_splice_locked(long _their_node_id, long _msg) { + byte[] _their_node_id_conv = InternalUtils.decodeUint8Array(_their_node_id); + org.ldk.structs.SpliceLocked _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.SpliceLocked(null, _msg); } + arg.handle_splice_locked(_their_node_id_conv, _msg_hu_conv); + GC.KeepAlive(arg); + } public void handle_tx_add_input(long _their_node_id, long _msg) { byte[] _their_node_id_conv = InternalUtils.decodeUint8Array(_their_node_id); org.ldk.structs.TxAddInput _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.TxAddInput(null, _msg); } @@ -469,6 +505,50 @@ public class ChannelMessageHandler : CommonBase { if (this != null) { this.ptrs_to.AddLast(msg); }; } + /** + * Handle an incoming `stfu` message from the given peer. + */ + public void handle_stfu(byte[] their_node_id, org.ldk.structs.Stfu msg) { + bindings.ChannelMessageHandler_handle_stfu(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(this); + GC.KeepAlive(their_node_id); + GC.KeepAlive(msg); + if (this != null) { this.ptrs_to.AddLast(msg); }; + } + + /** + * Handle an incoming `splice` message from the given peer. + */ + public void handle_splice(byte[] their_node_id, org.ldk.structs.Splice msg) { + bindings.ChannelMessageHandler_handle_splice(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(this); + GC.KeepAlive(their_node_id); + GC.KeepAlive(msg); + if (this != null) { this.ptrs_to.AddLast(msg); }; + } + + /** + * Handle an incoming `splice_ack` message from the given peer. + */ + public void handle_splice_ack(byte[] their_node_id, org.ldk.structs.SpliceAck msg) { + bindings.ChannelMessageHandler_handle_splice_ack(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(this); + GC.KeepAlive(their_node_id); + GC.KeepAlive(msg); + if (this != null) { this.ptrs_to.AddLast(msg); }; + } + + /** + * Handle an incoming `splice_locked` message from the given peer. + */ + public void handle_splice_locked(byte[] their_node_id, org.ldk.structs.SpliceLocked msg) { + bindings.ChannelMessageHandler_handle_splice_locked(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(their_node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(this); + GC.KeepAlive(their_node_id); + GC.KeepAlive(msg); + if (this != null) { this.ptrs_to.AddLast(msg); }; + } + /** * Handle an incoming `tx_add_input message` from the given peer. */ diff --git a/c_sharp/src/org/ldk/structs/ChannelMonitor.cs b/c_sharp/src/org/ldk/structs/ChannelMonitor.cs index a435ba6a..f16d4fd3 100644 --- a/c_sharp/src/org/ldk/structs/ChannelMonitor.cs +++ b/c_sharp/src/org/ldk/structs/ChannelMonitor.cs @@ -123,11 +123,13 @@ public class ChannelMonitor : CommonBase { * calling `chain::Filter::register_output` and `chain::Filter::register_tx` until all outputs * have been registered. */ - public void load_outputs_to_watch(org.ldk.structs.Filter filter) { - bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, filter.ptr); + public void load_outputs_to_watch(org.ldk.structs.Filter filter, org.ldk.structs.Logger logger) { + bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, filter.ptr, logger.ptr); GC.KeepAlive(this); GC.KeepAlive(filter); + GC.KeepAlive(logger); if (this != null) { this.ptrs_to.AddLast(filter); }; + if (this != null) { this.ptrs_to.AddLast(logger); }; } /** @@ -253,7 +255,7 @@ public class ChannelMonitor : CommonBase { * to the commitment transaction being revoked, this will return a signed transaction, but * the signature will not be valid. * - * [`EcdsaChannelSigner::sign_justice_revoked_output`]: crate::sign::EcdsaChannelSigner::sign_justice_revoked_output + * [`EcdsaChannelSigner::sign_justice_revoked_output`]: crate::sign::ecdsa::EcdsaChannelSigner::sign_justice_revoked_output * [`Persist`]: crate::chain::chainmonitor::Persist */ public Result_TransactionNoneZ sign_to_local_justice_tx(byte[] justice_tx, long input_idx, long value, long commitment_number) { @@ -462,20 +464,20 @@ public class ChannelMonitor : CommonBase { /** * Returns the set of txids that should be monitored for re-organization out of the chain. */ - public TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] get_relevant_txids() { + public ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] get_relevant_txids() { long ret = bindings.ChannelMonitor_get_relevant_txids(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - int ret_conv_49_len = InternalUtils.getArrayLength(ret); - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] ret_conv_49_arr = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[ret_conv_49_len]; - for (int x = 0; x < ret_conv_49_len; x++) { - long ret_conv_49 = InternalUtils.getU64ArrayElem(ret, x); - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_conv_49_hu_conv = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ(null, ret_conv_49); - if (ret_conv_49_hu_conv != null) { ret_conv_49_hu_conv.ptrs_to.AddLast(this); }; - ret_conv_49_arr[x] = ret_conv_49_hu_conv; + int ret_conv_54_len = InternalUtils.getArrayLength(ret); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] ret_conv_54_arr = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[ret_conv_54_len]; + for (int c = 0; c < ret_conv_54_len; c++) { + long ret_conv_54 = InternalUtils.getU64ArrayElem(ret, c); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_conv_54_hu_conv = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ(null, ret_conv_54); + if (ret_conv_54_hu_conv != null) { ret_conv_54_hu_conv.ptrs_to.AddLast(this); }; + ret_conv_54_arr[c] = ret_conv_54_hu_conv; } bindings.free_buffer(ret); - return ret_conv_49_arr; + return ret_conv_54_arr; } /** diff --git a/c_sharp/src/org/ldk/structs/ChannelPublicKeys.cs b/c_sharp/src/org/ldk/structs/ChannelPublicKeys.cs index 347c8cf1..43b596e4 100644 --- a/c_sharp/src/org/ldk/structs/ChannelPublicKeys.cs +++ b/c_sharp/src/org/ldk/structs/ChannelPublicKeys.cs @@ -43,12 +43,13 @@ public class ChannelPublicKeys : CommonBase { * counterparty to create a secret which the counterparty can reveal to revoke previous * states. */ - public byte[] get_revocation_basepoint() { + public RevocationBasepoint get_revocation_basepoint() { long ret = bindings.ChannelPublicKeys_get_revocation_basepoint(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.RevocationBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** @@ -57,10 +58,11 @@ public class ChannelPublicKeys : CommonBase { * counterparty to create a secret which the counterparty can reveal to revoke previous * states. */ - public void set_revocation_basepoint(byte[] val) { - bindings.ChannelPublicKeys_set_revocation_basepoint(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_revocation_basepoint(org.ldk.structs.RevocationBasepoint val) { + bindings.ChannelPublicKeys_set_revocation_basepoint(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** @@ -92,12 +94,13 @@ public class ChannelPublicKeys : CommonBase { * public key which receives non-HTLC-encumbered funds which are only available for spending * after some delay (or can be claimed via the revocation path). */ - public byte[] get_delayed_payment_basepoint() { + public DelayedPaymentBasepoint get_delayed_payment_basepoint() { long ret = bindings.ChannelPublicKeys_get_delayed_payment_basepoint(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.DelayedPaymentBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** @@ -105,39 +108,42 @@ public class ChannelPublicKeys : CommonBase { * public key which receives non-HTLC-encumbered funds which are only available for spending * after some delay (or can be claimed via the revocation path). */ - public void set_delayed_payment_basepoint(byte[] val) { - bindings.ChannelPublicKeys_set_delayed_payment_basepoint(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_delayed_payment_basepoint(org.ldk.structs.DelayedPaymentBasepoint val) { + bindings.ChannelPublicKeys_set_delayed_payment_basepoint(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * The base point which is used (with derive_public_key) to derive a per-commitment public key * which is used to encumber HTLC-in-flight outputs. */ - public byte[] get_htlc_basepoint() { + public HtlcBasepoint get_htlc_basepoint() { long ret = bindings.ChannelPublicKeys_get_htlc_basepoint(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.HtlcBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** * The base point which is used (with derive_public_key) to derive a per-commitment public key * which is used to encumber HTLC-in-flight outputs. */ - public void set_htlc_basepoint(byte[] val) { - bindings.ChannelPublicKeys_set_htlc_basepoint(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_htlc_basepoint(org.ldk.structs.HtlcBasepoint val) { + bindings.ChannelPublicKeys_set_htlc_basepoint(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * Constructs a new ChannelPublicKeys given each field */ - public static ChannelPublicKeys of(byte[] funding_pubkey_arg, byte[] revocation_basepoint_arg, byte[] payment_point_arg, byte[] delayed_payment_basepoint_arg, byte[] htlc_basepoint_arg) { - long ret = bindings.ChannelPublicKeys_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(funding_pubkey_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(revocation_basepoint_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_point_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(delayed_payment_basepoint_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(htlc_basepoint_arg, 33))); + public static ChannelPublicKeys of(byte[] funding_pubkey_arg, org.ldk.structs.RevocationBasepoint revocation_basepoint_arg, byte[] payment_point_arg, org.ldk.structs.DelayedPaymentBasepoint delayed_payment_basepoint_arg, org.ldk.structs.HtlcBasepoint htlc_basepoint_arg) { + long ret = bindings.ChannelPublicKeys_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(funding_pubkey_arg, 33)), revocation_basepoint_arg == null ? 0 : revocation_basepoint_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_point_arg, 33)), delayed_payment_basepoint_arg == null ? 0 : delayed_payment_basepoint_arg.ptr, htlc_basepoint_arg == null ? 0 : htlc_basepoint_arg.ptr); GC.KeepAlive(funding_pubkey_arg); GC.KeepAlive(revocation_basepoint_arg); GC.KeepAlive(payment_point_arg); @@ -146,6 +152,9 @@ public class ChannelPublicKeys : CommonBase { if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.ChannelPublicKeys ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ChannelPublicKeys(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(revocation_basepoint_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(delayed_payment_basepoint_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(htlc_basepoint_arg); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/ChannelReady.cs b/c_sharp/src/org/ldk/structs/ChannelReady.cs index dca74b75..358001a7 100644 --- a/c_sharp/src/org/ldk/structs/ChannelReady.cs +++ b/c_sharp/src/org/ldk/structs/ChannelReady.cs @@ -118,6 +118,18 @@ public class ChannelReady : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelReady. + */ + public long hash() { + long ret = bindings.ChannelReady_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ChannelReadys contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ChannelReestablish.cs b/c_sharp/src/org/ldk/structs/ChannelReestablish.cs index b070cceb..5d3bd223 100644 --- a/c_sharp/src/org/ldk/structs/ChannelReestablish.cs +++ b/c_sharp/src/org/ldk/structs/ChannelReestablish.cs @@ -173,6 +173,18 @@ public class ChannelReestablish : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelReestablish. + */ + public long hash() { + long ret = bindings.ChannelReestablish_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ChannelReestablishs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ChannelSigner.cs b/c_sharp/src/org/ldk/structs/ChannelSigner.cs index e3ab4bde..66e4cd68 100644 --- a/c_sharp/src/org/ldk/structs/ChannelSigner.cs +++ b/c_sharp/src/org/ldk/structs/ChannelSigner.cs @@ -32,14 +32,20 @@ public interface ChannelSignerInterface { * Policy checks should be implemented in this function, including checking the amount * sent to us and checking the HTLCs. * - * The preimages of outgoing HTLCs that were fulfilled since the last commitment are provided. + * The preimages of outbound HTLCs that were fulfilled since the last commitment are provided. * A validating signer should ensure that an HTLC output is removed only when the matching * preimage is provided, or when the value to holder is restored. * * Note that all the relevant preimages will be provided, but there may also be additional * irrelevant or duplicate preimages. */ - Result_NoneNoneZ validate_holder_commitment(HolderCommitmentTransaction holder_tx, byte[][] preimages); + Result_NoneNoneZ validate_holder_commitment(HolderCommitmentTransaction holder_tx, byte[][] outbound_htlc_preimages); + /**Validate the counterparty's revocation. + * + * This is required in order for the signer to make sure that the state has moved + * forward and it is safe to sign the next counterparty commitment. + */ + Result_NoneNoneZ validate_counterparty_revocation(long idx, byte[] secret); /**Returns an arbitrary identifier describing the set of keys which are provided back to you in * some [`SpendableOutputDescriptor`] types. This should be sufficient to identify this * [`EcdsaChannelSigner`] object uniquely and lookup or re-derive its keys. @@ -88,17 +94,24 @@ public class ChannelSigner : CommonBase { long result = InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(ret, 32)); return result; } - public long validate_holder_commitment(long _holder_tx, long _preimages) { + public long validate_holder_commitment(long _holder_tx, long _outbound_htlc_preimages) { org.ldk.structs.HolderCommitmentTransaction _holder_tx_hu_conv = null; if (_holder_tx < 0 || _holder_tx > 4096) { _holder_tx_hu_conv = new org.ldk.structs.HolderCommitmentTransaction(null, _holder_tx); } - int _preimages_conv_8_len = InternalUtils.getArrayLength(_preimages); - byte[][] _preimages_conv_8_arr = new byte[_preimages_conv_8_len][]; - for (int i = 0; i < _preimages_conv_8_len; i++) { - long _preimages_conv_8 = InternalUtils.getU64ArrayElem(_preimages, i); - byte[] _preimages_conv_8_conv = InternalUtils.decodeUint8Array(_preimages_conv_8); - _preimages_conv_8_arr[i] = _preimages_conv_8_conv; + int _outbound_htlc_preimages_conv_8_len = InternalUtils.getArrayLength(_outbound_htlc_preimages); + byte[][] _outbound_htlc_preimages_conv_8_arr = new byte[_outbound_htlc_preimages_conv_8_len][]; + for (int i = 0; i < _outbound_htlc_preimages_conv_8_len; i++) { + long _outbound_htlc_preimages_conv_8 = InternalUtils.getU64ArrayElem(_outbound_htlc_preimages, i); + byte[] _outbound_htlc_preimages_conv_8_conv = InternalUtils.decodeUint8Array(_outbound_htlc_preimages_conv_8); + _outbound_htlc_preimages_conv_8_arr[i] = _outbound_htlc_preimages_conv_8_conv; } - bindings.free_buffer(_preimages); - Result_NoneNoneZ ret = arg.validate_holder_commitment(_holder_tx_hu_conv, _preimages_conv_8_arr); + bindings.free_buffer(_outbound_htlc_preimages); + Result_NoneNoneZ ret = arg.validate_holder_commitment(_holder_tx_hu_conv, _outbound_htlc_preimages_conv_8_arr); + GC.KeepAlive(arg); + long result = ret == null ? 0 : ret.clone_ptr(); + return result; + } + public long validate_counterparty_revocation(long _idx, long _secret) { + byte[] _secret_conv = InternalUtils.decodeUint8Array(_secret); + Result_NoneNoneZ ret = arg.validate_counterparty_revocation(_idx, _secret_conv); GC.KeepAlive(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; @@ -169,24 +182,40 @@ public class ChannelSigner : CommonBase { * Policy checks should be implemented in this function, including checking the amount * sent to us and checking the HTLCs. * - * The preimages of outgoing HTLCs that were fulfilled since the last commitment are provided. + * The preimages of outbound HTLCs that were fulfilled since the last commitment are provided. * A validating signer should ensure that an HTLC output is removed only when the matching * preimage is provided, or when the value to holder is restored. * * Note that all the relevant preimages will be provided, but there may also be additional * irrelevant or duplicate preimages. */ - public Result_NoneNoneZ validate_holder_commitment(org.ldk.structs.HolderCommitmentTransaction holder_tx, byte[][] preimages) { - long ret = bindings.ChannelSigner_validate_holder_commitment(this.ptr, holder_tx == null ? 0 : holder_tx.ptr, InternalUtils.encodeUint64Array(InternalUtils.mapArray(preimages, preimages_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(preimages_conv_8, 32))))); + public Result_NoneNoneZ validate_holder_commitment(org.ldk.structs.HolderCommitmentTransaction holder_tx, byte[][] outbound_htlc_preimages) { + long ret = bindings.ChannelSigner_validate_holder_commitment(this.ptr, holder_tx == null ? 0 : holder_tx.ptr, InternalUtils.encodeUint64Array(InternalUtils.mapArray(outbound_htlc_preimages, outbound_htlc_preimages_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(outbound_htlc_preimages_conv_8, 32))))); GC.KeepAlive(this); GC.KeepAlive(holder_tx); - GC.KeepAlive(preimages); + GC.KeepAlive(outbound_htlc_preimages); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret); if (this != null) { this.ptrs_to.AddLast(holder_tx); }; return ret_hu_conv; } + /** + * Validate the counterparty's revocation. + * + * This is required in order for the signer to make sure that the state has moved + * forward and it is safe to sign the next counterparty commitment. + */ + public Result_NoneNoneZ validate_counterparty_revocation(long idx, byte[] secret) { + long ret = bindings.ChannelSigner_validate_counterparty_revocation(this.ptr, idx, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(secret, 32))); + GC.KeepAlive(this); + GC.KeepAlive(idx); + GC.KeepAlive(secret); + if (ret >= 0 && ret <= 4096) { return null; } + Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + /** * Returns an arbitrary identifier describing the set of keys which are provided back to you in * some [`SpendableOutputDescriptor`] types. This should be sufficient to identify this diff --git a/c_sharp/src/org/ldk/structs/ChannelTypeFeatures.cs b/c_sharp/src/org/ldk/structs/ChannelTypeFeatures.cs index b575a7fd..4bd502d5 100644 --- a/c_sharp/src/org/ldk/structs/ChannelTypeFeatures.cs +++ b/c_sharp/src/org/ldk/structs/ChannelTypeFeatures.cs @@ -59,6 +59,18 @@ public class ChannelTypeFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelTypeFeatures. + */ + public long hash() { + long ret = bindings.ChannelTypeFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/ChannelUpdate.cs b/c_sharp/src/org/ldk/structs/ChannelUpdate.cs index 8bde69b4..8d47ee1c 100644 --- a/c_sharp/src/org/ldk/structs/ChannelUpdate.cs +++ b/c_sharp/src/org/ldk/structs/ChannelUpdate.cs @@ -91,6 +91,18 @@ public class ChannelUpdate : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ChannelUpdate. + */ + public long hash() { + long ret = bindings.ChannelUpdate_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ChannelUpdates contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ClaimedHTLC.cs b/c_sharp/src/org/ldk/structs/ClaimedHTLC.cs index 08063f20..0b64dad1 100644 --- a/c_sharp/src/org/ldk/structs/ClaimedHTLC.cs +++ b/c_sharp/src/org/ldk/structs/ClaimedHTLC.cs @@ -115,15 +115,40 @@ public class ClaimedHTLC : CommonBase { GC.KeepAlive(val); } + /** + * The extra fee our counterparty skimmed off the top of this HTLC, if any. + * + * This value will always be 0 for [`ClaimedHTLC`]s serialized with LDK versions prior to + * 0.0.119. + */ + public long get_counterparty_skimmed_fee_msat() { + long ret = bindings.ClaimedHTLC_get_counterparty_skimmed_fee_msat(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The extra fee our counterparty skimmed off the top of this HTLC, if any. + * + * This value will always be 0 for [`ClaimedHTLC`]s serialized with LDK versions prior to + * 0.0.119. + */ + public void set_counterparty_skimmed_fee_msat(long val) { + bindings.ClaimedHTLC_set_counterparty_skimmed_fee_msat(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + /** * Constructs a new ClaimedHTLC given each field */ - public static ClaimedHTLC of(byte[] channel_id_arg, org.ldk.util.UInt128 user_channel_id_arg, int cltv_expiry_arg, long value_msat_arg) { - long ret = bindings.ClaimedHTLC_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), InternalUtils.encodeUint8Array(user_channel_id_arg.getLEBytes()), cltv_expiry_arg, value_msat_arg); + public static ClaimedHTLC of(byte[] channel_id_arg, org.ldk.util.UInt128 user_channel_id_arg, int cltv_expiry_arg, long value_msat_arg, long counterparty_skimmed_fee_msat_arg) { + long ret = bindings.ClaimedHTLC_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), InternalUtils.encodeUint8Array(user_channel_id_arg.getLEBytes()), cltv_expiry_arg, value_msat_arg, counterparty_skimmed_fee_msat_arg); GC.KeepAlive(channel_id_arg); GC.KeepAlive(user_channel_id_arg); GC.KeepAlive(cltv_expiry_arg); GC.KeepAlive(value_msat_arg); + GC.KeepAlive(counterparty_skimmed_fee_msat_arg); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.ClaimedHTLC ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ClaimedHTLC(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; diff --git a/c_sharp/src/org/ldk/structs/ClosingSigned.cs b/c_sharp/src/org/ldk/structs/ClosingSigned.cs index 18f75ddc..08f6cac9 100644 --- a/c_sharp/src/org/ldk/structs/ClosingSigned.cs +++ b/c_sharp/src/org/ldk/structs/ClosingSigned.cs @@ -139,6 +139,18 @@ public class ClosingSigned : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ClosingSigned. + */ + public long hash() { + long ret = bindings.ClosingSigned_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ClosingSigneds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ClosingSignedFeeRange.cs b/c_sharp/src/org/ldk/structs/ClosingSignedFeeRange.cs index 78dfa13c..72f5aee8 100644 --- a/c_sharp/src/org/ldk/structs/ClosingSignedFeeRange.cs +++ b/c_sharp/src/org/ldk/structs/ClosingSignedFeeRange.cs @@ -89,6 +89,18 @@ public class ClosingSignedFeeRange : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ClosingSignedFeeRange. + */ + public long hash() { + long ret = bindings.ClosingSignedFeeRange_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ClosingSignedFeeRanges contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/CoinSelectionSource.cs b/c_sharp/src/org/ldk/structs/CoinSelectionSource.cs index 192231e4..0e7a74b0 100644 --- a/c_sharp/src/org/ldk/structs/CoinSelectionSource.cs +++ b/c_sharp/src/org/ldk/structs/CoinSelectionSource.cs @@ -40,8 +40,11 @@ public interface CoinSelectionSourceInterface { Result_CoinSelectionNoneZ select_confirmed_utxos(byte[] claim_id, Input[] must_spend, TxOut[] must_pay_to, int target_feerate_sat_per_1000_weight); /**Signs and provides the full witness for all inputs within the transaction known to the * trait (i.e., any provided via [`CoinSelectionSource::select_confirmed_utxos`]). + * + * If your wallet does not support signing PSBTs you can call `psbt.extract_tx()` to get the + * unsigned transaction and then sign it with your wallet. */ - Result_TransactionNoneZ sign_tx(byte[] tx); + Result_TransactionNoneZ sign_psbt(byte[] psbt); } /** @@ -88,9 +91,9 @@ public class CoinSelectionSource : CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } - public long sign_tx(long _tx) { - byte[] _tx_conv = InternalUtils.decodeUint8Array(_tx); - Result_TransactionNoneZ ret = arg.sign_tx(_tx_conv); + public long sign_psbt(long _psbt) { + byte[] _psbt_conv = InternalUtils.decodeUint8Array(_psbt); + Result_TransactionNoneZ ret = arg.sign_psbt(_psbt_conv); GC.KeepAlive(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; @@ -153,11 +156,14 @@ public class CoinSelectionSource : CommonBase { /** * Signs and provides the full witness for all inputs within the transaction known to the * trait (i.e., any provided via [`CoinSelectionSource::select_confirmed_utxos`]). + * + * If your wallet does not support signing PSBTs you can call `psbt.extract_tx()` to get the + * unsigned transaction and then sign it with your wallet. */ - public Result_TransactionNoneZ sign_tx(byte[] tx) { - long ret = bindings.CoinSelectionSource_sign_tx(this.ptr, InternalUtils.encodeUint8Array(tx)); + public Result_TransactionNoneZ sign_psbt(byte[] psbt) { + long ret = bindings.CoinSelectionSource_sign_psbt(this.ptr, InternalUtils.encodeUint8Array(psbt)); GC.KeepAlive(this); - GC.KeepAlive(tx); + GC.KeepAlive(psbt); if (ret >= 0 && ret <= 4096) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; diff --git a/c_sharp/src/org/ldk/structs/CommitmentSigned.cs b/c_sharp/src/org/ldk/structs/CommitmentSigned.cs index adcfc649..6b21710a 100644 --- a/c_sharp/src/org/ldk/structs/CommitmentSigned.cs +++ b/c_sharp/src/org/ldk/structs/CommitmentSigned.cs @@ -118,6 +118,18 @@ public class CommitmentSigned : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the CommitmentSigned. + */ + public long hash() { + long ret = bindings.CommitmentSigned_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two CommitmentSigneds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/CommitmentUpdate.cs b/c_sharp/src/org/ldk/structs/CommitmentUpdate.cs index 9ec94107..d14ed22a 100644 --- a/c_sharp/src/org/ldk/structs/CommitmentUpdate.cs +++ b/c_sharp/src/org/ldk/structs/CommitmentUpdate.cs @@ -223,6 +223,18 @@ public class CommitmentUpdate : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the CommitmentUpdate. + */ + public long hash() { + long ret = bindings.CommitmentUpdate_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two CommitmentUpdates contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Confirm.cs b/c_sharp/src/org/ldk/structs/Confirm.cs index 01eae0ba..5d36fda7 100644 --- a/c_sharp/src/org/ldk/structs/Confirm.cs +++ b/c_sharp/src/org/ldk/structs/Confirm.cs @@ -43,7 +43,7 @@ public interface ConfirmInterface { */ void best_block_updated(byte[] header, int height); /**Returns transactions that must be monitored for reorganization out of the chain along - * with the hash of the block as part of which it had been previously confirmed. + * with the height and the hash of the block as part of which it had been previously confirmed. * * Note that the returned `Option` might be `None` for channels created with LDK * 0.0.112 and prior, in which case you need to manually track previous confirmations. @@ -58,13 +58,13 @@ public interface ConfirmInterface { * given to [`transaction_unconfirmed`]. * * If any of the returned transactions are confirmed in a block other than the one with the - * given hash, they need to be unconfirmed and reconfirmed via [`transaction_unconfirmed`] and - * [`transactions_confirmed`], respectively. + * given hash at the given height, they need to be unconfirmed and reconfirmed via + * [`transaction_unconfirmed`] and [`transactions_confirmed`], respectively. * * [`transactions_confirmed`]: Self::transactions_confirmed * [`transaction_unconfirmed`]: Self::transaction_unconfirmed */ - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] get_relevant_txids(); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] get_relevant_txids(); } /** @@ -144,9 +144,9 @@ public class Confirm : CommonBase { GC.KeepAlive(arg); } public long get_relevant_txids() { - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] ret = arg.get_relevant_txids(); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] ret = arg.get_relevant_txids(); GC.KeepAlive(arg); - long result = InternalUtils.encodeUint64Array(InternalUtils.mapArray(ret, ret_conv_49 => ret_conv_49 == null ? 0 : ret_conv_49.clone_ptr())); + long result = InternalUtils.encodeUint64Array(InternalUtils.mapArray(ret, ret_conv_54 => ret_conv_54 == null ? 0 : ret_conv_54.clone_ptr())); return result; } } @@ -218,7 +218,7 @@ public class Confirm : CommonBase { /** * Returns transactions that must be monitored for reorganization out of the chain along - * with the hash of the block as part of which it had been previously confirmed. + * with the height and the hash of the block as part of which it had been previously confirmed. * * Note that the returned `Option` might be `None` for channels created with LDK * 0.0.112 and prior, in which case you need to manually track previous confirmations. @@ -233,26 +233,26 @@ public class Confirm : CommonBase { * given to [`transaction_unconfirmed`]. * * If any of the returned transactions are confirmed in a block other than the one with the - * given hash, they need to be unconfirmed and reconfirmed via [`transaction_unconfirmed`] and - * [`transactions_confirmed`], respectively. + * given hash at the given height, they need to be unconfirmed and reconfirmed via + * [`transaction_unconfirmed`] and [`transactions_confirmed`], respectively. * * [`transactions_confirmed`]: Self::transactions_confirmed * [`transaction_unconfirmed`]: Self::transaction_unconfirmed */ - public TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] get_relevant_txids() { + public ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] get_relevant_txids() { long ret = bindings.Confirm_get_relevant_txids(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - int ret_conv_49_len = InternalUtils.getArrayLength(ret); - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[] ret_conv_49_arr = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ[ret_conv_49_len]; - for (int x = 0; x < ret_conv_49_len; x++) { - long ret_conv_49 = InternalUtils.getU64ArrayElem(ret, x); - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_conv_49_hu_conv = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ(null, ret_conv_49); - if (ret_conv_49_hu_conv != null) { ret_conv_49_hu_conv.ptrs_to.AddLast(this); }; - ret_conv_49_arr[x] = ret_conv_49_hu_conv; + int ret_conv_54_len = InternalUtils.getArrayLength(ret); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[] ret_conv_54_arr = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ[ret_conv_54_len]; + for (int c = 0; c < ret_conv_54_len; c++) { + long ret_conv_54 = InternalUtils.getU64ArrayElem(ret, c); + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_conv_54_hu_conv = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ(null, ret_conv_54); + if (ret_conv_54_hu_conv != null) { ret_conv_54_hu_conv.ptrs_to.AddLast(this); }; + ret_conv_54_arr[c] = ret_conv_54_hu_conv; } bindings.free_buffer(ret); - return ret_conv_49_arr; + return ret_conv_54_arr; } } diff --git a/c_sharp/src/org/ldk/structs/DecodeError.cs b/c_sharp/src/org/ldk/structs/DecodeError.cs index ac828661..e1033e6a 100644 --- a/c_sharp/src/org/ldk/structs/DecodeError.cs +++ b/c_sharp/src/org/ldk/structs/DecodeError.cs @@ -162,6 +162,18 @@ public class DecodeError : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the DecodeError. + */ + public long hash() { + long ret = bindings.DecodeError_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two DecodeErrors contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/DefaultMessageRouter.cs b/c_sharp/src/org/ldk/structs/DefaultMessageRouter.cs index ab161ea1..6d03f2c9 100644 --- a/c_sharp/src/org/ldk/structs/DefaultMessageRouter.cs +++ b/c_sharp/src/org/ldk/structs/DefaultMessageRouter.cs @@ -16,13 +16,17 @@ public class DefaultMessageRouter : CommonBase { } /** - * Constructs a new DefaultMessageRouter given each field + * Creates a [`DefaultMessageRouter`] using the given [`NetworkGraph`]. */ - public static DefaultMessageRouter of() { - long ret = bindings.DefaultMessageRouter_new(); + public static DefaultMessageRouter of(org.ldk.structs.NetworkGraph network_graph, org.ldk.structs.EntropySource entropy_source) { + long ret = bindings.DefaultMessageRouter_new(network_graph == null ? 0 : network_graph.ptr, entropy_source.ptr); + GC.KeepAlive(network_graph); + GC.KeepAlive(entropy_source); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.DefaultMessageRouter ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DefaultMessageRouter(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(network_graph); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(entropy_source); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/DefaultRouter.cs b/c_sharp/src/org/ldk/structs/DefaultRouter.cs index 6fd84172..a3f9e556 100644 --- a/c_sharp/src/org/ldk/structs/DefaultRouter.cs +++ b/c_sharp/src/org/ldk/structs/DefaultRouter.cs @@ -18,11 +18,11 @@ public class DefaultRouter : CommonBase { /** * Creates a new router. */ - public static DefaultRouter of(org.ldk.structs.NetworkGraph network_graph, org.ldk.structs.Logger logger, byte[] random_seed_bytes, org.ldk.structs.LockableScore scorer, org.ldk.structs.ProbabilisticScoringFeeParameters score_params) { - long ret = bindings.DefaultRouter_new(network_graph == null ? 0 : network_graph.ptr, logger.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(random_seed_bytes, 32)), scorer.ptr, score_params == null ? 0 : score_params.ptr); + public static DefaultRouter of(org.ldk.structs.NetworkGraph network_graph, org.ldk.structs.Logger logger, org.ldk.structs.EntropySource entropy_source, org.ldk.structs.LockableScore scorer, org.ldk.structs.ProbabilisticScoringFeeParameters score_params) { + long ret = bindings.DefaultRouter_new(network_graph == null ? 0 : network_graph.ptr, logger.ptr, entropy_source.ptr, scorer.ptr, score_params == null ? 0 : score_params.ptr); GC.KeepAlive(network_graph); GC.KeepAlive(logger); - GC.KeepAlive(random_seed_bytes); + GC.KeepAlive(entropy_source); GC.KeepAlive(scorer); GC.KeepAlive(score_params); if (ret >= 0 && ret <= 4096) { return null; } @@ -30,6 +30,7 @@ public class DefaultRouter : CommonBase { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(network_graph); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(logger); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(entropy_source); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(scorer); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(score_params); }; return ret_hu_conv; @@ -48,5 +49,18 @@ public class DefaultRouter : CommonBase { return ret_hu_conv; } + /** + * Constructs a new MessageRouter which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned MessageRouter must be freed before this_arg is + */ + public MessageRouter as_MessageRouter() { + long ret = bindings.DefaultRouter_as_MessageRouter(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + MessageRouter ret_hu_conv = new MessageRouter(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/DelayedPaymentBasepoint.cs b/c_sharp/src/org/ldk/structs/DelayedPaymentBasepoint.cs new file mode 100644 index 00000000..20166c7a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/DelayedPaymentBasepoint.cs @@ -0,0 +1,129 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Base key used in conjunction with a `per_commitment_point` to generate a [`DelayedPaymentKey`]. + * + * The delayed payment key is used to pay the commitment state broadcaster their + * non-HTLC-encumbered funds after a delay to give their counterparty a chance to punish if the + * state broadcasted was previously revoked. + */ +public class DelayedPaymentBasepoint : CommonBase { + internal DelayedPaymentBasepoint(object _dummy, long ptr) : base(ptr) { } + ~DelayedPaymentBasepoint() { + if (ptr != 0) { bindings.DelayedPaymentBasepoint_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.DelayedPaymentBasepoint_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.DelayedPaymentBasepoint_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new DelayedPaymentBasepoint given each field + */ + public static DelayedPaymentBasepoint of(byte[] a_arg) { + long ret = bindings.DelayedPaymentBasepoint_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two DelayedPaymentBasepoints contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.DelayedPaymentBasepoint b) { + bool ret = bindings.DelayedPaymentBasepoint_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is DelayedPaymentBasepoint)) return false; + return this.eq((DelayedPaymentBasepoint)o); + } + internal long clone_ptr() { + long ret = bindings.DelayedPaymentBasepoint_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the DelayedPaymentBasepoint + */ + public DelayedPaymentBasepoint clone() { + long ret = bindings.DelayedPaymentBasepoint_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the DelayedPaymentBasepoint. + */ + public long hash() { + long ret = bindings.DelayedPaymentBasepoint_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.DelayedPaymentBasepoint_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the DelayedPaymentBasepoint object into a byte array which can be read by DelayedPaymentBasepoint_read + */ + public byte[] write() { + long ret = bindings.DelayedPaymentBasepoint_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a DelayedPaymentBasepoint from a byte array, created by DelayedPaymentBasepoint_write + */ + public static Result_DelayedPaymentBasepointDecodeErrorZ read(byte[] ser) { + long ret = bindings.DelayedPaymentBasepoint_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentBasepointDecodeErrorZ ret_hu_conv = Result_DelayedPaymentBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/DelayedPaymentKey.cs b/c_sharp/src/org/ldk/structs/DelayedPaymentKey.cs new file mode 100644 index 00000000..03408940 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/DelayedPaymentKey.cs @@ -0,0 +1,147 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A derived key built from a [`DelayedPaymentBasepoint`] and `per_commitment_point`. + * + * The delayed payment key is used to pay the commitment state broadcaster their + * non-HTLC-encumbered funds after a delay. This delay gives their counterparty a chance to + * punish and claim all the channel funds if the state broadcasted was previously revoked. + * + * [See the BOLT specs] + * (https://github.com/lightning/bolts/blob/master/03-transactions.md#localpubkey-local_htlcpubkey-remote_htlcpubkey-local_delayedpubkey-and-remote_delayedpubkey-derivation) + * for more information on key derivation details. + */ +public class DelayedPaymentKey : CommonBase { + internal DelayedPaymentKey(object _dummy, long ptr) : base(ptr) { } + ~DelayedPaymentKey() { + if (ptr != 0) { bindings.DelayedPaymentKey_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.DelayedPaymentKey_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.DelayedPaymentKey_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new DelayedPaymentKey given each field + */ + public static DelayedPaymentKey of(byte[] a_arg) { + long ret = bindings.DelayedPaymentKey_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two DelayedPaymentKeys contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.DelayedPaymentKey b) { + bool ret = bindings.DelayedPaymentKey_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is DelayedPaymentKey)) return false; + return this.eq((DelayedPaymentKey)o); + } + internal long clone_ptr() { + long ret = bindings.DelayedPaymentKey_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the DelayedPaymentKey + */ + public DelayedPaymentKey clone() { + long ret = bindings.DelayedPaymentKey_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Derive a public delayedpubkey using one node\'s `per_commitment_point` and its countersignatory\'s `basepoint` + */ + public static DelayedPaymentKey from_basepoint(org.ldk.structs.DelayedPaymentBasepoint countersignatory_basepoint, byte[] per_commitment_point) { + long ret = bindings.DelayedPaymentKey_from_basepoint(countersignatory_basepoint == null ? 0 : countersignatory_basepoint.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33))); + GC.KeepAlive(countersignatory_basepoint); + GC.KeepAlive(per_commitment_point); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_basepoint); }; + return ret_hu_conv; + } + + /** + * Build a delayedpubkey directly from an already-derived private key + */ + public static DelayedPaymentKey from_secret_key(byte[] sk) { + long ret = bindings.DelayedPaymentKey_from_secret_key(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(sk, 32))); + GC.KeepAlive(sk); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.DelayedPaymentKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.DelayedPaymentKey_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the DelayedPaymentKey object into a byte array which can be read by DelayedPaymentKey_read + */ + public byte[] write() { + long ret = bindings.DelayedPaymentKey_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a DelayedPaymentKey from a byte array, created by DelayedPaymentKey_write + */ + public static Result_DelayedPaymentKeyDecodeErrorZ read(byte[] ser) { + long ret = bindings.DelayedPaymentKey_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentKeyDecodeErrorZ ret_hu_conv = Result_DelayedPaymentKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/DelayedPaymentOutputDescriptor.cs b/c_sharp/src/org/ldk/structs/DelayedPaymentOutputDescriptor.cs index cb13ce90..b5536ec4 100644 --- a/c_sharp/src/org/ldk/structs/DelayedPaymentOutputDescriptor.cs +++ b/c_sharp/src/org/ldk/structs/DelayedPaymentOutputDescriptor.cs @@ -103,22 +103,24 @@ public class DelayedPaymentOutputDescriptor : CommonBase { * The revocation point specific to the commitment transaction which was broadcast. Used to * derive the witnessScript for this output. */ - public byte[] get_revocation_pubkey() { + public RevocationKey get_revocation_pubkey() { long ret = bindings.DelayedPaymentOutputDescriptor_get_revocation_pubkey(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.RevocationKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** * The revocation point specific to the commitment transaction which was broadcast. Used to * derive the witnessScript for this output. */ - public void set_revocation_pubkey(byte[] val) { - bindings.DelayedPaymentOutputDescriptor_set_revocation_pubkey(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_revocation_pubkey(org.ldk.structs.RevocationKey val) { + bindings.DelayedPaymentOutputDescriptor_set_revocation_pubkey(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** @@ -164,8 +166,8 @@ public class DelayedPaymentOutputDescriptor : CommonBase { /** * Constructs a new DelayedPaymentOutputDescriptor given each field */ - public static DelayedPaymentOutputDescriptor of(org.ldk.structs.OutPoint outpoint_arg, byte[] per_commitment_point_arg, short to_self_delay_arg, org.ldk.structs.TxOut output_arg, byte[] revocation_pubkey_arg, byte[] channel_keys_id_arg, long channel_value_satoshis_arg) { - long ret = bindings.DelayedPaymentOutputDescriptor_new(outpoint_arg == null ? 0 : outpoint_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point_arg, 33)), to_self_delay_arg, output_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(revocation_pubkey_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_keys_id_arg, 32)), channel_value_satoshis_arg); + public static DelayedPaymentOutputDescriptor of(org.ldk.structs.OutPoint outpoint_arg, byte[] per_commitment_point_arg, short to_self_delay_arg, org.ldk.structs.TxOut output_arg, org.ldk.structs.RevocationKey revocation_pubkey_arg, byte[] channel_keys_id_arg, long channel_value_satoshis_arg) { + long ret = bindings.DelayedPaymentOutputDescriptor_new(outpoint_arg == null ? 0 : outpoint_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point_arg, 33)), to_self_delay_arg, output_arg.ptr, revocation_pubkey_arg == null ? 0 : revocation_pubkey_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_keys_id_arg, 32)), channel_value_satoshis_arg); GC.KeepAlive(outpoint_arg); GC.KeepAlive(per_commitment_point_arg); GC.KeepAlive(to_self_delay_arg); @@ -177,6 +179,7 @@ public class DelayedPaymentOutputDescriptor : CommonBase { org.ldk.structs.DelayedPaymentOutputDescriptor ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentOutputDescriptor(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(outpoint_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(revocation_pubkey_arg); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/Description.cs b/c_sharp/src/org/ldk/structs/Description.cs index adbbd791..83657827 100644 --- a/c_sharp/src/org/ldk/structs/Description.cs +++ b/c_sharp/src/org/ldk/structs/Description.cs @@ -80,14 +80,26 @@ public class Description : CommonBase { } /** - * Returns the underlying description [`String`] + * Returns the underlying description [`UntrustedString`] */ - public string into_inner() { + public UntrustedString into_inner() { long ret = bindings.Description_into_inner(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - string ret_conv = InternalUtils.decodeString(ret); + org.ldk.structs.UntrustedString ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.UntrustedString(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; if (this != null) { this.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Get the string representation of a Description object + */ + public string to_str() { + long ret = bindings.Description_to_str(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + string ret_conv = InternalUtils.decodeString(ret); return ret_conv; } diff --git a/c_sharp/src/org/ldk/structs/DirectedChannelInfo.cs b/c_sharp/src/org/ldk/structs/DirectedChannelInfo.cs index c08ef755..fea5e7fb 100644 --- a/c_sharp/src/org/ldk/structs/DirectedChannelInfo.cs +++ b/c_sharp/src/org/ldk/structs/DirectedChannelInfo.cs @@ -46,15 +46,6 @@ public class DirectedChannelInfo : CommonBase { return ret_hu_conv; } - /** - * Returns the maximum HTLC amount allowed over the channel in the direction. - */ - public long htlc_maximum_msat() { - long ret = bindings.DirectedChannelInfo_htlc_maximum_msat(this.ptr); - GC.KeepAlive(this); - return ret; - } - /** * Returns the [`EffectiveCapacity`] of the channel in the direction. * diff --git a/c_sharp/src/org/ldk/structs/EcdsaChannelSigner.cs b/c_sharp/src/org/ldk/structs/EcdsaChannelSigner.cs index cb33ab88..c831afa8 100644 --- a/c_sharp/src/org/ldk/structs/EcdsaChannelSigner.cs +++ b/c_sharp/src/org/ldk/structs/EcdsaChannelSigner.cs @@ -17,20 +17,15 @@ public interface EcdsaChannelSignerInterface { * Policy checks should be implemented in this function, including checking the amount * sent to us and checking the HTLCs. * - * The preimages of outgoing HTLCs that were fulfilled since the last commitment are provided. - * A validating signer should ensure that an HTLC output is removed only when the matching - * preimage is provided, or when the value to holder is restored. + * The preimages of outbound and inbound HTLCs that were fulfilled since the last commitment + * are provided. A validating signer should ensure that an outbound HTLC output is removed + * only when the matching preimage is provided and after the corresponding inbound HTLC has + * been removed for forwarded payments. * * Note that all the relevant preimages will be provided, but there may also be additional * irrelevant or duplicate preimages. */ - Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx, byte[][] preimages); - /**Validate the counterparty's revocation. - * - * This is required in order for the signer to make sure that the state has moved - * forward and it is safe to sign the next counterparty commitment. - */ - Result_NoneNoneZ validate_counterparty_revocation(long idx, byte[] secret); + Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx, byte[][] inbound_htlc_preimages, byte[][] outbound_htlc_preimages); /**Creates a signature for a holder's commitment transaction. * * This will be called @@ -86,7 +81,7 @@ public interface EcdsaChannelSignerInterface { * [`ChannelMonitor`] [replica](https://github.com/lightningdevkit/rust-lightning/blob/main/GLOSSARY.md#monitor-replicas) * broadcasts it before receiving the update for the latest commitment transaction. * - * [`EcdsaSighashType::All`]: bitcoin::blockdata::transaction::EcdsaSighashType::All + * [`EcdsaSighashType::All`]: bitcoin::sighash::EcdsaSighashType::All * [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor */ Result_ECDSASignatureNoneZ sign_holder_htlc_transaction(byte[] htlc_tx, long input, HTLCDescriptor htlc_descriptor); @@ -128,6 +123,8 @@ public interface EcdsaChannelSignerInterface { * Note that if this fails or is rejected, the channel will not be publicly announced and * our counterparty may (though likely will not) close the channel on us for violating the * protocol. + * + * [`NodeSigner::sign_gossip_message`]: crate::sign::NodeSigner::sign_gossip_message */ Result_ECDSASignatureNoneZ sign_channel_announcement_with_funding_key(UnsignedChannelAnnouncement msg); } @@ -155,24 +152,25 @@ public class EcdsaChannelSigner : CommonBase { internal LDKEcdsaChannelSignerImpl(EcdsaChannelSignerInterface arg, LDKEcdsaChannelSignerHolder impl_holder) { this.arg = arg; this.impl_holder = impl_holder; } private EcdsaChannelSignerInterface arg; private LDKEcdsaChannelSignerHolder impl_holder; - public long sign_counterparty_commitment(long _commitment_tx, long _preimages) { + public long sign_counterparty_commitment(long _commitment_tx, long _inbound_htlc_preimages, long _outbound_htlc_preimages) { org.ldk.structs.CommitmentTransaction _commitment_tx_hu_conv = null; if (_commitment_tx < 0 || _commitment_tx > 4096) { _commitment_tx_hu_conv = new org.ldk.structs.CommitmentTransaction(null, _commitment_tx); } - int _preimages_conv_8_len = InternalUtils.getArrayLength(_preimages); - byte[][] _preimages_conv_8_arr = new byte[_preimages_conv_8_len][]; - for (int i = 0; i < _preimages_conv_8_len; i++) { - long _preimages_conv_8 = InternalUtils.getU64ArrayElem(_preimages, i); - byte[] _preimages_conv_8_conv = InternalUtils.decodeUint8Array(_preimages_conv_8); - _preimages_conv_8_arr[i] = _preimages_conv_8_conv; + int _inbound_htlc_preimages_conv_8_len = InternalUtils.getArrayLength(_inbound_htlc_preimages); + byte[][] _inbound_htlc_preimages_conv_8_arr = new byte[_inbound_htlc_preimages_conv_8_len][]; + for (int i = 0; i < _inbound_htlc_preimages_conv_8_len; i++) { + long _inbound_htlc_preimages_conv_8 = InternalUtils.getU64ArrayElem(_inbound_htlc_preimages, i); + byte[] _inbound_htlc_preimages_conv_8_conv = InternalUtils.decodeUint8Array(_inbound_htlc_preimages_conv_8); + _inbound_htlc_preimages_conv_8_arr[i] = _inbound_htlc_preimages_conv_8_conv; } - bindings.free_buffer(_preimages); - Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ ret = arg.sign_counterparty_commitment(_commitment_tx_hu_conv, _preimages_conv_8_arr); - GC.KeepAlive(arg); - long result = ret == null ? 0 : ret.clone_ptr(); - return result; - } - public long validate_counterparty_revocation(long _idx, long _secret) { - byte[] _secret_conv = InternalUtils.decodeUint8Array(_secret); - Result_NoneNoneZ ret = arg.validate_counterparty_revocation(_idx, _secret_conv); + bindings.free_buffer(_inbound_htlc_preimages); + int _outbound_htlc_preimages_conv_8_len = InternalUtils.getArrayLength(_outbound_htlc_preimages); + byte[][] _outbound_htlc_preimages_conv_8_arr = new byte[_outbound_htlc_preimages_conv_8_len][]; + for (int i = 0; i < _outbound_htlc_preimages_conv_8_len; i++) { + long _outbound_htlc_preimages_conv_8 = InternalUtils.getU64ArrayElem(_outbound_htlc_preimages, i); + byte[] _outbound_htlc_preimages_conv_8_conv = InternalUtils.decodeUint8Array(_outbound_htlc_preimages_conv_8); + _outbound_htlc_preimages_conv_8_arr[i] = _outbound_htlc_preimages_conv_8_conv; + } + bindings.free_buffer(_outbound_htlc_preimages); + Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ ret = arg.sign_counterparty_commitment(_commitment_tx_hu_conv, _inbound_htlc_preimages_conv_8_arr, _outbound_htlc_preimages_conv_8_arr); GC.KeepAlive(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; @@ -263,40 +261,26 @@ public class EcdsaChannelSigner : CommonBase { * Policy checks should be implemented in this function, including checking the amount * sent to us and checking the HTLCs. * - * The preimages of outgoing HTLCs that were fulfilled since the last commitment are provided. - * A validating signer should ensure that an HTLC output is removed only when the matching - * preimage is provided, or when the value to holder is restored. + * The preimages of outbound and inbound HTLCs that were fulfilled since the last commitment + * are provided. A validating signer should ensure that an outbound HTLC output is removed + * only when the matching preimage is provided and after the corresponding inbound HTLC has + * been removed for forwarded payments. * * Note that all the relevant preimages will be provided, but there may also be additional * irrelevant or duplicate preimages. */ - public Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment(org.ldk.structs.CommitmentTransaction commitment_tx, byte[][] preimages) { - long ret = bindings.EcdsaChannelSigner_sign_counterparty_commitment(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr, InternalUtils.encodeUint64Array(InternalUtils.mapArray(preimages, preimages_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(preimages_conv_8, 32))))); + public Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ sign_counterparty_commitment(org.ldk.structs.CommitmentTransaction commitment_tx, byte[][] inbound_htlc_preimages, byte[][] outbound_htlc_preimages) { + long ret = bindings.EcdsaChannelSigner_sign_counterparty_commitment(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr, InternalUtils.encodeUint64Array(InternalUtils.mapArray(inbound_htlc_preimages, inbound_htlc_preimages_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(inbound_htlc_preimages_conv_8, 32)))), InternalUtils.encodeUint64Array(InternalUtils.mapArray(outbound_htlc_preimages, outbound_htlc_preimages_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(outbound_htlc_preimages_conv_8, 32))))); GC.KeepAlive(this); GC.KeepAlive(commitment_tx); - GC.KeepAlive(preimages); + GC.KeepAlive(inbound_htlc_preimages); + GC.KeepAlive(outbound_htlc_preimages); if (ret >= 0 && ret <= 4096) { return null; } Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ ret_hu_conv = Result_C2Tuple_ECDSASignatureCVec_ECDSASignatureZZNoneZ.constr_from_ptr(ret); if (this != null) { this.ptrs_to.AddLast(commitment_tx); }; return ret_hu_conv; } - /** - * Validate the counterparty's revocation. - * - * This is required in order for the signer to make sure that the state has moved - * forward and it is safe to sign the next counterparty commitment. - */ - public Result_NoneNoneZ validate_counterparty_revocation(long idx, byte[] secret) { - long ret = bindings.EcdsaChannelSigner_validate_counterparty_revocation(this.ptr, idx, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(secret, 32))); - GC.KeepAlive(this); - GC.KeepAlive(idx); - GC.KeepAlive(secret); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NoneNoneZ ret_hu_conv = Result_NoneNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - /** * Creates a signature for a holder's commitment transaction. * @@ -389,7 +373,7 @@ public class EcdsaChannelSigner : CommonBase { * [`ChannelMonitor`] [replica](https://github.com/lightningdevkit/rust-lightning/blob/main/GLOSSARY.md#monitor-replicas) * broadcasts it before receiving the update for the latest commitment transaction. * - * [`EcdsaSighashType::All`]: bitcoin::blockdata::transaction::EcdsaSighashType::All + * [`EcdsaSighashType::All`]: bitcoin::sighash::EcdsaSighashType::All * [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor */ public Result_ECDSASignatureNoneZ sign_holder_htlc_transaction(byte[] htlc_tx, long input, org.ldk.structs.HTLCDescriptor htlc_descriptor) { @@ -477,6 +461,8 @@ public class EcdsaChannelSigner : CommonBase { * Note that if this fails or is rejected, the channel will not be publicly announced and * our counterparty may (though likely will not) close the channel on us for violating the * protocol. + * + * [`NodeSigner::sign_gossip_message`]: crate::sign::NodeSigner::sign_gossip_message */ public Result_ECDSASignatureNoneZ sign_channel_announcement_with_funding_key(org.ldk.structs.UnsignedChannelAnnouncement msg) { long ret = bindings.EcdsaChannelSigner_sign_channel_announcement_with_funding_key(this.ptr, msg == null ? 0 : msg.ptr); diff --git a/c_sharp/src/org/ldk/structs/ErrorAction.cs b/c_sharp/src/org/ldk/structs/ErrorAction.cs index 993d3e34..9e0fc990 100644 --- a/c_sharp/src/org/ldk/structs/ErrorAction.cs +++ b/c_sharp/src/org/ldk/structs/ErrorAction.cs @@ -212,5 +212,17 @@ public class ErrorAction : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ErrorAction. + */ + public long hash() { + long ret = bindings.ErrorAction_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } } } } } diff --git a/c_sharp/src/org/ldk/structs/ErrorMessage.cs b/c_sharp/src/org/ldk/structs/ErrorMessage.cs index 9a4135a7..fe33ec19 100644 --- a/c_sharp/src/org/ldk/structs/ErrorMessage.cs +++ b/c_sharp/src/org/ldk/structs/ErrorMessage.cs @@ -102,6 +102,18 @@ public class ErrorMessage : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ErrorMessage. + */ + public long hash() { + long ret = bindings.ErrorMessage_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ErrorMessages contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Event.cs b/c_sharp/src/org/ldk/structs/Event.cs index 805b57eb..ccc37c52 100644 --- a/c_sharp/src/org/ldk/structs/Event.cs +++ b/c_sharp/src/org/ldk/structs/Event.cs @@ -24,24 +24,25 @@ public class Event : CommonBase { case 0: return new Event_FundingGenerationReady(ptr); case 1: return new Event_PaymentClaimable(ptr); case 2: return new Event_PaymentClaimed(ptr); - case 3: return new Event_InvoiceRequestFailed(ptr); - case 4: return new Event_PaymentSent(ptr); - case 5: return new Event_PaymentFailed(ptr); - case 6: return new Event_PaymentPathSuccessful(ptr); - case 7: return new Event_PaymentPathFailed(ptr); - case 8: return new Event_ProbeSuccessful(ptr); - case 9: return new Event_ProbeFailed(ptr); - case 10: return new Event_PendingHTLCsForwardable(ptr); - case 11: return new Event_HTLCIntercepted(ptr); - case 12: return new Event_SpendableOutputs(ptr); - case 13: return new Event_PaymentForwarded(ptr); - case 14: return new Event_ChannelPending(ptr); - case 15: return new Event_ChannelReady(ptr); - case 16: return new Event_ChannelClosed(ptr); - case 17: return new Event_DiscardFunding(ptr); - case 18: return new Event_OpenChannelRequest(ptr); - case 19: return new Event_HTLCHandlingFailed(ptr); - case 20: return new Event_BumpTransaction(ptr); + case 3: return new Event_ConnectionNeeded(ptr); + case 4: return new Event_InvoiceRequestFailed(ptr); + case 5: return new Event_PaymentSent(ptr); + case 6: return new Event_PaymentFailed(ptr); + case 7: return new Event_PaymentPathSuccessful(ptr); + case 8: return new Event_PaymentPathFailed(ptr); + case 9: return new Event_ProbeSuccessful(ptr); + case 10: return new Event_ProbeFailed(ptr); + case 11: return new Event_PendingHTLCsForwardable(ptr); + case 12: return new Event_HTLCIntercepted(ptr); + case 13: return new Event_SpendableOutputs(ptr); + case 14: return new Event_PaymentForwarded(ptr); + case 15: return new Event_ChannelPending(ptr); + case 16: return new Event_ChannelReady(ptr); + case 17: return new Event_ChannelClosed(ptr); + case 18: return new Event_DiscardFunding(ptr); + case 19: return new Event_OpenChannelRequest(ptr); + case 20: return new Event_HTLCHandlingFailed(ptr); + case 21: return new Event_BumpTransaction(ptr); default: throw new ArgumentException("Impossible enum variant"); } @@ -270,6 +271,33 @@ public class Event : CommonBase { this.sender_intended_total_msat = sender_intended_total_msat_hu_conv; } } + /** A Event of type ConnectionNeeded */ + public class Event_ConnectionNeeded : Event { + /** + * The node id for the node needing a connection. + */ + public byte[] node_id; + /** + * Sockets for connecting to the node. + */ + public SocketAddress[] addresses; + internal Event_ConnectionNeeded(long ptr) : base(null, ptr) { + long node_id = bindings.LDKEvent_ConnectionNeeded_get_node_id(ptr); + byte[] node_id_conv = InternalUtils.decodeUint8Array(node_id); + this.node_id = node_id_conv; + long addresses = bindings.LDKEvent_ConnectionNeeded_get_addresses(ptr); + int addresses_conv_15_len = InternalUtils.getArrayLength(addresses); + SocketAddress[] addresses_conv_15_arr = new SocketAddress[addresses_conv_15_len]; + for (int p = 0; p < addresses_conv_15_len; p++) { + long addresses_conv_15 = InternalUtils.getU64ArrayElem(addresses, p); + org.ldk.structs.SocketAddress addresses_conv_15_hu_conv = org.ldk.structs.SocketAddress.constr_from_ptr(addresses_conv_15); + if (addresses_conv_15_hu_conv != null) { addresses_conv_15_hu_conv.ptrs_to.AddLast(this); }; + addresses_conv_15_arr[p] = addresses_conv_15_hu_conv; + } + bindings.free_buffer(addresses); + this.addresses = addresses_conv_15_arr; + } + } /** A Event of type InvoiceRequestFailed */ public class Event_InvoiceRequestFailed : Event { /** @@ -816,6 +844,14 @@ public class Event : CommonBase { * This field will be `None` for objects serialized prior to LDK 0.0.117. */ public Option_u64Z channel_capacity_sats; + /** + * The original channel funding TXO; this helps checking for the existence and confirmation + * status of the closing tx. + * Note that for instances serialized in v0.0.119 or prior this will be missing (None). + * + * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public OutPoint channel_funding_txo; internal Event_ChannelClosed(long ptr) : base(null, ptr) { long channel_id = bindings.LDKEvent_ChannelClosed_get_channel_id(ptr); byte[] channel_id_conv = InternalUtils.decodeUint8Array(channel_id); @@ -834,6 +870,10 @@ public class Event : CommonBase { org.ldk.structs.Option_u64Z channel_capacity_sats_hu_conv = org.ldk.structs.Option_u64Z.constr_from_ptr(channel_capacity_sats); if (channel_capacity_sats_hu_conv != null) { channel_capacity_sats_hu_conv.ptrs_to.AddLast(this); }; this.channel_capacity_sats = channel_capacity_sats_hu_conv; + long channel_funding_txo = bindings.LDKEvent_ChannelClosed_get_channel_funding_txo(ptr); + org.ldk.structs.OutPoint channel_funding_txo_hu_conv = null; if (channel_funding_txo < 0 || channel_funding_txo > 4096) { channel_funding_txo_hu_conv = new org.ldk.structs.OutPoint(null, channel_funding_txo); } + if (channel_funding_txo_hu_conv != null) { channel_funding_txo_hu_conv.ptrs_to.AddLast(this); }; + this.channel_funding_txo = channel_funding_txo_hu_conv; } } /** A Event of type DiscardFunding */ @@ -1030,6 +1070,20 @@ public class Event : CommonBase { return ret_hu_conv; } + /** + * Utility method to constructs a new ConnectionNeeded-variant Event + */ + public static Event connection_needed(byte[] node_id, SocketAddress[] addresses) { + long ret = bindings.Event_connection_needed(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_id, 33)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(addresses, addresses_conv_15 => addresses_conv_15.ptr))); + GC.KeepAlive(node_id); + GC.KeepAlive(addresses); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Event ret_hu_conv = org.ldk.structs.Event.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + foreach (SocketAddress addresses_conv_15 in addresses) { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(addresses_conv_15); }; }; + return ret_hu_conv; + } + /** * Utility method to constructs a new InvoiceRequestFailed-variant Event */ @@ -1243,18 +1297,20 @@ public class Event : CommonBase { /** * Utility method to constructs a new ChannelClosed-variant Event */ - public static Event channel_closed(byte[] channel_id, org.ldk.util.UInt128 user_channel_id, org.ldk.structs.ClosureReason reason, byte[] counterparty_node_id, org.ldk.structs.Option_u64Z channel_capacity_sats) { - long ret = bindings.Event_channel_closed(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id, 32)), InternalUtils.encodeUint8Array(user_channel_id.getLEBytes()), reason.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(counterparty_node_id, 33)), channel_capacity_sats.ptr); + public static Event channel_closed(byte[] channel_id, org.ldk.util.UInt128 user_channel_id, org.ldk.structs.ClosureReason reason, byte[] counterparty_node_id, org.ldk.structs.Option_u64Z channel_capacity_sats, org.ldk.structs.OutPoint channel_funding_txo) { + long ret = bindings.Event_channel_closed(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id, 32)), InternalUtils.encodeUint8Array(user_channel_id.getLEBytes()), reason.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(counterparty_node_id, 33)), channel_capacity_sats.ptr, channel_funding_txo == null ? 0 : channel_funding_txo.ptr); GC.KeepAlive(channel_id); GC.KeepAlive(user_channel_id); GC.KeepAlive(reason); GC.KeepAlive(counterparty_node_id); GC.KeepAlive(channel_capacity_sats); + GC.KeepAlive(channel_funding_txo); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.Event ret_hu_conv = org.ldk.structs.Event.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(reason); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channel_capacity_sats); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channel_funding_txo); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/FinalOnionHopData.cs b/c_sharp/src/org/ldk/structs/FinalOnionHopData.cs new file mode 100644 index 00000000..dd0ae7b3 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/FinalOnionHopData.cs @@ -0,0 +1,119 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Information communicated in the onion to the recipient for multi-part tracking and proof that + * the payment is associated with an invoice. + */ +public class FinalOnionHopData : CommonBase { + internal FinalOnionHopData(object _dummy, long ptr) : base(ptr) { } + ~FinalOnionHopData() { + if (ptr != 0) { bindings.FinalOnionHopData_free(ptr); } + } + + /** + * When sending a multi-part payment, this secret is used to identify a payment across HTLCs. + * Because it is generated by the recipient and included in the invoice, it also provides + * proof to the recipient that the payment was sent by someone with the generated invoice. + */ + public byte[] get_payment_secret() { + long ret = bindings.FinalOnionHopData_get_payment_secret(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * When sending a multi-part payment, this secret is used to identify a payment across HTLCs. + * Because it is generated by the recipient and included in the invoice, it also provides + * proof to the recipient that the payment was sent by someone with the generated invoice. + */ + public void set_payment_secret(byte[] val) { + bindings.FinalOnionHopData_set_payment_secret(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The intended total amount that this payment is for. + * + * Message serialization may panic if this value is more than 21 million Bitcoin. + */ + public long get_total_msat() { + long ret = bindings.FinalOnionHopData_get_total_msat(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The intended total amount that this payment is for. + * + * Message serialization may panic if this value is more than 21 million Bitcoin. + */ + public void set_total_msat(long val) { + bindings.FinalOnionHopData_set_total_msat(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new FinalOnionHopData given each field + */ + public static FinalOnionHopData of(byte[] payment_secret_arg, long total_msat_arg) { + long ret = bindings.FinalOnionHopData_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_secret_arg, 32)), total_msat_arg); + GC.KeepAlive(payment_secret_arg); + GC.KeepAlive(total_msat_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.FinalOnionHopData ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.FinalOnionHopData(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.FinalOnionHopData_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the FinalOnionHopData + */ + public FinalOnionHopData clone() { + long ret = bindings.FinalOnionHopData_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.FinalOnionHopData ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.FinalOnionHopData(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Serialize the FinalOnionHopData object into a byte array which can be read by FinalOnionHopData_read + */ + public byte[] write() { + long ret = bindings.FinalOnionHopData_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a FinalOnionHopData from a byte array, created by FinalOnionHopData_write + */ + public static Result_FinalOnionHopDataDecodeErrorZ read(byte[] ser) { + long ret = bindings.FinalOnionHopData_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_FinalOnionHopDataDecodeErrorZ ret_hu_conv = Result_FinalOnionHopDataDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/FirstHopCandidate.cs b/c_sharp/src/org/ldk/structs/FirstHopCandidate.cs new file mode 100644 index 00000000..b6e7c802 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/FirstHopCandidate.cs @@ -0,0 +1,37 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A [`CandidateRouteHop::FirstHop`] entry. + */ +public class FirstHopCandidate : CommonBase { + internal FirstHopCandidate(object _dummy, long ptr) : base(ptr) { } + ~FirstHopCandidate() { + if (ptr != 0) { bindings.FirstHopCandidate_free(ptr); } + } + + internal long clone_ptr() { + long ret = bindings.FirstHopCandidate_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the FirstHopCandidate + */ + public FirstHopCandidate clone() { + long ret = bindings.FirstHopCandidate_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.FirstHopCandidate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.FirstHopCandidate(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/FundingCreated.cs b/c_sharp/src/org/ldk/structs/FundingCreated.cs index 1166194d..55436ec1 100644 --- a/c_sharp/src/org/ldk/structs/FundingCreated.cs +++ b/c_sharp/src/org/ldk/structs/FundingCreated.cs @@ -130,6 +130,18 @@ public class FundingCreated : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the FundingCreated. + */ + public long hash() { + long ret = bindings.FundingCreated_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two FundingCreateds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/FundingSigned.cs b/c_sharp/src/org/ldk/structs/FundingSigned.cs index e10f01ff..9056396a 100644 --- a/c_sharp/src/org/ldk/structs/FundingSigned.cs +++ b/c_sharp/src/org/ldk/structs/FundingSigned.cs @@ -90,6 +90,18 @@ public class FundingSigned : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the FundingSigned. + */ + public long hash() { + long ret = bindings.FundingSigned_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two FundingSigneds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/GossipTimestampFilter.cs b/c_sharp/src/org/ldk/structs/GossipTimestampFilter.cs index e210877f..8eac4266 100644 --- a/c_sharp/src/org/ldk/structs/GossipTimestampFilter.cs +++ b/c_sharp/src/org/ldk/structs/GossipTimestampFilter.cs @@ -107,6 +107,18 @@ public class GossipTimestampFilter : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the GossipTimestampFilter. + */ + public long hash() { + long ret = bindings.GossipTimestampFilter_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two GossipTimestampFilters contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Hostname.cs b/c_sharp/src/org/ldk/structs/Hostname.cs index 2e3e071f..0d5840ed 100644 --- a/c_sharp/src/org/ldk/structs/Hostname.cs +++ b/c_sharp/src/org/ldk/structs/Hostname.cs @@ -39,6 +39,18 @@ public class Hostname : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Hostname. + */ + public long hash() { + long ret = bindings.Hostname_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Hostnames contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/HtlcBasepoint.cs b/c_sharp/src/org/ldk/structs/HtlcBasepoint.cs new file mode 100644 index 00000000..5738f99a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/HtlcBasepoint.cs @@ -0,0 +1,129 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Base key used in conjunction with a `per_commitment_point` to generate an [`HtlcKey`]. + * + * HTLC keys are used to ensure only the recipient of an HTLC can claim it on-chain with the HTLC + * preimage and that only the sender of an HTLC can claim it on-chain after it has timed out. + * Thus, both channel counterparties' HTLC keys will appears in each HTLC output's script. + */ +public class HtlcBasepoint : CommonBase { + internal HtlcBasepoint(object _dummy, long ptr) : base(ptr) { } + ~HtlcBasepoint() { + if (ptr != 0) { bindings.HtlcBasepoint_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.HtlcBasepoint_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.HtlcBasepoint_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new HtlcBasepoint given each field + */ + public static HtlcBasepoint of(byte[] a_arg) { + long ret = bindings.HtlcBasepoint_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two HtlcBasepoints contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.HtlcBasepoint b) { + bool ret = bindings.HtlcBasepoint_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is HtlcBasepoint)) return false; + return this.eq((HtlcBasepoint)o); + } + internal long clone_ptr() { + long ret = bindings.HtlcBasepoint_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the HtlcBasepoint + */ + public HtlcBasepoint clone() { + long ret = bindings.HtlcBasepoint_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the HtlcBasepoint. + */ + public long hash() { + long ret = bindings.HtlcBasepoint_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.HtlcBasepoint_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the HtlcBasepoint object into a byte array which can be read by HtlcBasepoint_read + */ + public byte[] write() { + long ret = bindings.HtlcBasepoint_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a HtlcBasepoint from a byte array, created by HtlcBasepoint_write + */ + public static Result_HtlcBasepointDecodeErrorZ read(byte[] ser) { + long ret = bindings.HtlcBasepoint_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcBasepointDecodeErrorZ ret_hu_conv = Result_HtlcBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/HtlcKey.cs b/c_sharp/src/org/ldk/structs/HtlcKey.cs new file mode 100644 index 00000000..c91c83a8 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/HtlcKey.cs @@ -0,0 +1,147 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A derived key built from a [`HtlcBasepoint`] and `per_commitment_point`. + * + * HTLC keys are used to ensure only the recipient of an HTLC can claim it on-chain with the HTLC + * preimage and that only the sender of an HTLC can claim it on-chain after it has timed out. + * Thus, both channel counterparties' HTLC keys will appears in each HTLC output's script. + * + * [See the BOLT specs] + * (https://github.com/lightning/bolts/blob/master/03-transactions.md#localpubkey-local_htlcpubkey-remote_htlcpubkey-local_delayedpubkey-and-remote_delayedpubkey-derivation) + * for more information on key derivation details. + */ +public class HtlcKey : CommonBase { + internal HtlcKey(object _dummy, long ptr) : base(ptr) { } + ~HtlcKey() { + if (ptr != 0) { bindings.HtlcKey_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.HtlcKey_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.HtlcKey_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new HtlcKey given each field + */ + public static HtlcKey of(byte[] a_arg) { + long ret = bindings.HtlcKey_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two HtlcKeys contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.HtlcKey b) { + bool ret = bindings.HtlcKey_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is HtlcKey)) return false; + return this.eq((HtlcKey)o); + } + internal long clone_ptr() { + long ret = bindings.HtlcKey_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the HtlcKey + */ + public HtlcKey clone() { + long ret = bindings.HtlcKey_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Derive a public htlcpubkey using one node\'s `per_commitment_point` and its countersignatory\'s `basepoint` + */ + public static HtlcKey from_basepoint(org.ldk.structs.HtlcBasepoint countersignatory_basepoint, byte[] per_commitment_point) { + long ret = bindings.HtlcKey_from_basepoint(countersignatory_basepoint == null ? 0 : countersignatory_basepoint.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33))); + GC.KeepAlive(countersignatory_basepoint); + GC.KeepAlive(per_commitment_point); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_basepoint); }; + return ret_hu_conv; + } + + /** + * Build a htlcpubkey directly from an already-derived private key + */ + public static HtlcKey from_secret_key(byte[] sk) { + long ret = bindings.HtlcKey_from_secret_key(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(sk, 32))); + GC.KeepAlive(sk); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.HtlcKey_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the HtlcKey object into a byte array which can be read by HtlcKey_read + */ + public byte[] write() { + long ret = bindings.HtlcKey_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a HtlcKey from a byte array, created by HtlcKey_write + */ + public static Result_HtlcKeyDecodeErrorZ read(byte[] ser) { + long ret = bindings.HtlcKey_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcKeyDecodeErrorZ ret_hu_conv = Result_HtlcKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/IgnoringMessageHandler.cs b/c_sharp/src/org/ldk/structs/IgnoringMessageHandler.cs index 6046c7dc..4b9d0662 100644 --- a/c_sharp/src/org/ldk/structs/IgnoringMessageHandler.cs +++ b/c_sharp/src/org/ldk/structs/IgnoringMessageHandler.cs @@ -27,6 +27,19 @@ public class IgnoringMessageHandler : CommonBase { return ret_hu_conv; } + /** + * Constructs a new EventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned EventsProvider must be freed before this_arg is + */ + public EventsProvider as_EventsProvider() { + long ret = bindings.IgnoringMessageHandler_as_EventsProvider(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + EventsProvider ret_hu_conv = new EventsProvider(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + /** * Constructs a new MessageSendEventsProvider which calls the relevant methods on this_arg. * This copies the `inner` pointer in this_arg and thus the returned MessageSendEventsProvider must be freed before this_arg is diff --git a/c_sharp/src/org/ldk/structs/InMemorySigner.cs b/c_sharp/src/org/ldk/structs/InMemorySigner.cs index d0c6655a..caa0905e 100644 --- a/c_sharp/src/org/ldk/structs/InMemorySigner.cs +++ b/c_sharp/src/org/ldk/structs/InMemorySigner.cs @@ -307,14 +307,14 @@ public class InMemorySigner : CommonBase { * * [`descriptor.outpoint`]: StaticPaymentOutputDescriptor::outpoint */ - public Result_CVec_CVec_u8ZZNoneZ sign_counterparty_payment_input(byte[] spend_tx, long input_idx, org.ldk.structs.StaticPaymentOutputDescriptor descriptor) { + public Result_WitnessNoneZ sign_counterparty_payment_input(byte[] spend_tx, long input_idx, org.ldk.structs.StaticPaymentOutputDescriptor descriptor) { long ret = bindings.InMemorySigner_sign_counterparty_payment_input(this.ptr, InternalUtils.encodeUint8Array(spend_tx), input_idx, descriptor == null ? 0 : descriptor.ptr); GC.KeepAlive(this); GC.KeepAlive(spend_tx); GC.KeepAlive(input_idx); GC.KeepAlive(descriptor); if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); + Result_WitnessNoneZ ret_hu_conv = Result_WitnessNoneZ.constr_from_ptr(ret); if (this != null) { this.ptrs_to.AddLast(descriptor); }; return ret_hu_conv; } @@ -331,14 +331,14 @@ public class InMemorySigner : CommonBase { * [`descriptor.outpoint`]: DelayedPaymentOutputDescriptor::outpoint * [`descriptor.to_self_delay`]: DelayedPaymentOutputDescriptor::to_self_delay */ - public Result_CVec_CVec_u8ZZNoneZ sign_dynamic_p2wsh_input(byte[] spend_tx, long input_idx, org.ldk.structs.DelayedPaymentOutputDescriptor descriptor) { + public Result_WitnessNoneZ sign_dynamic_p2wsh_input(byte[] spend_tx, long input_idx, org.ldk.structs.DelayedPaymentOutputDescriptor descriptor) { long ret = bindings.InMemorySigner_sign_dynamic_p2wsh_input(this.ptr, InternalUtils.encodeUint8Array(spend_tx), input_idx, descriptor == null ? 0 : descriptor.ptr); GC.KeepAlive(this); GC.KeepAlive(spend_tx); GC.KeepAlive(input_idx); GC.KeepAlive(descriptor); if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); + Result_WitnessNoneZ ret_hu_conv = Result_WitnessNoneZ.constr_from_ptr(ret); if (this != null) { this.ptrs_to.AddLast(descriptor); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/InboundHTLCErr.cs b/c_sharp/src/org/ldk/structs/InboundHTLCErr.cs new file mode 100644 index 00000000..ccca20d2 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/InboundHTLCErr.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Invalid inbound onion payment. + */ +public class InboundHTLCErr : CommonBase { + internal InboundHTLCErr(object _dummy, long ptr) : base(ptr) { } + ~InboundHTLCErr() { + if (ptr != 0) { bindings.InboundHTLCErr_free(ptr); } + } + + /** + * BOLT 4 error code. + */ + public short get_err_code() { + short ret = bindings.InboundHTLCErr_get_err_code(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * BOLT 4 error code. + */ + public void set_err_code(short val) { + bindings.InboundHTLCErr_set_err_code(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Data attached to this error. + * + * Returns a copy of the field. + */ + public byte[] get_err_data() { + long ret = bindings.InboundHTLCErr_get_err_data(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Data attached to this error. + */ + public void set_err_data(byte[] val) { + bindings.InboundHTLCErr_set_err_data(this.ptr, InternalUtils.encodeUint8Array(val)); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Error message text. + */ + public string get_msg() { + long ret = bindings.InboundHTLCErr_get_msg(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + string ret_conv = InternalUtils.decodeString(ret); + return ret_conv; + } + + /** + * Error message text. + */ + public void set_msg(string val) { + bindings.InboundHTLCErr_set_msg(this.ptr, InternalUtils.encodeString(val)); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new InboundHTLCErr given each field + */ + public static InboundHTLCErr of(short err_code_arg, byte[] err_data_arg, string msg_arg) { + long ret = bindings.InboundHTLCErr_new(err_code_arg, InternalUtils.encodeUint8Array(err_data_arg), InternalUtils.encodeString(msg_arg)); + GC.KeepAlive(err_code_arg); + GC.KeepAlive(err_data_arg); + GC.KeepAlive(msg_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.InboundHTLCErr ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.InboundHTLCErr(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Init.cs b/c_sharp/src/org/ldk/structs/Init.cs index 407b3436..bc5f9ca6 100644 --- a/c_sharp/src/org/ldk/structs/Init.cs +++ b/c_sharp/src/org/ldk/structs/Init.cs @@ -134,6 +134,18 @@ public class Init : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Init. + */ + public long hash() { + long ret = bindings.Init_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Inits contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/InitFeatures.cs b/c_sharp/src/org/ldk/structs/InitFeatures.cs index 44c97a13..4f1551e3 100644 --- a/c_sharp/src/org/ldk/structs/InitFeatures.cs +++ b/c_sharp/src/org/ldk/structs/InitFeatures.cs @@ -50,6 +50,18 @@ public class InitFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the InitFeatures. + */ + public long hash() { + long ret = bindings.InitFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ @@ -541,6 +553,40 @@ public class InitFeatures : CommonBase { return ret; } + /** + * Set this feature as optional. + */ + public void set_route_blinding_optional() { + bindings.InitFeatures_set_route_blinding_optional(this.ptr); + GC.KeepAlive(this); + } + + /** + * Set this feature as required. + */ + public void set_route_blinding_required() { + bindings.InitFeatures_set_route_blinding_required(this.ptr); + GC.KeepAlive(this); + } + + /** + * Checks if this feature is supported. + */ + public bool supports_route_blinding() { + bool ret = bindings.InitFeatures_supports_route_blinding(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Checks if this feature is required. + */ + public bool requires_route_blinding() { + bool ret = bindings.InitFeatures_requires_route_blinding(this.ptr); + GC.KeepAlive(this); + return ret; + } + /** * Set this feature as optional. */ diff --git a/c_sharp/src/org/ldk/structs/InvalidShutdownScript.cs b/c_sharp/src/org/ldk/structs/InvalidShutdownScript.cs index 1012b6f4..4f739fa5 100644 --- a/c_sharp/src/org/ldk/structs/InvalidShutdownScript.cs +++ b/c_sharp/src/org/ldk/structs/InvalidShutdownScript.cs @@ -7,7 +7,7 @@ namespace org { namespace ldk { namespace structs { /** - * An error occurring when converting from [`Script`] to [`ShutdownScript`]. + * An error occurring when converting from [`ScriptBuf`] to [`ShutdownScript`]. */ public class InvalidShutdownScript : CommonBase { internal InvalidShutdownScript(object _dummy, long ptr) : base(ptr) { } diff --git a/c_sharp/src/org/ldk/structs/InvoiceRequestFeatures.cs b/c_sharp/src/org/ldk/structs/InvoiceRequestFeatures.cs index fdbc49e7..f3d15d0d 100644 --- a/c_sharp/src/org/ldk/structs/InvoiceRequestFeatures.cs +++ b/c_sharp/src/org/ldk/structs/InvoiceRequestFeatures.cs @@ -50,6 +50,18 @@ public class InvoiceRequestFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the InvoiceRequestFeatures. + */ + public long hash() { + long ret = bindings.InvoiceRequestFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/Logger.cs b/c_sharp/src/org/ldk/structs/Logger.cs index 309fa883..ef253397 100644 --- a/c_sharp/src/org/ldk/structs/Logger.cs +++ b/c_sharp/src/org/ldk/structs/Logger.cs @@ -10,13 +10,13 @@ namespace org { namespace ldk { namespace structs { /** An implementation of Logger */ public interface LoggerInterface { - /**Logs the `Record` + /**Logs the [`Record`]. */ void log(Record record); } /** - * A trait encapsulating the operations required of a logger + * A trait encapsulating the operations required of a logger. */ public class Logger : CommonBase { internal bindings.LDKLogger bindings_instance; @@ -34,6 +34,7 @@ public class Logger : CommonBase { private LDKLoggerHolder impl_holder; public void log(long _record) { org.ldk.structs.Record _record_hu_conv = null; if (_record < 0 || _record > 4096) { _record_hu_conv = new org.ldk.structs.Record(null, _record); } + if (_record_hu_conv != null) { _record_hu_conv.ptrs_to.AddLast(this); }; arg.log(_record_hu_conv); GC.KeepAlive(arg); } diff --git a/c_sharp/src/org/ldk/structs/MessageHandler.cs b/c_sharp/src/org/ldk/structs/MessageHandler.cs index 05c9671a..da7bd7c5 100644 --- a/c_sharp/src/org/ldk/structs/MessageHandler.cs +++ b/c_sharp/src/org/ldk/structs/MessageHandler.cs @@ -75,7 +75,7 @@ public class MessageHandler : CommonBase { * A message handler which handles onion messages. This should generally be an * [`OnionMessenger`], but can also be an [`IgnoringMessageHandler`]. * - * [`OnionMessenger`]: crate::onion_message::OnionMessenger + * [`OnionMessenger`]: crate::onion_message::messenger::OnionMessenger */ public OnionMessageHandler get_onion_message_handler() { long ret = bindings.MessageHandler_get_onion_message_handler(this.ptr); @@ -90,7 +90,7 @@ public class MessageHandler : CommonBase { * A message handler which handles onion messages. This should generally be an * [`OnionMessenger`], but can also be an [`IgnoringMessageHandler`]. * - * [`OnionMessenger`]: crate::onion_message::OnionMessenger + * [`OnionMessenger`]: crate::onion_message::messenger::OnionMessenger */ public void set_onion_message_handler(org.ldk.structs.OnionMessageHandler val) { bindings.MessageHandler_set_onion_message_handler(this.ptr, val.ptr); diff --git a/c_sharp/src/org/ldk/structs/MessageRouter.cs b/c_sharp/src/org/ldk/structs/MessageRouter.cs index c2b1fb97..12f593e1 100644 --- a/c_sharp/src/org/ldk/structs/MessageRouter.cs +++ b/c_sharp/src/org/ldk/structs/MessageRouter.cs @@ -13,6 +13,10 @@ public interface MessageRouterInterface { /**Returns a route for sending an [`OnionMessage`] to the given [`Destination`]. */ Result_OnionMessagePathNoneZ find_path(byte[] sender, byte[][] peers, Destination destination); + /**Creates [`BlindedPath`]s to the `recipient` node. The nodes in `peers` are assumed to be + * direct peers with the `recipient`. + */ + Result_CVec_BlindedPathZNoneZ create_blinded_paths(byte[] recipient, byte[][] peers); } /** @@ -49,6 +53,21 @@ public class MessageRouter : CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } + public long create_blinded_paths(long _recipient, long _peers) { + byte[] _recipient_conv = InternalUtils.decodeUint8Array(_recipient); + int _peers_conv_8_len = InternalUtils.getArrayLength(_peers); + byte[][] _peers_conv_8_arr = new byte[_peers_conv_8_len][]; + for (int i = 0; i < _peers_conv_8_len; i++) { + long _peers_conv_8 = InternalUtils.getU64ArrayElem(_peers, i); + byte[] _peers_conv_8_conv = InternalUtils.decodeUint8Array(_peers_conv_8); + _peers_conv_8_arr[i] = _peers_conv_8_conv; + } + bindings.free_buffer(_peers); + Result_CVec_BlindedPathZNoneZ ret = arg.create_blinded_paths(_recipient_conv, _peers_conv_8_arr); + GC.KeepAlive(arg); + long result = ret == null ? 0 : ret.clone_ptr(); + return result; + } } /** Creates a new instance of MessageRouter from a given implementation */ @@ -78,5 +97,19 @@ public class MessageRouter : CommonBase { return ret_hu_conv; } + /** + * Creates [`BlindedPath`]s to the `recipient` node. The nodes in `peers` are assumed to be + * direct peers with the `recipient`. + */ + public Result_CVec_BlindedPathZNoneZ create_blinded_paths(byte[] recipient, byte[][] peers) { + long ret = bindings.MessageRouter_create_blinded_paths(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(recipient, 33)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(peers, peers_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(peers_conv_8, 33))))); + GC.KeepAlive(this); + GC.KeepAlive(recipient); + GC.KeepAlive(peers); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_BlindedPathZNoneZ ret_hu_conv = Result_CVec_BlindedPathZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/MessageSendEvent.cs b/c_sharp/src/org/ldk/structs/MessageSendEvent.cs index 04f38306..fb60dee8 100644 --- a/c_sharp/src/org/ldk/structs/MessageSendEvent.cs +++ b/c_sharp/src/org/ldk/structs/MessageSendEvent.cs @@ -25,32 +25,36 @@ public class MessageSendEvent : CommonBase { case 3: return new MessageSendEvent_SendOpenChannelV2(ptr); case 4: return new MessageSendEvent_SendFundingCreated(ptr); case 5: return new MessageSendEvent_SendFundingSigned(ptr); - case 6: return new MessageSendEvent_SendTxAddInput(ptr); - case 7: return new MessageSendEvent_SendTxAddOutput(ptr); - case 8: return new MessageSendEvent_SendTxRemoveInput(ptr); - case 9: return new MessageSendEvent_SendTxRemoveOutput(ptr); - case 10: return new MessageSendEvent_SendTxComplete(ptr); - case 11: return new MessageSendEvent_SendTxSignatures(ptr); - case 12: return new MessageSendEvent_SendTxInitRbf(ptr); - case 13: return new MessageSendEvent_SendTxAckRbf(ptr); - case 14: return new MessageSendEvent_SendTxAbort(ptr); - case 15: return new MessageSendEvent_SendChannelReady(ptr); - case 16: return new MessageSendEvent_SendAnnouncementSignatures(ptr); - case 17: return new MessageSendEvent_UpdateHTLCs(ptr); - case 18: return new MessageSendEvent_SendRevokeAndACK(ptr); - case 19: return new MessageSendEvent_SendClosingSigned(ptr); - case 20: return new MessageSendEvent_SendShutdown(ptr); - case 21: return new MessageSendEvent_SendChannelReestablish(ptr); - case 22: return new MessageSendEvent_SendChannelAnnouncement(ptr); - case 23: return new MessageSendEvent_BroadcastChannelAnnouncement(ptr); - case 24: return new MessageSendEvent_BroadcastChannelUpdate(ptr); - case 25: return new MessageSendEvent_BroadcastNodeAnnouncement(ptr); - case 26: return new MessageSendEvent_SendChannelUpdate(ptr); - case 27: return new MessageSendEvent_HandleError(ptr); - case 28: return new MessageSendEvent_SendChannelRangeQuery(ptr); - case 29: return new MessageSendEvent_SendShortIdsQuery(ptr); - case 30: return new MessageSendEvent_SendReplyChannelRange(ptr); - case 31: return new MessageSendEvent_SendGossipTimestampFilter(ptr); + case 6: return new MessageSendEvent_SendStfu(ptr); + case 7: return new MessageSendEvent_SendSplice(ptr); + case 8: return new MessageSendEvent_SendSpliceAck(ptr); + case 9: return new MessageSendEvent_SendSpliceLocked(ptr); + case 10: return new MessageSendEvent_SendTxAddInput(ptr); + case 11: return new MessageSendEvent_SendTxAddOutput(ptr); + case 12: return new MessageSendEvent_SendTxRemoveInput(ptr); + case 13: return new MessageSendEvent_SendTxRemoveOutput(ptr); + case 14: return new MessageSendEvent_SendTxComplete(ptr); + case 15: return new MessageSendEvent_SendTxSignatures(ptr); + case 16: return new MessageSendEvent_SendTxInitRbf(ptr); + case 17: return new MessageSendEvent_SendTxAckRbf(ptr); + case 18: return new MessageSendEvent_SendTxAbort(ptr); + case 19: return new MessageSendEvent_SendChannelReady(ptr); + case 20: return new MessageSendEvent_SendAnnouncementSignatures(ptr); + case 21: return new MessageSendEvent_UpdateHTLCs(ptr); + case 22: return new MessageSendEvent_SendRevokeAndACK(ptr); + case 23: return new MessageSendEvent_SendClosingSigned(ptr); + case 24: return new MessageSendEvent_SendShutdown(ptr); + case 25: return new MessageSendEvent_SendChannelReestablish(ptr); + case 26: return new MessageSendEvent_SendChannelAnnouncement(ptr); + case 27: return new MessageSendEvent_BroadcastChannelAnnouncement(ptr); + case 28: return new MessageSendEvent_BroadcastChannelUpdate(ptr); + case 29: return new MessageSendEvent_BroadcastNodeAnnouncement(ptr); + case 30: return new MessageSendEvent_SendChannelUpdate(ptr); + case 31: return new MessageSendEvent_HandleError(ptr); + case 32: return new MessageSendEvent_SendChannelRangeQuery(ptr); + case 33: return new MessageSendEvent_SendShortIdsQuery(ptr); + case 34: return new MessageSendEvent_SendReplyChannelRange(ptr); + case 35: return new MessageSendEvent_SendGossipTimestampFilter(ptr); default: throw new ArgumentException("Impossible enum variant"); } @@ -176,6 +180,86 @@ public class MessageSendEvent : CommonBase { this.msg = msg_hu_conv; } } + /** A MessageSendEvent of type SendStfu */ + public class MessageSendEvent_SendStfu : MessageSendEvent { + /** + * The node_id of the node which should receive this message + */ + public byte[] node_id; + /** + * The message which should be sent. + */ + public Stfu msg; + internal MessageSendEvent_SendStfu(long ptr) : base(null, ptr) { + long node_id = bindings.LDKMessageSendEvent_SendStfu_get_node_id(ptr); + byte[] node_id_conv = InternalUtils.decodeUint8Array(node_id); + this.node_id = node_id_conv; + long msg = bindings.LDKMessageSendEvent_SendStfu_get_msg(ptr); + org.ldk.structs.Stfu msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.Stfu(null, msg); } + if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.AddLast(this); }; + this.msg = msg_hu_conv; + } + } + /** A MessageSendEvent of type SendSplice */ + public class MessageSendEvent_SendSplice : MessageSendEvent { + /** + * The node_id of the node which should receive this message + */ + public byte[] node_id; + /** + * The message which should be sent. + */ + public Splice msg; + internal MessageSendEvent_SendSplice(long ptr) : base(null, ptr) { + long node_id = bindings.LDKMessageSendEvent_SendSplice_get_node_id(ptr); + byte[] node_id_conv = InternalUtils.decodeUint8Array(node_id); + this.node_id = node_id_conv; + long msg = bindings.LDKMessageSendEvent_SendSplice_get_msg(ptr); + org.ldk.structs.Splice msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.Splice(null, msg); } + if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.AddLast(this); }; + this.msg = msg_hu_conv; + } + } + /** A MessageSendEvent of type SendSpliceAck */ + public class MessageSendEvent_SendSpliceAck : MessageSendEvent { + /** + * The node_id of the node which should receive this message + */ + public byte[] node_id; + /** + * The message which should be sent. + */ + public SpliceAck msg; + internal MessageSendEvent_SendSpliceAck(long ptr) : base(null, ptr) { + long node_id = bindings.LDKMessageSendEvent_SendSpliceAck_get_node_id(ptr); + byte[] node_id_conv = InternalUtils.decodeUint8Array(node_id); + this.node_id = node_id_conv; + long msg = bindings.LDKMessageSendEvent_SendSpliceAck_get_msg(ptr); + org.ldk.structs.SpliceAck msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.SpliceAck(null, msg); } + if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.AddLast(this); }; + this.msg = msg_hu_conv; + } + } + /** A MessageSendEvent of type SendSpliceLocked */ + public class MessageSendEvent_SendSpliceLocked : MessageSendEvent { + /** + * The node_id of the node which should receive this message + */ + public byte[] node_id; + /** + * The message which should be sent. + */ + public SpliceLocked msg; + internal MessageSendEvent_SendSpliceLocked(long ptr) : base(null, ptr) { + long node_id = bindings.LDKMessageSendEvent_SendSpliceLocked_get_node_id(ptr); + byte[] node_id_conv = InternalUtils.decodeUint8Array(node_id); + this.node_id = node_id_conv; + long msg = bindings.LDKMessageSendEvent_SendSpliceLocked_get_msg(ptr); + org.ldk.structs.SpliceLocked msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.SpliceLocked(null, msg); } + if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.AddLast(this); }; + this.msg = msg_hu_conv; + } + } /** A MessageSendEvent of type SendTxAddInput */ public class MessageSendEvent_SendTxAddInput : MessageSendEvent { /** @@ -795,6 +879,62 @@ public class MessageSendEvent : CommonBase { return ret_hu_conv; } + /** + * Utility method to constructs a new SendStfu-variant MessageSendEvent + */ + public static MessageSendEvent send_stfu(byte[] node_id, org.ldk.structs.Stfu msg) { + long ret = bindings.MessageSendEvent_send_stfu(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(node_id); + GC.KeepAlive(msg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(msg); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new SendSplice-variant MessageSendEvent + */ + public static MessageSendEvent send_splice(byte[] node_id, org.ldk.structs.Splice msg) { + long ret = bindings.MessageSendEvent_send_splice(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(node_id); + GC.KeepAlive(msg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(msg); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new SendSpliceAck-variant MessageSendEvent + */ + public static MessageSendEvent send_splice_ack(byte[] node_id, org.ldk.structs.SpliceAck msg) { + long ret = bindings.MessageSendEvent_send_splice_ack(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(node_id); + GC.KeepAlive(msg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(msg); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new SendSpliceLocked-variant MessageSendEvent + */ + public static MessageSendEvent send_splice_locked(byte[] node_id, org.ldk.structs.SpliceLocked msg) { + long ret = bindings.MessageSendEvent_send_splice_locked(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_id, 33)), msg == null ? 0 : msg.ptr); + GC.KeepAlive(node_id); + GC.KeepAlive(msg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(msg); }; + return ret_hu_conv; + } + /** * Utility method to constructs a new SendTxAddInput-variant MessageSendEvent */ diff --git a/c_sharp/src/org/ldk/structs/MonitorUpdatingPersister.cs b/c_sharp/src/org/ldk/structs/MonitorUpdatingPersister.cs index ff9b89d0..6a3c5447 100644 --- a/c_sharp/src/org/ldk/structs/MonitorUpdatingPersister.cs +++ b/c_sharp/src/org/ldk/structs/MonitorUpdatingPersister.cs @@ -80,9 +80,10 @@ namespace org { namespace ldk { namespace structs { * * # Pruning stale channel updates * - * Stale updates are pruned when a full monitor is written. The old monitor is first read, and if - * that succeeds, updates in the range between the old and new monitors are deleted. The `lazy` - * flag is used on the [`KVStore::remove`] method, so there are no guarantees that the deletions + * Stale updates are pruned when the consolidation threshold is reached according to `maximum_pending_updates`. + * Monitor updates in the range between the latest `update_id` and `update_id - maximum_pending_updates` + * are deleted. + * The `lazy` flag is used on the [`KVStore::remove`] method, so there are no guarantees that the deletions * will complete. However, stale updates are not a problem for data integrity, since updates are * only read that are higher than the stored [`ChannelMonitor`]'s `update_id`. * diff --git a/c_sharp/src/org/ldk/structs/NodeAlias.cs b/c_sharp/src/org/ldk/structs/NodeAlias.cs index 84c9daa8..8121cf14 100644 --- a/c_sharp/src/org/ldk/structs/NodeAlias.cs +++ b/c_sharp/src/org/ldk/structs/NodeAlias.cs @@ -62,6 +62,18 @@ public class NodeAlias : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the NodeAlias. + */ + public long hash() { + long ret = bindings.NodeAlias_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two NodeAliass contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/NodeAnnouncement.cs b/c_sharp/src/org/ldk/structs/NodeAnnouncement.cs index 4b870b48..ae331955 100644 --- a/c_sharp/src/org/ldk/structs/NodeAnnouncement.cs +++ b/c_sharp/src/org/ldk/structs/NodeAnnouncement.cs @@ -91,6 +91,18 @@ public class NodeAnnouncement : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the NodeAnnouncement. + */ + public long hash() { + long ret = bindings.NodeAnnouncement_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two NodeAnnouncements contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/NodeFeatures.cs b/c_sharp/src/org/ldk/structs/NodeFeatures.cs index 83fa4df2..32eaf48f 100644 --- a/c_sharp/src/org/ldk/structs/NodeFeatures.cs +++ b/c_sharp/src/org/ldk/structs/NodeFeatures.cs @@ -50,6 +50,18 @@ public class NodeFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the NodeFeatures. + */ + public long hash() { + long ret = bindings.NodeFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ @@ -516,6 +528,40 @@ public class NodeFeatures : CommonBase { return ret; } + /** + * Set this feature as optional. + */ + public void set_route_blinding_optional() { + bindings.NodeFeatures_set_route_blinding_optional(this.ptr); + GC.KeepAlive(this); + } + + /** + * Set this feature as required. + */ + public void set_route_blinding_required() { + bindings.NodeFeatures_set_route_blinding_required(this.ptr); + GC.KeepAlive(this); + } + + /** + * Checks if this feature is supported. + */ + public bool supports_route_blinding() { + bool ret = bindings.NodeFeatures_supports_route_blinding(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Checks if this feature is required. + */ + public bool requires_route_blinding() { + bool ret = bindings.NodeFeatures_requires_route_blinding(this.ptr); + GC.KeepAlive(this); + return ret; + } + /** * Set this feature as optional. */ diff --git a/c_sharp/src/org/ldk/structs/NodeId.cs b/c_sharp/src/org/ldk/structs/NodeId.cs index 0aa9014c..b5b0522c 100644 --- a/c_sharp/src/org/ldk/structs/NodeId.cs +++ b/c_sharp/src/org/ldk/structs/NodeId.cs @@ -56,6 +56,17 @@ public class NodeId : CommonBase { return ret_conv; } + /** + * Get the public key as an array from this NodeId + */ + public byte[] as_array() { + long ret = bindings.NodeId_as_array(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + /** * Get the public key from this NodeId */ diff --git a/c_sharp/src/org/ldk/structs/Offer.cs b/c_sharp/src/org/ldk/structs/Offer.cs index 2ac035d9..8ff67b8a 100644 --- a/c_sharp/src/org/ldk/structs/Offer.cs +++ b/c_sharp/src/org/ldk/structs/Offer.cs @@ -208,6 +208,16 @@ public class Offer : CommonBase { return ret; } + /** + * Whether the offer has expired given the duration since the Unix epoch. + */ + public bool is_expired_no_std(long duration_since_epoch) { + bool ret = bindings.Offer_is_expired_no_std(this.ptr, duration_since_epoch); + GC.KeepAlive(this); + GC.KeepAlive(duration_since_epoch); + return ret; + } + /** * Returns whether the given quantity is valid for the offer. */ diff --git a/c_sharp/src/org/ldk/structs/OfferFeatures.cs b/c_sharp/src/org/ldk/structs/OfferFeatures.cs index 9bfc3787..8e6af54b 100644 --- a/c_sharp/src/org/ldk/structs/OfferFeatures.cs +++ b/c_sharp/src/org/ldk/structs/OfferFeatures.cs @@ -50,6 +50,18 @@ public class OfferFeatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the OfferFeatures. + */ + public long hash() { + long ret = bindings.OfferFeatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Create a blank Features with no features set */ diff --git a/c_sharp/src/org/ldk/structs/OffersMessage.cs b/c_sharp/src/org/ldk/structs/OffersMessage.cs index af4a42f0..4f146f1e 100644 --- a/c_sharp/src/org/ldk/structs/OffersMessage.cs +++ b/c_sharp/src/org/ldk/structs/OffersMessage.cs @@ -114,6 +114,19 @@ public class OffersMessage : CommonBase { return ret_hu_conv; } + /** + * Constructs a new OnionMessageContents which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned OnionMessageContents must be freed before this_arg is + */ + public OnionMessageContents as_OnionMessageContents() { + long ret = bindings.OffersMessage_as_OnionMessageContents(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + OnionMessageContents ret_hu_conv = new OnionMessageContents(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + /** * Serialize the OffersMessage object into a byte array which can be read by OffersMessage_read */ diff --git a/c_sharp/src/org/ldk/structs/OffersMessageHandler.cs b/c_sharp/src/org/ldk/structs/OffersMessageHandler.cs index e5fc001a..09ccab93 100644 --- a/c_sharp/src/org/ldk/structs/OffersMessageHandler.cs +++ b/c_sharp/src/org/ldk/structs/OffersMessageHandler.cs @@ -15,7 +15,7 @@ public interface OffersMessageHandlerInterface { * * The returned [`OffersMessage`], if any, is enqueued to be sent by [`OnionMessenger`]. * - * [`OnionMessenger`]: crate::onion_message::OnionMessenger + * [`OnionMessenger`]: crate::onion_message::messenger::OnionMessenger */ Option_OffersMessageZ handle_message(OffersMessage message); /**Releases any [`OffersMessage`]s that need to be sent. @@ -80,7 +80,7 @@ public class OffersMessageHandler : CommonBase { * * The returned [`OffersMessage`], if any, is enqueued to be sent by [`OnionMessenger`]. * - * [`OnionMessenger`]: crate::onion_message::OnionMessenger + * [`OnionMessenger`]: crate::onion_message::messenger::OnionMessenger */ public Option_OffersMessageZ handle_message(org.ldk.structs.OffersMessage message) { long ret = bindings.OffersMessageHandler_handle_message(this.ptr, message.ptr); diff --git a/c_sharp/src/org/ldk/structs/OneHopBlindedPathCandidate.cs b/c_sharp/src/org/ldk/structs/OneHopBlindedPathCandidate.cs new file mode 100644 index 00000000..de03256a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/OneHopBlindedPathCandidate.cs @@ -0,0 +1,37 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A [`CandidateRouteHop::OneHopBlinded`] entry. + */ +public class OneHopBlindedPathCandidate : CommonBase { + internal OneHopBlindedPathCandidate(object _dummy, long ptr) : base(ptr) { } + ~OneHopBlindedPathCandidate() { + if (ptr != 0) { bindings.OneHopBlindedPathCandidate_free(ptr); } + } + + internal long clone_ptr() { + long ret = bindings.OneHopBlindedPathCandidate_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the OneHopBlindedPathCandidate + */ + public OneHopBlindedPathCandidate clone() { + long ret = bindings.OneHopBlindedPathCandidate_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.OneHopBlindedPathCandidate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OneHopBlindedPathCandidate(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/OnionMessage.cs b/c_sharp/src/org/ldk/structs/OnionMessage.cs index 47c72baf..c7e1d4ab 100644 --- a/c_sharp/src/org/ldk/structs/OnionMessage.cs +++ b/c_sharp/src/org/ldk/structs/OnionMessage.cs @@ -89,6 +89,18 @@ public class OnionMessage : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the OnionMessage. + */ + public long hash() { + long ret = bindings.OnionMessage_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two OnionMessages contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/OnionMessageContents.cs b/c_sharp/src/org/ldk/structs/OnionMessageContents.cs index 8bd84802..61f863d9 100644 --- a/c_sharp/src/org/ldk/structs/OnionMessageContents.cs +++ b/c_sharp/src/org/ldk/structs/OnionMessageContents.cs @@ -16,6 +16,9 @@ public interface OnionMessageContentsInterface { /**Serialize the object into a byte array */ byte[] write(); + /**Return a human-readable "debug" string describing this object + */ + string debug_str(); } /** @@ -46,6 +49,12 @@ public class OnionMessageContents : CommonBase { long result = InternalUtils.encodeUint8Array(ret); return result; } + public long debug_str() { + string ret = arg.debug_str(); + GC.KeepAlive(arg); + long result = InternalUtils.encodeString(ret); + return result; + } } /** Creates a new instance of OnionMessageContents from a given implementation */ @@ -80,6 +89,17 @@ public class OnionMessageContents : CommonBase { return ret_conv; } + /** + * Return a human-readable "debug" string describing this object + */ + public string debug_str() { + long ret = bindings.OnionMessageContents_debug_str(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + string ret_conv = InternalUtils.decodeString(ret); + return ret_conv; + } + internal long clone_ptr() { long ret = bindings.OnionMessageContents_clone_ptr(this.ptr); GC.KeepAlive(this); diff --git a/c_sharp/src/org/ldk/structs/OnionMessageHandler.cs b/c_sharp/src/org/ldk/structs/OnionMessageHandler.cs index ac96df6f..30dccb5b 100644 --- a/c_sharp/src/org/ldk/structs/OnionMessageHandler.cs +++ b/c_sharp/src/org/ldk/structs/OnionMessageHandler.cs @@ -10,6 +10,15 @@ namespace org { namespace ldk { namespace structs { /** An implementation of OnionMessageHandler */ public interface OnionMessageHandlerInterface { + /**Because much of the lightning network does not yet support forwarding onion messages, we + * may need to directly connect to a node which will forward a message for us. In such a case, + * this method will return the set of nodes which need connection by node_id and the + * corresponding socket addresses where they may accept incoming connections. + * + * Thus, this method should be polled regularly to detect messages await such a direct + * connection. + */ + TwoTuple_PublicKeyCVec_SocketAddressZZ[] get_and_clear_connections_needed(); /**Handle an incoming `onion_message` message from the given peer. */ void handle_onion_message(byte[] peer_node_id, OnionMessage msg); @@ -30,6 +39,10 @@ public interface OnionMessageHandlerInterface { * drop and refuse to forward onion messages to this peer. */ void peer_disconnected(byte[] their_node_id); + /**Performs actions that should happen roughly every ten seconds after startup. Allows handlers + * to drop any buffered onion messages intended for prospective peers. + */ + void timer_tick_occurred(); /**Gets the node feature flags which this handler itself supports. All available handlers are * queried similarly and their feature flags are OR'd together to form the [`NodeFeatures`] * which are broadcasted in our [`NodeAnnouncement`] message. @@ -61,6 +74,12 @@ public class OnionMessageHandler : CommonBase { internal LDKOnionMessageHandlerImpl(OnionMessageHandlerInterface arg, LDKOnionMessageHandlerHolder impl_holder) { this.arg = arg; this.impl_holder = impl_holder; } private OnionMessageHandlerInterface arg; private LDKOnionMessageHandlerHolder impl_holder; + public long get_and_clear_connections_needed() { + TwoTuple_PublicKeyCVec_SocketAddressZZ[] ret = arg.get_and_clear_connections_needed(); + GC.KeepAlive(arg); + long result = InternalUtils.encodeUint64Array(InternalUtils.mapArray(ret, ret_conv_40 => ret_conv_40 == null ? 0 : ret_conv_40.clone_ptr())); + return result; + } public void handle_onion_message(long _peer_node_id, long _msg) { byte[] _peer_node_id_conv = InternalUtils.decodeUint8Array(_peer_node_id); org.ldk.structs.OnionMessage _msg_hu_conv = null; if (_msg < 0 || _msg > 4096) { _msg_hu_conv = new org.ldk.structs.OnionMessage(null, _msg); } @@ -87,6 +106,10 @@ public class OnionMessageHandler : CommonBase { arg.peer_disconnected(_their_node_id_conv); GC.KeepAlive(arg); } + public void timer_tick_occurred() { + arg.timer_tick_occurred(); + GC.KeepAlive(arg); + } public long provided_node_features() { NodeFeatures ret = arg.provided_node_features(); GC.KeepAlive(arg); @@ -114,6 +137,31 @@ public class OnionMessageHandler : CommonBase { return impl_holder.held; } + /** + * Because much of the lightning network does not yet support forwarding onion messages, we + * may need to directly connect to a node which will forward a message for us. In such a case, + * this method will return the set of nodes which need connection by node_id and the + * corresponding socket addresses where they may accept incoming connections. + * + * Thus, this method should be polled regularly to detect messages await such a direct + * connection. + */ + public TwoTuple_PublicKeyCVec_SocketAddressZZ[] get_and_clear_connections_needed() { + long ret = bindings.OnionMessageHandler_get_and_clear_connections_needed(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + int ret_conv_40_len = InternalUtils.getArrayLength(ret); + TwoTuple_PublicKeyCVec_SocketAddressZZ[] ret_conv_40_arr = new TwoTuple_PublicKeyCVec_SocketAddressZZ[ret_conv_40_len]; + for (int o = 0; o < ret_conv_40_len; o++) { + long ret_conv_40 = InternalUtils.getU64ArrayElem(ret, o); + TwoTuple_PublicKeyCVec_SocketAddressZZ ret_conv_40_hu_conv = new TwoTuple_PublicKeyCVec_SocketAddressZZ(null, ret_conv_40); + if (ret_conv_40_hu_conv != null) { ret_conv_40_hu_conv.ptrs_to.AddLast(this); }; + ret_conv_40_arr[o] = ret_conv_40_hu_conv; + } + bindings.free_buffer(ret); + return ret_conv_40_arr; + } + /** * Handle an incoming `onion_message` message from the given peer. */ @@ -170,6 +218,15 @@ public class OnionMessageHandler : CommonBase { GC.KeepAlive(their_node_id); } + /** + * Performs actions that should happen roughly every ten seconds after startup. Allows handlers + * to drop any buffered onion messages intended for prospective peers. + */ + public void timer_tick_occurred() { + bindings.OnionMessageHandler_timer_tick_occurred(this.ptr); + GC.KeepAlive(this); + } + /** * Gets the node feature flags which this handler itself supports. All available handlers are * queried similarly and their feature flags are OR'd together to form the [`NodeFeatures`] diff --git a/c_sharp/src/org/ldk/structs/OnionMessagePath.cs b/c_sharp/src/org/ldk/structs/OnionMessagePath.cs index 087c2027..f7d573a4 100644 --- a/c_sharp/src/org/ldk/structs/OnionMessagePath.cs +++ b/c_sharp/src/org/ldk/structs/OnionMessagePath.cs @@ -66,17 +66,49 @@ public class OnionMessagePath : CommonBase { if (this != null) { this.ptrs_to.AddLast(val); }; } + /** + * Addresses that may be used to connect to [`OnionMessagePath::first_node`]. + * + * Only needs to be set if a connection to the node is required. [`OnionMessenger`] may use + * this to initiate such a connection. + * + * Returns a copy of the field. + */ + public Option_CVec_SocketAddressZZ get_first_node_addresses() { + long ret = bindings.OnionMessagePath_get_first_node_addresses(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_CVec_SocketAddressZZ ret_hu_conv = org.ldk.structs.Option_CVec_SocketAddressZZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Addresses that may be used to connect to [`OnionMessagePath::first_node`]. + * + * Only needs to be set if a connection to the node is required. [`OnionMessenger`] may use + * this to initiate such a connection. + */ + public void set_first_node_addresses(org.ldk.structs.Option_CVec_SocketAddressZZ val) { + bindings.OnionMessagePath_set_first_node_addresses(this.ptr, val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + /** * Constructs a new OnionMessagePath given each field */ - public static OnionMessagePath of(byte[][] intermediate_nodes_arg, org.ldk.structs.Destination destination_arg) { - long ret = bindings.OnionMessagePath_new(InternalUtils.encodeUint64Array(InternalUtils.mapArray(intermediate_nodes_arg, intermediate_nodes_arg_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(intermediate_nodes_arg_conv_8, 33)))), destination_arg.ptr); + public static OnionMessagePath of(byte[][] intermediate_nodes_arg, org.ldk.structs.Destination destination_arg, org.ldk.structs.Option_CVec_SocketAddressZZ first_node_addresses_arg) { + long ret = bindings.OnionMessagePath_new(InternalUtils.encodeUint64Array(InternalUtils.mapArray(intermediate_nodes_arg, intermediate_nodes_arg_conv_8 => InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(intermediate_nodes_arg_conv_8, 33)))), destination_arg.ptr, first_node_addresses_arg.ptr); GC.KeepAlive(intermediate_nodes_arg); GC.KeepAlive(destination_arg); + GC.KeepAlive(first_node_addresses_arg); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.OnionMessagePath ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OnionMessagePath(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(destination_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(first_node_addresses_arg); }; return ret_hu_conv; } @@ -98,5 +130,16 @@ public class OnionMessagePath : CommonBase { return ret_hu_conv; } + /** + * Returns the first node in the path. + */ + public byte[] first_node() { + long ret = bindings.OnionMessagePath_first_node(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/OnionMessenger.cs b/c_sharp/src/org/ldk/structs/OnionMessenger.cs index 5ad8a929..3bf8b6df 100644 --- a/c_sharp/src/org/ldk/structs/OnionMessenger.cs +++ b/c_sharp/src/org/ldk/structs/OnionMessenger.cs @@ -28,11 +28,12 @@ namespace org { namespace ldk { namespace structs { * ``` * # extern crate bitcoin; * # use bitcoin::hashes::_export::_core::time::Duration; - * # use bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey}; + * # use bitcoin::hashes::hex::FromHex; + * # use bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey, self}; * # use lightning::blinded_path::BlindedPath; - * # use lightning::sign::KeysManager; + * # use lightning::sign::{EntropySource, KeysManager}; * # use lightning::ln::peer_handler::IgnoringMessageHandler; - * # use lightning::onion_message::messenger::{Destination, MessageRouter, OnionMessenger, OnionMessagePath}; + * # use lightning::onion_message::messenger::{Destination, MessageRouter, OnionMessagePath, OnionMessenger}; * # use lightning::onion_message::packet::OnionMessageContents; * # use lightning::util::logger::{Logger, Record}; * # use lightning::util::ser::{Writeable, Writer}; @@ -40,22 +41,35 @@ namespace org { namespace ldk { namespace structs { * # use std::sync::Arc; * # struct FakeLogger; * # impl Logger for FakeLogger { - * # fn log(&self, record: &Record) { unimplemented!() } + * # fn log(&self, record: Record) { println!(\"{:?}\" , record); } * # } * # struct FakeMessageRouter {} * # impl MessageRouter for FakeMessageRouter { * # fn find_path(&self, sender: PublicKey, peers: Vec, destination: Destination) -> Result { - * # unimplemented!() + * # let secp_ctx = Secp256k1::new(); + * # let node_secret = SecretKey::from_slice(&>::from_hex(\"0101010101010101010101010101010101010101010101010101010101010101\").unwrap()[..]).unwrap(); + * # let hop_node_id1 = PublicKey::from_secret_key(&secp_ctx, &node_secret); + * # let hop_node_id2 = hop_node_id1; + * # Ok(OnionMessagePath { + * # intermediate_nodes: vec![hop_node_id1, hop_node_id2], + * # destination, + * # first_node_addresses: None, + * # }) + * # } + * # fn create_blinded_paths( + * # &self, _recipient: PublicKey, _peers: Vec, _secp_ctx: &Secp256k1 + * # ) -> Result, ()> { + * # unreachable!() * # } * # } * # let seed = [42u8; 32]; * # let time = Duration::from_secs(123456); * # let keys_manager = KeysManager::new(&seed, time.as_secs(), time.subsec_nanos()); * # let logger = Arc::new(FakeLogger {}); - * # let node_secret = SecretKey::from_slice(&hex::decode(\"0101010101010101010101010101010101010101010101010101010101010101\").unwrap()[..]).unwrap(); + * # let node_secret = SecretKey::from_slice(&>::from_hex(\"0101010101010101010101010101010101010101010101010101010101010101\").unwrap()[..]).unwrap(); * # let secp_ctx = Secp256k1::new(); * # let hop_node_id1 = PublicKey::from_secret_key(&secp_ctx, &node_secret); - * # let (hop_node_id2, hop_node_id3, hop_node_id4) = (hop_node_id1, hop_node_id1, hop_node_id1); + * # let (hop_node_id3, hop_node_id4) = (hop_node_id1, hop_node_id1); * # let destination_node_id = hop_node_id1; * # let message_router = Arc::new(FakeMessageRouter {}); * # let custom_message_handler = IgnoringMessageHandler {}; @@ -67,7 +81,7 @@ namespace org { namespace ldk { namespace structs { * &custom_message_handler * ); * - * # #[derive(Clone)] + * # #[derive(Debug, Clone)] * # struct YourCustomMessage {} * impl Writeable for YourCustomMessage { * \tfn write(&self, w: &mut W) -> Result<(), io::Error> { @@ -82,13 +96,10 @@ namespace org { namespace ldk { namespace structs { * \t} * } * Send a custom onion message to a node id. - * let path = OnionMessagePath { - * \tintermediate_nodes: vec![hop_node_id1, hop_node_id2], - * \tdestination: Destination::Node(destination_node_id), - * }; + * let destination = Destination::Node(destination_node_id); * let reply_path = None; * # let message = YourCustomMessage {}; - * onion_messenger.send_onion_message(path, message, reply_path); + * onion_messenger.send_onion_message(message, destination, reply_path); * * Create a blinded path to yourself, for someone to send an onion message to. * # let your_node_id = hop_node_id1; @@ -96,13 +107,10 @@ namespace org { namespace ldk { namespace structs { * let blinded_path = BlindedPath::new_for_message(&hops, &keys_manager, &secp_ctx).unwrap(); * * Send a custom onion message to a blinded path. - * let path = OnionMessagePath { - * \tintermediate_nodes: vec![hop_node_id1, hop_node_id2], - * \tdestination: Destination::BlindedPath(blinded_path), - * }; + * let destination = Destination::BlindedPath(blinded_path); * let reply_path = None; * # let message = YourCustomMessage {}; - * onion_messenger.send_onion_message(path, message, reply_path); + * onion_messenger.send_onion_message(message, destination, reply_path); * ``` * * [`InvoiceRequest`]: crate::offers::invoice_request::InvoiceRequest @@ -139,23 +147,22 @@ public class OnionMessenger : CommonBase { } /** - * Sends an [`OnionMessage`] with the given `contents` for sending to the destination of - * `path`. + * Sends an [`OnionMessage`] with the given `contents` to `destination`. * * See [`OnionMessenger`] for example usage. * * Note that reply_path (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public Result_NoneSendErrorZ send_onion_message(org.ldk.structs.OnionMessagePath path, org.ldk.structs.OnionMessageContents contents, org.ldk.structs.BlindedPath reply_path) { - long ret = bindings.OnionMessenger_send_onion_message(this.ptr, path == null ? 0 : path.ptr, contents.ptr, reply_path == null ? 0 : reply_path.ptr); + public Result_SendSuccessSendErrorZ send_onion_message(org.ldk.structs.OnionMessageContents contents, org.ldk.structs.Destination destination, org.ldk.structs.BlindedPath reply_path) { + long ret = bindings.OnionMessenger_send_onion_message(this.ptr, contents.ptr, destination.ptr, reply_path == null ? 0 : reply_path.ptr); GC.KeepAlive(this); - GC.KeepAlive(path); GC.KeepAlive(contents); + GC.KeepAlive(destination); GC.KeepAlive(reply_path); if (ret >= 0 && ret <= 4096) { return null; } - Result_NoneSendErrorZ ret_hu_conv = Result_NoneSendErrorZ.constr_from_ptr(ret); - if (this != null) { this.ptrs_to.AddLast(path); }; + Result_SendSuccessSendErrorZ ret_hu_conv = Result_SendSuccessSendErrorZ.constr_from_ptr(ret); if (this != null) { this.ptrs_to.AddLast(contents); }; + if (this != null) { this.ptrs_to.AddLast(destination); }; if (this != null) { this.ptrs_to.AddLast(reply_path); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/OnionPacket.cs b/c_sharp/src/org/ldk/structs/OnionPacket.cs new file mode 100644 index 00000000..06585339 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/OnionPacket.cs @@ -0,0 +1,156 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * BOLT 4 onion packet including hop data for the next peer. + */ +public class OnionPacket : CommonBase { + internal OnionPacket(object _dummy, long ptr) : base(ptr) { } + ~OnionPacket() { + if (ptr != 0) { bindings.OnionPacket_free(ptr); } + } + + /** + * BOLT 4 version number. + */ + public byte get_version() { + byte ret = bindings.OnionPacket_get_version(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * BOLT 4 version number. + */ + public void set_version(byte val) { + bindings.OnionPacket_set_version(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * In order to ensure we always return an error on onion decode in compliance with [BOLT + * #4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md), we have to + * deserialize `OnionPacket`s contained in [`UpdateAddHTLC`] messages even if the ephemeral + * public key (here) is bogus, so we hold a [`Result`] instead of a [`PublicKey`] as we'd + * like. + * + * Returns a copy of the field. + */ + public Result_PublicKeySecp256k1ErrorZ get_public_key() { + long ret = bindings.OnionPacket_get_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PublicKeySecp256k1ErrorZ ret_hu_conv = Result_PublicKeySecp256k1ErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * In order to ensure we always return an error on onion decode in compliance with [BOLT + * #4](https://github.com/lightning/bolts/blob/master/04-onion-routing.md), we have to + * deserialize `OnionPacket`s contained in [`UpdateAddHTLC`] messages even if the ephemeral + * public key (here) is bogus, so we hold a [`Result`] instead of a [`PublicKey`] as we'd + * like. + */ + public void set_public_key(org.ldk.structs.Result_PublicKeySecp256k1ErrorZ val) { + bindings.OnionPacket_set_public_key(this.ptr, val != null ? val.ptr : 0); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * HMAC to verify the integrity of hop_data. + */ + public byte[] get_hmac() { + long ret = bindings.OnionPacket_get_hmac(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * HMAC to verify the integrity of hop_data. + */ + public void set_hmac(byte[] val) { + bindings.OnionPacket_set_hmac(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + internal long clone_ptr() { + long ret = bindings.OnionPacket_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the OnionPacket + */ + public OnionPacket clone() { + long ret = bindings.OnionPacket_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.OnionPacket ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OnionPacket(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the OnionPacket. + */ + public long hash() { + long ret = bindings.OnionPacket_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Checks if two OnionPackets contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.OnionPacket b) { + bool ret = bindings.OnionPacket_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is OnionPacket)) return false; + return this.eq((OnionPacket)o); + } + /** + * Serialize the OnionPacket object into a byte array which can be read by OnionPacket_read + */ + public byte[] write() { + long ret = bindings.OnionPacket_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a OnionPacket from a byte array, created by OnionPacket_write + */ + public static Result_OnionPacketDecodeErrorZ read(byte[] ser) { + long ret = bindings.OnionPacket_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_OnionPacketDecodeErrorZ ret_hu_conv = Result_OnionPacketDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/OpenChannel.cs b/c_sharp/src/org/ldk/structs/OpenChannel.cs index 9a0f4536..f46844fb 100644 --- a/c_sharp/src/org/ldk/structs/OpenChannel.cs +++ b/c_sharp/src/org/ldk/structs/OpenChannel.cs @@ -470,6 +470,18 @@ public class OpenChannel : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the OpenChannel. + */ + public long hash() { + long ret = bindings.OpenChannel_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two OpenChannels contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/OpenChannelV2.cs b/c_sharp/src/org/ldk/structs/OpenChannelV2.cs index 6ddfeb0e..ec182be2 100644 --- a/c_sharp/src/org/ldk/structs/OpenChannelV2.cs +++ b/c_sharp/src/org/ldk/structs/OpenChannelV2.cs @@ -510,6 +510,18 @@ public class OpenChannelV2 : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the OpenChannelV2. + */ + public long hash() { + long ret = bindings.OpenChannelV2_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two OpenChannelV2s contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Packet.cs b/c_sharp/src/org/ldk/structs/Packet.cs index 3fad01ff..ca6ec26f 100644 --- a/c_sharp/src/org/ldk/structs/Packet.cs +++ b/c_sharp/src/org/ldk/structs/Packet.cs @@ -128,6 +128,18 @@ public class Packet : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Packet. + */ + public long hash() { + long ret = bindings.Packet_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Packets contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/PaymentError.cs b/c_sharp/src/org/ldk/structs/PaymentError.cs deleted file mode 100644 index 7df158b3..00000000 --- a/c_sharp/src/org/ldk/structs/PaymentError.cs +++ /dev/null @@ -1,101 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -/** - * An error that may occur when making a payment. - */ -public class PaymentError : CommonBase { - protected PaymentError(object _dummy, long ptr) : base(ptr) { } - ~PaymentError() { - if (ptr != 0) { bindings.PaymentError_free(ptr); } - } - - internal static PaymentError constr_from_ptr(long ptr) { - long raw_ty = bindings.LDKPaymentError_ty_from_ptr(ptr); - switch (raw_ty) { - case 0: return new PaymentError_Invoice(ptr); - case 1: return new PaymentError_Sending(ptr); - default: - throw new ArgumentException("Impossible enum variant"); - } - } - - /** A PaymentError of type Invoice */ - public class PaymentError_Invoice : PaymentError { - public string invoice; - internal PaymentError_Invoice(long ptr) : base(null, ptr) { - long invoice = bindings.LDKPaymentError_Invoice_get_invoice(ptr); - string invoice_conv = InternalUtils.decodeString(invoice); - this.invoice = invoice_conv; - } - } - /** A PaymentError of type Sending */ - public class PaymentError_Sending : PaymentError { - public RetryableSendFailure sending; - internal PaymentError_Sending(long ptr) : base(null, ptr) { - this.sending = bindings.LDKPaymentError_Sending_get_sending(ptr); - } - } - internal long clone_ptr() { - long ret = bindings.PaymentError_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a copy of the PaymentError - */ - public PaymentError clone() { - long ret = bindings.PaymentError_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.PaymentError ret_hu_conv = org.ldk.structs.PaymentError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - /** - * Utility method to constructs a new Invoice-variant PaymentError - */ - public static PaymentError invoice(string a) { - long ret = bindings.PaymentError_invoice(InternalUtils.encodeString(a)); - GC.KeepAlive(a); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.PaymentError ret_hu_conv = org.ldk.structs.PaymentError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - return ret_hu_conv; - } - - /** - * Utility method to constructs a new Sending-variant PaymentError - */ - public static PaymentError sending(RetryableSendFailure a) { - long ret = bindings.PaymentError_sending(a); - GC.KeepAlive(a); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.PaymentError ret_hu_conv = org.ldk.structs.PaymentError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - return ret_hu_conv; - } - - /** - * Checks if two PaymentErrors contain equal inner contents. - * This ignores pointers and is_owned flags and looks at the values in fields. - */ - public bool eq(org.ldk.structs.PaymentError b) { - bool ret = bindings.PaymentError_eq(this.ptr, b == null ? 0 : b.ptr); - GC.KeepAlive(this); - GC.KeepAlive(b); - return ret; - } - - public override bool Equals(object o) { - if (!(o is PaymentError)) return false; - return this.eq((PaymentError)o); - } -} -} } } diff --git a/c_sharp/src/org/ldk/structs/PaymentParameters.cs b/c_sharp/src/org/ldk/structs/PaymentParameters.cs index 4ac140d3..3f38ad62 100644 --- a/c_sharp/src/org/ldk/structs/PaymentParameters.cs +++ b/c_sharp/src/org/ldk/structs/PaymentParameters.cs @@ -167,17 +167,44 @@ public class PaymentParameters : CommonBase { GC.KeepAlive(val); } + /** + * A list of indices corresponding to blinded paths in [`Payee::Blinded::route_hints`] which this + * payment was previously attempted over and which caused the payment to fail. Future attempts + * for the same payment shouldn't be relayed through any of these blinded paths. + * + * Returns a copy of the field. + */ + public long[] get_previously_failed_blinded_path_idxs() { + long ret = bindings.PaymentParameters_get_previously_failed_blinded_path_idxs(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + long[] ret_conv = InternalUtils.decodeUint64Array(ret); + return ret_conv; + } + + /** + * A list of indices corresponding to blinded paths in [`Payee::Blinded::route_hints`] which this + * payment was previously attempted over and which caused the payment to fail. Future attempts + * for the same payment shouldn't be relayed through any of these blinded paths. + */ + public void set_previously_failed_blinded_path_idxs(long[] val) { + bindings.PaymentParameters_set_previously_failed_blinded_path_idxs(this.ptr, InternalUtils.encodeUint64Array(val)); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + /** * Constructs a new PaymentParameters given each field */ - public static PaymentParameters of(org.ldk.structs.Payee payee_arg, org.ldk.structs.Option_u64Z expiry_time_arg, int max_total_cltv_expiry_delta_arg, byte max_path_count_arg, byte max_channel_saturation_power_of_half_arg, long[] previously_failed_channels_arg) { - long ret = bindings.PaymentParameters_new(payee_arg.ptr, expiry_time_arg.ptr, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, InternalUtils.encodeUint64Array(previously_failed_channels_arg)); + public static PaymentParameters of(org.ldk.structs.Payee payee_arg, org.ldk.structs.Option_u64Z expiry_time_arg, int max_total_cltv_expiry_delta_arg, byte max_path_count_arg, byte max_channel_saturation_power_of_half_arg, long[] previously_failed_channels_arg, long[] previously_failed_blinded_path_idxs_arg) { + long ret = bindings.PaymentParameters_new(payee_arg.ptr, expiry_time_arg.ptr, max_total_cltv_expiry_delta_arg, max_path_count_arg, max_channel_saturation_power_of_half_arg, InternalUtils.encodeUint64Array(previously_failed_channels_arg), InternalUtils.encodeUint64Array(previously_failed_blinded_path_idxs_arg)); GC.KeepAlive(payee_arg); GC.KeepAlive(expiry_time_arg); GC.KeepAlive(max_total_cltv_expiry_delta_arg); GC.KeepAlive(max_path_count_arg); GC.KeepAlive(max_channel_saturation_power_of_half_arg); GC.KeepAlive(previously_failed_channels_arg); + GC.KeepAlive(previously_failed_blinded_path_idxs_arg); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.PaymentParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.PaymentParameters(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; diff --git a/c_sharp/src/org/ldk/structs/PaymentPurpose.cs b/c_sharp/src/org/ldk/structs/PaymentPurpose.cs index ebd6168e..242ead86 100644 --- a/c_sharp/src/org/ldk/structs/PaymentPurpose.cs +++ b/c_sharp/src/org/ldk/structs/PaymentPurpose.cs @@ -127,6 +127,18 @@ public class PaymentPurpose : CommonBase { if (!(o is PaymentPurpose)) return false; return this.eq((PaymentPurpose)o); } + /** + * Returns the preimage for this payment, if it is known. + */ + public Option_ThirtyTwoBytesZ preimage() { + long ret = bindings.PaymentPurpose_preimage(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_ThirtyTwoBytesZ ret_hu_conv = org.ldk.structs.Option_ThirtyTwoBytesZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + /** * Serialize the PaymentPurpose object into a byte array which can be read by PaymentPurpose_read */ diff --git a/c_sharp/src/org/ldk/structs/PendingHTLCInfo.cs b/c_sharp/src/org/ldk/structs/PendingHTLCInfo.cs new file mode 100644 index 00000000..f65bc0d0 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/PendingHTLCInfo.cs @@ -0,0 +1,271 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Information about an incoming HTLC, including the [`PendingHTLCRouting`] describing where it + * should go next. + */ +public class PendingHTLCInfo : CommonBase { + internal PendingHTLCInfo(object _dummy, long ptr) : base(ptr) { } + ~PendingHTLCInfo() { + if (ptr != 0) { bindings.PendingHTLCInfo_free(ptr); } + } + + /** + * Further routing details based on whether the HTLC is being forwarded or received. + */ + public PendingHTLCRouting get_routing() { + long ret = bindings.PendingHTLCInfo_get_routing(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCRouting ret_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Further routing details based on whether the HTLC is being forwarded or received. + */ + public void set_routing(org.ldk.structs.PendingHTLCRouting val) { + bindings.PendingHTLCInfo_set_routing(this.ptr, val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + + /** + * The onion shared secret we build with the sender used to decrypt the onion. + * + * This is later used to encrypt failure packets in the event that the HTLC is failed. + */ + public byte[] get_incoming_shared_secret() { + long ret = bindings.PendingHTLCInfo_get_incoming_shared_secret(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The onion shared secret we build with the sender used to decrypt the onion. + * + * This is later used to encrypt failure packets in the event that the HTLC is failed. + */ + public void set_incoming_shared_secret(byte[] val) { + bindings.PendingHTLCInfo_set_incoming_shared_secret(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Hash of the payment preimage, to lock the payment until the receiver releases the preimage. + */ + public byte[] get_payment_hash() { + long ret = bindings.PendingHTLCInfo_get_payment_hash(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Hash of the payment preimage, to lock the payment until the receiver releases the preimage. + */ + public void set_payment_hash(byte[] val) { + bindings.PendingHTLCInfo_set_payment_hash(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Amount received in the incoming HTLC. + * + * This field was added in LDK 0.0.113 and will be `None` for objects written by prior + * versions. + */ + public Option_u64Z get_incoming_amt_msat() { + long ret = bindings.PendingHTLCInfo_get_incoming_amt_msat(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_u64Z ret_hu_conv = org.ldk.structs.Option_u64Z.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Amount received in the incoming HTLC. + * + * This field was added in LDK 0.0.113 and will be `None` for objects written by prior + * versions. + */ + public void set_incoming_amt_msat(org.ldk.structs.Option_u64Z val) { + bindings.PendingHTLCInfo_set_incoming_amt_msat(this.ptr, val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + + /** + * The amount the sender indicated should be forwarded on to the next hop or amount the sender + * intended for us to receive for received payments. + * + * If the received amount is less than this for received payments, an intermediary hop has + * attempted to steal some of our funds and we should fail the HTLC (the sender should retry + * it along another path). + * + * Because nodes can take less than their required fees, and because senders may wish to + * improve their own privacy, this amount may be less than [`Self::incoming_amt_msat`] for + * received payments. In such cases, recipients must handle this HTLC as if it had received + * [`Self::outgoing_amt_msat`]. + */ + public long get_outgoing_amt_msat() { + long ret = bindings.PendingHTLCInfo_get_outgoing_amt_msat(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The amount the sender indicated should be forwarded on to the next hop or amount the sender + * intended for us to receive for received payments. + * + * If the received amount is less than this for received payments, an intermediary hop has + * attempted to steal some of our funds and we should fail the HTLC (the sender should retry + * it along another path). + * + * Because nodes can take less than their required fees, and because senders may wish to + * improve their own privacy, this amount may be less than [`Self::incoming_amt_msat`] for + * received payments. In such cases, recipients must handle this HTLC as if it had received + * [`Self::outgoing_amt_msat`]. + */ + public void set_outgoing_amt_msat(long val) { + bindings.PendingHTLCInfo_set_outgoing_amt_msat(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The CLTV the sender has indicated we should set on the forwarded HTLC (or has indicated + * should have been set on the received HTLC for received payments). + */ + public int get_outgoing_cltv_value() { + int ret = bindings.PendingHTLCInfo_get_outgoing_cltv_value(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The CLTV the sender has indicated we should set on the forwarded HTLC (or has indicated + * should have been set on the received HTLC for received payments). + */ + public void set_outgoing_cltv_value(int val) { + bindings.PendingHTLCInfo_set_outgoing_cltv_value(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The fee taken for this HTLC in addition to the standard protocol HTLC fees. + * + * If this is a payment for forwarding, this is the fee we are taking before forwarding the + * HTLC. + * + * If this is a received payment, this is the fee that our counterparty took. + * + * This is used to allow LSPs to take fees as a part of payments, without the sender having to + * shoulder them. + */ + public Option_u64Z get_skimmed_fee_msat() { + long ret = bindings.PendingHTLCInfo_get_skimmed_fee_msat(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_u64Z ret_hu_conv = org.ldk.structs.Option_u64Z.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * The fee taken for this HTLC in addition to the standard protocol HTLC fees. + * + * If this is a payment for forwarding, this is the fee we are taking before forwarding the + * HTLC. + * + * If this is a received payment, this is the fee that our counterparty took. + * + * This is used to allow LSPs to take fees as a part of payments, without the sender having to + * shoulder them. + */ + public void set_skimmed_fee_msat(org.ldk.structs.Option_u64Z val) { + bindings.PendingHTLCInfo_set_skimmed_fee_msat(this.ptr, val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + + /** + * Constructs a new PendingHTLCInfo given each field + */ + public static PendingHTLCInfo of(org.ldk.structs.PendingHTLCRouting routing_arg, byte[] incoming_shared_secret_arg, byte[] payment_hash_arg, org.ldk.structs.Option_u64Z incoming_amt_msat_arg, long outgoing_amt_msat_arg, int outgoing_cltv_value_arg, org.ldk.structs.Option_u64Z skimmed_fee_msat_arg) { + long ret = bindings.PendingHTLCInfo_new(routing_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(incoming_shared_secret_arg, 32)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_hash_arg, 32)), incoming_amt_msat_arg.ptr, outgoing_amt_msat_arg, outgoing_cltv_value_arg, skimmed_fee_msat_arg.ptr); + GC.KeepAlive(routing_arg); + GC.KeepAlive(incoming_shared_secret_arg); + GC.KeepAlive(payment_hash_arg); + GC.KeepAlive(incoming_amt_msat_arg); + GC.KeepAlive(outgoing_amt_msat_arg); + GC.KeepAlive(outgoing_cltv_value_arg); + GC.KeepAlive(skimmed_fee_msat_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCInfo ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.PendingHTLCInfo(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(routing_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(incoming_amt_msat_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(skimmed_fee_msat_arg); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.PendingHTLCInfo_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the PendingHTLCInfo + */ + public PendingHTLCInfo clone() { + long ret = bindings.PendingHTLCInfo_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCInfo ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.PendingHTLCInfo(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Serialize the PendingHTLCInfo object into a byte array which can be read by PendingHTLCInfo_read + */ + public byte[] write() { + long ret = bindings.PendingHTLCInfo_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a PendingHTLCInfo from a byte array, created by PendingHTLCInfo_write + */ + public static Result_PendingHTLCInfoDecodeErrorZ read(byte[] ser) { + long ret = bindings.PendingHTLCInfo_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoDecodeErrorZ ret_hu_conv = Result_PendingHTLCInfoDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/PendingHTLCRouting.cs b/c_sharp/src/org/ldk/structs/PendingHTLCRouting.cs new file mode 100644 index 00000000..3dbd49ed --- /dev/null +++ b/c_sharp/src/org/ldk/structs/PendingHTLCRouting.cs @@ -0,0 +1,287 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +/** + * Information about where a received HTLC('s onion) has indicated the HTLC should go. + */ +public class PendingHTLCRouting : CommonBase { + protected PendingHTLCRouting(object _dummy, long ptr) : base(ptr) { } + ~PendingHTLCRouting() { + if (ptr != 0) { bindings.PendingHTLCRouting_free(ptr); } + } + + internal static PendingHTLCRouting constr_from_ptr(long ptr) { + long raw_ty = bindings.LDKPendingHTLCRouting_ty_from_ptr(ptr); + switch (raw_ty) { + case 0: return new PendingHTLCRouting_Forward(ptr); + case 1: return new PendingHTLCRouting_Receive(ptr); + case 2: return new PendingHTLCRouting_ReceiveKeysend(ptr); + default: + throw new ArgumentException("Impossible enum variant"); + } + } + + /** A PendingHTLCRouting of type Forward */ + public class PendingHTLCRouting_Forward : PendingHTLCRouting { + /** + * The onion which should be included in the forwarded HTLC, telling the next hop what to + * do with the HTLC. + */ + public OnionPacket onion_packet; + /** + * The short channel ID of the channel which we were instructed to forward this HTLC to. + * + * This could be a real on-chain SCID, an SCID alias, or some other SCID which has meaning + * to the receiving node, such as one returned from + * [`ChannelManager::get_intercept_scid`] or [`ChannelManager::get_phantom_scid`]. + */ + public long short_channel_id; + /** + * Set if this HTLC is being forwarded within a blinded path. + * + * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public BlindedForward blinded; + internal PendingHTLCRouting_Forward(long ptr) : base(null, ptr) { + long onion_packet = bindings.LDKPendingHTLCRouting_Forward_get_onion_packet(ptr); + org.ldk.structs.OnionPacket onion_packet_hu_conv = null; if (onion_packet < 0 || onion_packet > 4096) { onion_packet_hu_conv = new org.ldk.structs.OnionPacket(null, onion_packet); } + if (onion_packet_hu_conv != null) { onion_packet_hu_conv.ptrs_to.AddLast(this); }; + this.onion_packet = onion_packet_hu_conv; + this.short_channel_id = bindings.LDKPendingHTLCRouting_Forward_get_short_channel_id(ptr); + long blinded = bindings.LDKPendingHTLCRouting_Forward_get_blinded(ptr); + org.ldk.structs.BlindedForward blinded_hu_conv = null; if (blinded < 0 || blinded > 4096) { blinded_hu_conv = new org.ldk.structs.BlindedForward(null, blinded); } + if (blinded_hu_conv != null) { blinded_hu_conv.ptrs_to.AddLast(this); }; + this.blinded = blinded_hu_conv; + } + } + /** A PendingHTLCRouting of type Receive */ + public class PendingHTLCRouting_Receive : PendingHTLCRouting { + /** + * Information about the amount the sender intended to pay and (potential) proof that this + * is a payment for an invoice we generated. This proof of payment is is also used for + * linking MPP parts of a larger payment. + */ + public FinalOnionHopData payment_data; + /** + * Additional data which we (allegedly) instructed the sender to include in the onion. + * + * For HTLCs received by LDK, this will ultimately be exposed in + * [`Event::PaymentClaimable::onion_fields`] as + * [`RecipientOnionFields::payment_metadata`]. + */ + public Option_CVec_u8ZZ payment_metadata; + /** + * CLTV expiry of the received HTLC. + * + * Used to track when we should expire pending HTLCs that go unclaimed. + */ + public int incoming_cltv_expiry; + /** + * If the onion had forwarding instructions to one of our phantom node SCIDs, this will + * provide the onion shared secret used to decrypt the next level of forwarding + * instructions. + * + * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public byte[] phantom_shared_secret; + /** + * Custom TLVs which were set by the sender. + * + * For HTLCs received by LDK, this will ultimately be exposed in + * [`Event::PaymentClaimable::onion_fields`] as + * [`RecipientOnionFields::custom_tlvs`]. + */ + public TwoTuple_u64CVec_u8ZZ[] custom_tlvs; + /** + * Set if this HTLC is the final hop in a multi-hop blinded path. + */ + public bool requires_blinded_error; + internal PendingHTLCRouting_Receive(long ptr) : base(null, ptr) { + long payment_data = bindings.LDKPendingHTLCRouting_Receive_get_payment_data(ptr); + org.ldk.structs.FinalOnionHopData payment_data_hu_conv = null; if (payment_data < 0 || payment_data > 4096) { payment_data_hu_conv = new org.ldk.structs.FinalOnionHopData(null, payment_data); } + if (payment_data_hu_conv != null) { payment_data_hu_conv.ptrs_to.AddLast(this); }; + this.payment_data = payment_data_hu_conv; + long payment_metadata = bindings.LDKPendingHTLCRouting_Receive_get_payment_metadata(ptr); + org.ldk.structs.Option_CVec_u8ZZ payment_metadata_hu_conv = org.ldk.structs.Option_CVec_u8ZZ.constr_from_ptr(payment_metadata); + if (payment_metadata_hu_conv != null) { payment_metadata_hu_conv.ptrs_to.AddLast(this); }; + this.payment_metadata = payment_metadata_hu_conv; + this.incoming_cltv_expiry = bindings.LDKPendingHTLCRouting_Receive_get_incoming_cltv_expiry(ptr); + long phantom_shared_secret = bindings.LDKPendingHTLCRouting_Receive_get_phantom_shared_secret(ptr); + byte[] phantom_shared_secret_conv = InternalUtils.decodeUint8Array(phantom_shared_secret); + this.phantom_shared_secret = phantom_shared_secret_conv; + long custom_tlvs = bindings.LDKPendingHTLCRouting_Receive_get_custom_tlvs(ptr); + int custom_tlvs_conv_23_len = InternalUtils.getArrayLength(custom_tlvs); + TwoTuple_u64CVec_u8ZZ[] custom_tlvs_conv_23_arr = new TwoTuple_u64CVec_u8ZZ[custom_tlvs_conv_23_len]; + for (int x = 0; x < custom_tlvs_conv_23_len; x++) { + long custom_tlvs_conv_23 = InternalUtils.getU64ArrayElem(custom_tlvs, x); + TwoTuple_u64CVec_u8ZZ custom_tlvs_conv_23_hu_conv = new TwoTuple_u64CVec_u8ZZ(null, custom_tlvs_conv_23); + if (custom_tlvs_conv_23_hu_conv != null) { custom_tlvs_conv_23_hu_conv.ptrs_to.AddLast(this); }; + custom_tlvs_conv_23_arr[x] = custom_tlvs_conv_23_hu_conv; + } + bindings.free_buffer(custom_tlvs); + this.custom_tlvs = custom_tlvs_conv_23_arr; + this.requires_blinded_error = bindings.LDKPendingHTLCRouting_Receive_get_requires_blinded_error(ptr); + } + } + /** A PendingHTLCRouting of type ReceiveKeysend */ + public class PendingHTLCRouting_ReceiveKeysend : PendingHTLCRouting { + /** + * Information about the amount the sender intended to pay and possibly a token to + * associate MPP parts of a larger payment. + * + * This will only be filled in if receiving MPP keysend payments is enabled, and it being + * present will cause deserialization to fail on versions of LDK prior to 0.0.116. + * + * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public FinalOnionHopData payment_data; + /** + * Preimage for this onion payment. This preimage is provided by the sender and will be + * used to settle the spontaneous payment. + */ + public byte[] payment_preimage; + /** + * Additional data which we (allegedly) instructed the sender to include in the onion. + * + * For HTLCs received by LDK, this will ultimately bubble back up as + * [`RecipientOnionFields::payment_metadata`]. + */ + public Option_CVec_u8ZZ payment_metadata; + /** + * CLTV expiry of the received HTLC. + * + * Used to track when we should expire pending HTLCs that go unclaimed. + */ + public int incoming_cltv_expiry; + /** + * Custom TLVs which were set by the sender. + * + * For HTLCs received by LDK, these will ultimately bubble back up as + * [`RecipientOnionFields::custom_tlvs`]. + */ + public TwoTuple_u64CVec_u8ZZ[] custom_tlvs; + internal PendingHTLCRouting_ReceiveKeysend(long ptr) : base(null, ptr) { + long payment_data = bindings.LDKPendingHTLCRouting_ReceiveKeysend_get_payment_data(ptr); + org.ldk.structs.FinalOnionHopData payment_data_hu_conv = null; if (payment_data < 0 || payment_data > 4096) { payment_data_hu_conv = new org.ldk.structs.FinalOnionHopData(null, payment_data); } + if (payment_data_hu_conv != null) { payment_data_hu_conv.ptrs_to.AddLast(this); }; + this.payment_data = payment_data_hu_conv; + long payment_preimage = bindings.LDKPendingHTLCRouting_ReceiveKeysend_get_payment_preimage(ptr); + byte[] payment_preimage_conv = InternalUtils.decodeUint8Array(payment_preimage); + this.payment_preimage = payment_preimage_conv; + long payment_metadata = bindings.LDKPendingHTLCRouting_ReceiveKeysend_get_payment_metadata(ptr); + org.ldk.structs.Option_CVec_u8ZZ payment_metadata_hu_conv = org.ldk.structs.Option_CVec_u8ZZ.constr_from_ptr(payment_metadata); + if (payment_metadata_hu_conv != null) { payment_metadata_hu_conv.ptrs_to.AddLast(this); }; + this.payment_metadata = payment_metadata_hu_conv; + this.incoming_cltv_expiry = bindings.LDKPendingHTLCRouting_ReceiveKeysend_get_incoming_cltv_expiry(ptr); + long custom_tlvs = bindings.LDKPendingHTLCRouting_ReceiveKeysend_get_custom_tlvs(ptr); + int custom_tlvs_conv_23_len = InternalUtils.getArrayLength(custom_tlvs); + TwoTuple_u64CVec_u8ZZ[] custom_tlvs_conv_23_arr = new TwoTuple_u64CVec_u8ZZ[custom_tlvs_conv_23_len]; + for (int x = 0; x < custom_tlvs_conv_23_len; x++) { + long custom_tlvs_conv_23 = InternalUtils.getU64ArrayElem(custom_tlvs, x); + TwoTuple_u64CVec_u8ZZ custom_tlvs_conv_23_hu_conv = new TwoTuple_u64CVec_u8ZZ(null, custom_tlvs_conv_23); + if (custom_tlvs_conv_23_hu_conv != null) { custom_tlvs_conv_23_hu_conv.ptrs_to.AddLast(this); }; + custom_tlvs_conv_23_arr[x] = custom_tlvs_conv_23_hu_conv; + } + bindings.free_buffer(custom_tlvs); + this.custom_tlvs = custom_tlvs_conv_23_arr; + } + } + internal long clone_ptr() { + long ret = bindings.PendingHTLCRouting_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the PendingHTLCRouting + */ + public PendingHTLCRouting clone() { + long ret = bindings.PendingHTLCRouting_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCRouting ret_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new Forward-variant PendingHTLCRouting + */ + public static PendingHTLCRouting forward(org.ldk.structs.OnionPacket onion_packet, long short_channel_id, org.ldk.structs.BlindedForward blinded) { + long ret = bindings.PendingHTLCRouting_forward(onion_packet == null ? 0 : onion_packet.ptr, short_channel_id, blinded == null ? 0 : blinded.ptr); + GC.KeepAlive(onion_packet); + GC.KeepAlive(short_channel_id); + GC.KeepAlive(blinded); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCRouting ret_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(onion_packet); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(blinded); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new Receive-variant PendingHTLCRouting + */ + public static PendingHTLCRouting receive(org.ldk.structs.FinalOnionHopData payment_data, org.ldk.structs.Option_CVec_u8ZZ payment_metadata, int incoming_cltv_expiry, byte[] phantom_shared_secret, TwoTuple_u64CVec_u8ZZ[] custom_tlvs, bool requires_blinded_error) { + long ret = bindings.PendingHTLCRouting_receive(payment_data == null ? 0 : payment_data.ptr, payment_metadata.ptr, incoming_cltv_expiry, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(phantom_shared_secret, 32)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(custom_tlvs, custom_tlvs_conv_23 => custom_tlvs_conv_23 != null ? custom_tlvs_conv_23.ptr : 0)), requires_blinded_error); + GC.KeepAlive(payment_data); + GC.KeepAlive(payment_metadata); + GC.KeepAlive(incoming_cltv_expiry); + GC.KeepAlive(phantom_shared_secret); + GC.KeepAlive(custom_tlvs); + GC.KeepAlive(requires_blinded_error); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCRouting ret_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(payment_data); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(payment_metadata); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new ReceiveKeysend-variant PendingHTLCRouting + */ + public static PendingHTLCRouting receive_keysend(org.ldk.structs.FinalOnionHopData payment_data, byte[] payment_preimage, org.ldk.structs.Option_CVec_u8ZZ payment_metadata, int incoming_cltv_expiry, TwoTuple_u64CVec_u8ZZ[] custom_tlvs) { + long ret = bindings.PendingHTLCRouting_receive_keysend(payment_data == null ? 0 : payment_data.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_preimage, 32)), payment_metadata.ptr, incoming_cltv_expiry, InternalUtils.encodeUint64Array(InternalUtils.mapArray(custom_tlvs, custom_tlvs_conv_23 => custom_tlvs_conv_23 != null ? custom_tlvs_conv_23.ptr : 0))); + GC.KeepAlive(payment_data); + GC.KeepAlive(payment_preimage); + GC.KeepAlive(payment_metadata); + GC.KeepAlive(incoming_cltv_expiry); + GC.KeepAlive(custom_tlvs); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PendingHTLCRouting ret_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(payment_data); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(payment_metadata); }; + return ret_hu_conv; + } + + /** + * Serialize the PendingHTLCRouting object into a byte array which can be read by PendingHTLCRouting_read + */ + public byte[] write() { + long ret = bindings.PendingHTLCRouting_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a PendingHTLCRouting from a byte array, created by PendingHTLCRouting_write + */ + public static Result_PendingHTLCRoutingDecodeErrorZ read(byte[] ser) { + long ret = bindings.PendingHTLCRouting_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCRoutingDecodeErrorZ ret_hu_conv = Result_PendingHTLCRoutingDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Ping.cs b/c_sharp/src/org/ldk/structs/Ping.cs index 3bdad4c0..cf5d834d 100644 --- a/c_sharp/src/org/ldk/structs/Ping.cs +++ b/c_sharp/src/org/ldk/structs/Ping.cs @@ -88,6 +88,18 @@ public class Ping : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Ping. + */ + public long hash() { + long ret = bindings.Ping_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Pings contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Pong.cs b/c_sharp/src/org/ldk/structs/Pong.cs index ed704f87..7d31da14 100644 --- a/c_sharp/src/org/ldk/structs/Pong.cs +++ b/c_sharp/src/org/ldk/structs/Pong.cs @@ -69,6 +69,18 @@ public class Pong : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Pong. + */ + public long hash() { + long ret = bindings.Pong_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Pongs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/PrivateHopCandidate.cs b/c_sharp/src/org/ldk/structs/PrivateHopCandidate.cs new file mode 100644 index 00000000..12018e5a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/PrivateHopCandidate.cs @@ -0,0 +1,37 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A [`CandidateRouteHop::PrivateHop`] entry. + */ +public class PrivateHopCandidate : CommonBase { + internal PrivateHopCandidate(object _dummy, long ptr) : base(ptr) { } + ~PrivateHopCandidate() { + if (ptr != 0) { bindings.PrivateHopCandidate_free(ptr); } + } + + internal long clone_ptr() { + long ret = bindings.PrivateHopCandidate_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the PrivateHopCandidate + */ + public PrivateHopCandidate clone() { + long ret = bindings.PrivateHopCandidate_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PrivateHopCandidate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.PrivateHopCandidate(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/ProbabilisticScorer.cs b/c_sharp/src/org/ldk/structs/ProbabilisticScorer.cs index 2bbdf38f..333e3ab4 100644 --- a/c_sharp/src/org/ldk/structs/ProbabilisticScorer.cs +++ b/c_sharp/src/org/ldk/structs/ProbabilisticScorer.cs @@ -17,7 +17,7 @@ namespace org { namespace ldk { namespace structs { * These bounds are then used to determine a success probability using the formula from * Optimally Reliable & Cheap Payment Flows on the Lightning Network* by Rene Pickhardt * and Stefan Richter [[1]] (i.e. `(upper_bound - payment_amount) / (upper_bound - lower_bound)`). - * 6762, 1070 + * * This probability is combined with the [`liquidity_penalty_multiplier_msat`] and * [`liquidity_penalty_amount_multiplier_msat`] parameters to calculate a concrete penalty in * milli-satoshis. The penalties, when added across all hops, have the property of being linear in @@ -32,11 +32,6 @@ namespace org { namespace ldk { namespace structs { * formula, but using the history of a channel rather than our latest estimates for the liquidity * bounds. * - * # Note - * - * Mixing the `no-std` feature between serialization and deserialization results in undefined - * behavior. - * * [1]: https://arxiv.org/abs/2107.05322 * [`liquidity_penalty_multiplier_msat`]: ProbabilisticScoringFeeParameters::liquidity_penalty_multiplier_msat * [`liquidity_penalty_amount_multiplier_msat`]: ProbabilisticScoringFeeParameters::liquidity_penalty_amount_multiplier_msat @@ -118,7 +113,7 @@ public class ProbabilisticScorer : CommonBase { * in the top and bottom bucket, and roughly with similar (recent) frequency. * * Because the datapoints are decayed slowly over time, values will eventually return to - * `Some(([1; 32], [1; 32]))` and then to `None` once no datapoints remain. + * `Some(([0; 32], [0; 32]))` or `None` if no data remains for a channel. * * In order to fetch a single success probability from the buckets provided here, as used in * the scoring model, see [`Self::historical_estimated_payment_success_probability`]. diff --git a/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs b/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs index 79d2a6ce..7f0cfd63 100644 --- a/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs +++ b/c_sharp/src/org/ldk/structs/ProbabilisticScoringDecayParameters.cs @@ -30,7 +30,7 @@ public class ProbabilisticScoringDecayParameters : CommonBase { * * Default value: 14 days * - * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorerUsingTime::historical_estimated_channel_liquidity_probabilities + * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorer::historical_estimated_channel_liquidity_probabilities */ public long get_historical_no_updates_half_life() { long ret = bindings.ProbabilisticScoringDecayParameters_get_historical_no_updates_half_life(this.ptr); @@ -49,7 +49,7 @@ public class ProbabilisticScoringDecayParameters : CommonBase { * * Default value: 14 days * - * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorerUsingTime::historical_estimated_channel_liquidity_probabilities + * [`historical_estimated_channel_liquidity_probabilities`]: ProbabilisticScorer::historical_estimated_channel_liquidity_probabilities */ public void set_historical_no_updates_half_life(long val) { bindings.ProbabilisticScoringDecayParameters_set_historical_no_updates_half_life(this.ptr, val); diff --git a/c_sharp/src/org/ldk/structs/ProbingError.cs b/c_sharp/src/org/ldk/structs/ProbingError.cs deleted file mode 100644 index 3ce9f995..00000000 --- a/c_sharp/src/org/ldk/structs/ProbingError.cs +++ /dev/null @@ -1,105 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -/** - * An error that may occur when sending a payment probe. - */ -public class ProbingError : CommonBase { - protected ProbingError(object _dummy, long ptr) : base(ptr) { } - ~ProbingError() { - if (ptr != 0) { bindings.ProbingError_free(ptr); } - } - - internal static ProbingError constr_from_ptr(long ptr) { - long raw_ty = bindings.LDKProbingError_ty_from_ptr(ptr); - switch (raw_ty) { - case 0: return new ProbingError_Invoice(ptr); - case 1: return new ProbingError_Sending(ptr); - default: - throw new ArgumentException("Impossible enum variant"); - } - } - - /** A ProbingError of type Invoice */ - public class ProbingError_Invoice : ProbingError { - public string invoice; - internal ProbingError_Invoice(long ptr) : base(null, ptr) { - long invoice = bindings.LDKProbingError_Invoice_get_invoice(ptr); - string invoice_conv = InternalUtils.decodeString(invoice); - this.invoice = invoice_conv; - } - } - /** A ProbingError of type Sending */ - public class ProbingError_Sending : ProbingError { - public ProbeSendFailure sending; - internal ProbingError_Sending(long ptr) : base(null, ptr) { - long sending = bindings.LDKProbingError_Sending_get_sending(ptr); - org.ldk.structs.ProbeSendFailure sending_hu_conv = org.ldk.structs.ProbeSendFailure.constr_from_ptr(sending); - if (sending_hu_conv != null) { sending_hu_conv.ptrs_to.AddLast(this); }; - this.sending = sending_hu_conv; - } - } - internal long clone_ptr() { - long ret = bindings.ProbingError_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a copy of the ProbingError - */ - public ProbingError clone() { - long ret = bindings.ProbingError_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.ProbingError ret_hu_conv = org.ldk.structs.ProbingError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - /** - * Utility method to constructs a new Invoice-variant ProbingError - */ - public static ProbingError invoice(string a) { - long ret = bindings.ProbingError_invoice(InternalUtils.encodeString(a)); - GC.KeepAlive(a); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.ProbingError ret_hu_conv = org.ldk.structs.ProbingError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - return ret_hu_conv; - } - - /** - * Utility method to constructs a new Sending-variant ProbingError - */ - public static ProbingError sending(org.ldk.structs.ProbeSendFailure a) { - long ret = bindings.ProbingError_sending(a.ptr); - GC.KeepAlive(a); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.ProbingError ret_hu_conv = org.ldk.structs.ProbingError.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(a); }; - return ret_hu_conv; - } - - /** - * Checks if two ProbingErrors contain equal inner contents. - * This ignores pointers and is_owned flags and looks at the values in fields. - */ - public bool eq(org.ldk.structs.ProbingError b) { - bool ret = bindings.ProbingError_eq(this.ptr, b == null ? 0 : b.ptr); - GC.KeepAlive(this); - GC.KeepAlive(b); - return ret; - } - - public override bool Equals(object o) { - if (!(o is ProbingError)) return false; - return this.eq((ProbingError)o); - } -} -} } } diff --git a/c_sharp/src/org/ldk/structs/PublicHopCandidate.cs b/c_sharp/src/org/ldk/structs/PublicHopCandidate.cs new file mode 100644 index 00000000..0475b515 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/PublicHopCandidate.cs @@ -0,0 +1,57 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A [`CandidateRouteHop::PublicHop`] entry. + */ +public class PublicHopCandidate : CommonBase { + internal PublicHopCandidate(object _dummy, long ptr) : base(ptr) { } + ~PublicHopCandidate() { + if (ptr != 0) { bindings.PublicHopCandidate_free(ptr); } + } + + /** + * The short channel ID of the channel, i.e. the identifier by which we refer to this + * channel. + */ + public long get_short_channel_id() { + long ret = bindings.PublicHopCandidate_get_short_channel_id(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The short channel ID of the channel, i.e. the identifier by which we refer to this + * channel. + */ + public void set_short_channel_id(long val) { + bindings.PublicHopCandidate_set_short_channel_id(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + internal long clone_ptr() { + long ret = bindings.PublicHopCandidate_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the PublicHopCandidate + */ + public PublicHopCandidate clone() { + long ret = bindings.PublicHopCandidate_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.PublicHopCandidate ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.PublicHopCandidate(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/QueryChannelRange.cs b/c_sharp/src/org/ldk/structs/QueryChannelRange.cs index ae91c5aa..869c1ac5 100644 --- a/c_sharp/src/org/ldk/structs/QueryChannelRange.cs +++ b/c_sharp/src/org/ldk/structs/QueryChannelRange.cs @@ -108,6 +108,18 @@ public class QueryChannelRange : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the QueryChannelRange. + */ + public long hash() { + long ret = bindings.QueryChannelRange_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two QueryChannelRanges contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/QueryShortChannelIds.cs b/c_sharp/src/org/ldk/structs/QueryShortChannelIds.cs index f450b34f..318c3ac4 100644 --- a/c_sharp/src/org/ldk/structs/QueryShortChannelIds.cs +++ b/c_sharp/src/org/ldk/structs/QueryShortChannelIds.cs @@ -98,6 +98,18 @@ public class QueryShortChannelIds : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the QueryShortChannelIds. + */ + public long hash() { + long ret = bindings.QueryShortChannelIds_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two QueryShortChannelIdss contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ReceiveTlvs.cs b/c_sharp/src/org/ldk/structs/ReceiveTlvs.cs index 53b04a66..63b088ee 100644 --- a/c_sharp/src/org/ldk/structs/ReceiveTlvs.cs +++ b/c_sharp/src/org/ldk/structs/ReceiveTlvs.cs @@ -101,16 +101,5 @@ public class ReceiveTlvs : CommonBase { return ret_conv; } - /** - * Read a ReceiveTlvs from a byte array, created by ReceiveTlvs_write - */ - public static Result_ReceiveTlvsDecodeErrorZ read(byte[] ser) { - long ret = bindings.ReceiveTlvs_read(InternalUtils.encodeUint8Array(ser)); - GC.KeepAlive(ser); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ReceiveTlvsDecodeErrorZ ret_hu_conv = Result_ReceiveTlvsDecodeErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - } } } } diff --git a/c_sharp/src/org/ldk/structs/Record.cs b/c_sharp/src/org/ldk/structs/Record.cs index 54f0a5eb..c1cff2fa 100644 --- a/c_sharp/src/org/ldk/structs/Record.cs +++ b/c_sharp/src/org/ldk/structs/Record.cs @@ -34,6 +34,62 @@ public class Record : CommonBase { GC.KeepAlive(val); } + /** + * The node id of the peer pertaining to the logged record. + * + * Note that in some cases a [`Self::channel_id`] may be filled in but this may still be + * `None`, depending on if the peer information is readily available in LDK when the log is + * generated. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public byte[] get_peer_id() { + long ret = bindings.Record_get_peer_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The node id of the peer pertaining to the logged record. + * + * Note that in some cases a [`Self::channel_id`] may be filled in but this may still be + * `None`, depending on if the peer information is readily available in LDK when the log is + * generated. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public void set_peer_id(byte[] val) { + bindings.Record_set_peer_id(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The channel id of the channel pertaining to the logged record. May be a temporary id before + * the channel has been funded. + */ + public Option_ThirtyTwoBytesZ get_channel_id() { + long ret = bindings.Record_get_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_ThirtyTwoBytesZ ret_hu_conv = org.ldk.structs.Option_ThirtyTwoBytesZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * The channel id of the channel pertaining to the logged record. May be a temporary id before + * the channel has been funded. + */ + public void set_channel_id(org.ldk.structs.Option_ThirtyTwoBytesZ val) { + bindings.Record_set_channel_id(this.ptr, val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + /** * The message body. */ @@ -112,6 +168,27 @@ public class Record : CommonBase { GC.KeepAlive(val); } + /** + * Constructs a new Record given each field + * + * Note that peer_id_arg (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public static Record of(Level level_arg, byte[] peer_id_arg, org.ldk.structs.Option_ThirtyTwoBytesZ channel_id_arg, string args_arg, string module_path_arg, string file_arg, int line_arg) { + long ret = bindings.Record_new(level_arg, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(peer_id_arg, 33)), channel_id_arg.ptr, InternalUtils.encodeString(args_arg), InternalUtils.encodeString(module_path_arg), InternalUtils.encodeString(file_arg), line_arg); + GC.KeepAlive(level_arg); + GC.KeepAlive(peer_id_arg); + GC.KeepAlive(channel_id_arg); + GC.KeepAlive(args_arg); + GC.KeepAlive(module_path_arg); + GC.KeepAlive(file_arg); + GC.KeepAlive(line_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Record ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Record(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channel_id_arg); }; + return ret_hu_conv; + } + internal long clone_ptr() { long ret = bindings.Record_clone_ptr(this.ptr); GC.KeepAlive(this); diff --git a/c_sharp/src/org/ldk/structs/Refund.cs b/c_sharp/src/org/ldk/structs/Refund.cs index bff3dd94..d83b0c34 100644 --- a/c_sharp/src/org/ldk/structs/Refund.cs +++ b/c_sharp/src/org/ldk/structs/Refund.cs @@ -76,6 +76,16 @@ public class Refund : CommonBase { return ret; } + /** + * Whether the refund has expired given the duration since the Unix epoch. + */ + public bool is_expired_no_std(long duration_since_epoch) { + bool ret = bindings.Refund_is_expired_no_std(this.ptr, duration_since_epoch); + GC.KeepAlive(this); + GC.KeepAlive(duration_since_epoch); + return ret; + } + /** * The issuer of the refund, possibly beginning with `user@domain` or `domain`. Intended to be * displayed to the user but with the caveat that it has not been verified in any way. diff --git a/c_sharp/src/org/ldk/structs/ReplyChannelRange.cs b/c_sharp/src/org/ldk/structs/ReplyChannelRange.cs index 6b2ec479..b1f8f09e 100644 --- a/c_sharp/src/org/ldk/structs/ReplyChannelRange.cs +++ b/c_sharp/src/org/ldk/structs/ReplyChannelRange.cs @@ -155,6 +155,18 @@ public class ReplyChannelRange : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ReplyChannelRange. + */ + public long hash() { + long ret = bindings.ReplyChannelRange_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ReplyChannelRanges contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ReplyShortChannelIdsEnd.cs b/c_sharp/src/org/ldk/structs/ReplyShortChannelIdsEnd.cs index 2f764313..88dd390b 100644 --- a/c_sharp/src/org/ldk/structs/ReplyShortChannelIdsEnd.cs +++ b/c_sharp/src/org/ldk/structs/ReplyShortChannelIdsEnd.cs @@ -91,6 +91,18 @@ public class ReplyShortChannelIdsEnd : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the ReplyShortChannelIdsEnd. + */ + public long hash() { + long ret = bindings.ReplyShortChannelIdsEnd_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two ReplyShortChannelIdsEnds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/Result_BlindedFailureDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_BlindedFailureDecodeErrorZ.cs new file mode 100644 index 00000000..63508778 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_BlindedFailureDecodeErrorZ.cs @@ -0,0 +1,89 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_BlindedFailureDecodeErrorZ : CommonBase { + Result_BlindedFailureDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_BlindedFailureDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_BlindedFailureDecodeErrorZ_free(ptr); } + } + + internal static Result_BlindedFailureDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_BlindedFailureDecodeErrorZ_is_ok(ptr)) { + return new Result_BlindedFailureDecodeErrorZ_OK(null, ptr); + } else { + return new Result_BlindedFailureDecodeErrorZ_Err(null, ptr); + } + } + public class Result_BlindedFailureDecodeErrorZ_OK : Result_BlindedFailureDecodeErrorZ { + public readonly BlindedFailure res; + internal Result_BlindedFailureDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + this.res = bindings.CResult_BlindedFailureDecodeErrorZ_get_ok(ptr); + } + } + + public class Result_BlindedFailureDecodeErrorZ_Err : Result_BlindedFailureDecodeErrorZ { + public readonly DecodeError err; + internal Result_BlindedFailureDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_BlindedFailureDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_BlindedFailureDecodeErrorZ in the success state. + */ + public static Result_BlindedFailureDecodeErrorZ ok(BlindedFailure o) { + long ret = bindings.CResult_BlindedFailureDecodeErrorZ_ok(o); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedFailureDecodeErrorZ ret_hu_conv = Result_BlindedFailureDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_BlindedFailureDecodeErrorZ in the error state. + */ + public static Result_BlindedFailureDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_BlindedFailureDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedFailureDecodeErrorZ ret_hu_conv = Result_BlindedFailureDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_BlindedFailureDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_BlindedFailureDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_BlindedFailureDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_BlindedFailureDecodeErrorZ clone() { + long ret = bindings.CResult_BlindedFailureDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedFailureDecodeErrorZ ret_hu_conv = Result_BlindedFailureDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_BlindedForwardDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_BlindedForwardDecodeErrorZ.cs new file mode 100644 index 00000000..b02ccefc --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_BlindedForwardDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_BlindedForwardDecodeErrorZ : CommonBase { + Result_BlindedForwardDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_BlindedForwardDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_BlindedForwardDecodeErrorZ_free(ptr); } + } + + internal static Result_BlindedForwardDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_BlindedForwardDecodeErrorZ_is_ok(ptr)) { + return new Result_BlindedForwardDecodeErrorZ_OK(null, ptr); + } else { + return new Result_BlindedForwardDecodeErrorZ_Err(null, ptr); + } + } + public class Result_BlindedForwardDecodeErrorZ_OK : Result_BlindedForwardDecodeErrorZ { + public readonly BlindedForward res; + internal Result_BlindedForwardDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_BlindedForwardDecodeErrorZ_get_ok(ptr); + org.ldk.structs.BlindedForward res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.BlindedForward(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_BlindedForwardDecodeErrorZ_Err : Result_BlindedForwardDecodeErrorZ { + public readonly DecodeError err; + internal Result_BlindedForwardDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_BlindedForwardDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_BlindedForwardDecodeErrorZ in the success state. + */ + public static Result_BlindedForwardDecodeErrorZ ok(org.ldk.structs.BlindedForward o) { + long ret = bindings.CResult_BlindedForwardDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedForwardDecodeErrorZ ret_hu_conv = Result_BlindedForwardDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_BlindedForwardDecodeErrorZ in the error state. + */ + public static Result_BlindedForwardDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_BlindedForwardDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedForwardDecodeErrorZ ret_hu_conv = Result_BlindedForwardDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_BlindedForwardDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_BlindedForwardDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_BlindedForwardDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_BlindedForwardDecodeErrorZ clone() { + long ret = bindings.CResult_BlindedForwardDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_BlindedForwardDecodeErrorZ ret_hu_conv = Result_BlindedForwardDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8Zu64ZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8Zu64ZNoneZ.cs new file mode 100644 index 00000000..10f80183 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8Zu64ZNoneZ.cs @@ -0,0 +1,85 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_C2Tuple_CVec_u8Zu64ZNoneZ : CommonBase { + Result_C2Tuple_CVec_u8Zu64ZNoneZ(object _dummy, long ptr) : base(ptr) { } + ~Result_C2Tuple_CVec_u8Zu64ZNoneZ() { + if (ptr != 0) { bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_free(ptr); } + } + + internal static Result_C2Tuple_CVec_u8Zu64ZNoneZ constr_from_ptr(long ptr) { + if (bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(ptr)) { + return new Result_C2Tuple_CVec_u8Zu64ZNoneZ_OK(null, ptr); + } else { + return new Result_C2Tuple_CVec_u8Zu64ZNoneZ_Err(null, ptr); + } + } + public class Result_C2Tuple_CVec_u8Zu64ZNoneZ_OK : Result_C2Tuple_CVec_u8Zu64ZNoneZ { + public readonly TwoTuple_CVec_u8Zu64Z res; + internal Result_C2Tuple_CVec_u8Zu64ZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_get_ok(ptr); + TwoTuple_CVec_u8Zu64Z res_hu_conv = new TwoTuple_CVec_u8Zu64Z(null, res); + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_C2Tuple_CVec_u8Zu64ZNoneZ_Err : Result_C2Tuple_CVec_u8Zu64ZNoneZ { + internal Result_C2Tuple_CVec_u8Zu64ZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + } + } + + /** + * Creates a new CResult_C2Tuple_CVec_u8Zu64ZNoneZ in the success state. + */ + public static Result_C2Tuple_CVec_u8Zu64ZNoneZ ok(org.ldk.structs.TwoTuple_CVec_u8Zu64Z o) { + long ret = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_ok(o != null ? o.ptr : 0); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C2Tuple_CVec_u8Zu64ZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8Zu64ZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_C2Tuple_CVec_u8Zu64ZNoneZ in the error state. + */ + public static Result_C2Tuple_CVec_u8Zu64ZNoneZ err() { + long ret = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_err(); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C2Tuple_CVec_u8Zu64ZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8Zu64ZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_C2Tuple_CVec_u8Zu64ZNoneZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_C2Tuple_CVec_u8Zu64ZNoneZ clone() { + long ret = bindings.CResult_C2Tuple_CVec_u8Zu64ZNoneZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C2Tuple_CVec_u8Zu64ZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8Zu64ZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8ZusizeZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8ZusizeZNoneZ.cs deleted file mode 100644 index e6cd3684..00000000 --- a/c_sharp/src/org/ldk/structs/Result_C2Tuple_CVec_u8ZusizeZNoneZ.cs +++ /dev/null @@ -1,85 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_C2Tuple_CVec_u8ZusizeZNoneZ : CommonBase { - Result_C2Tuple_CVec_u8ZusizeZNoneZ(object _dummy, long ptr) : base(ptr) { } - ~Result_C2Tuple_CVec_u8ZusizeZNoneZ() { - if (ptr != 0) { bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_free(ptr); } - } - - internal static Result_C2Tuple_CVec_u8ZusizeZNoneZ constr_from_ptr(long ptr) { - if (bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(ptr)) { - return new Result_C2Tuple_CVec_u8ZusizeZNoneZ_OK(null, ptr); - } else { - return new Result_C2Tuple_CVec_u8ZusizeZNoneZ_Err(null, ptr); - } - } - public class Result_C2Tuple_CVec_u8ZusizeZNoneZ_OK : Result_C2Tuple_CVec_u8ZusizeZNoneZ { - public readonly TwoTuple_CVec_u8ZusizeZ res; - internal Result_C2Tuple_CVec_u8ZusizeZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_get_ok(ptr); - TwoTuple_CVec_u8ZusizeZ res_hu_conv = new TwoTuple_CVec_u8ZusizeZ(null, res); - if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; - this.res = res_hu_conv; - } - } - - public class Result_C2Tuple_CVec_u8ZusizeZNoneZ_Err : Result_C2Tuple_CVec_u8ZusizeZNoneZ { - internal Result_C2Tuple_CVec_u8ZusizeZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - } - } - - /** - * Creates a new CResult_C2Tuple_CVec_u8ZusizeZNoneZ in the success state. - */ - public static Result_C2Tuple_CVec_u8ZusizeZNoneZ ok(org.ldk.structs.TwoTuple_CVec_u8ZusizeZ o) { - long ret = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_ok(o != null ? o.ptr : 0); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_CVec_u8ZusizeZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8ZusizeZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_C2Tuple_CVec_u8ZusizeZNoneZ in the error state. - */ - public static Result_C2Tuple_CVec_u8ZusizeZNoneZ err() { - long ret = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_err(); - if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_CVec_u8ZusizeZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8ZusizeZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_C2Tuple_CVec_u8ZusizeZNoneZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_C2Tuple_CVec_u8ZusizeZNoneZ clone() { - long ret = bindings.CResult_C2Tuple_CVec_u8ZusizeZNoneZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_CVec_u8ZusizeZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8ZusizeZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.cs deleted file mode 100644 index 69fc62fd..00000000 --- a/c_sharp/src/org/ldk/structs/Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.cs +++ /dev/null @@ -1,74 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ : CommonBase { - Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ() { - if (ptr != 0) { bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_free(ptr); } - } - - internal static Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(ptr)) { - return new Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_OK(null, ptr); - } else { - return new Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_Err(null, ptr); - } - } - public class Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_OK : Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ { - public readonly TwoTuple_PublicKeyOnionMessageZ res; - internal Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_ok(ptr); - TwoTuple_PublicKeyOnionMessageZ res_hu_conv = new TwoTuple_PublicKeyOnionMessageZ(null, res); - if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; - this.res = res_hu_conv; - } - } - - public class Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_Err : Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ { - public readonly SendError err; - internal Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_get_err(ptr); - org.ldk.structs.SendError err_hu_conv = org.ldk.structs.SendError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ in the success state. - */ - public static Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ ok(org.ldk.structs.TwoTuple_PublicKeyOnionMessageZ o) { - long ret = bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_ok(o != null ? o.ptr : 0); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ ret_hu_conv = Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ in the error state. - */ - public static Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ err(org.ldk.structs.SendError e) { - long ret = bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ ret_hu_conv = Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_C2Tuple_PublicKeyOnionMessageZSendErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.cs new file mode 100644 index 00000000..5cc240dc --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.cs @@ -0,0 +1,74 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ : CommonBase { + Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ() { + if (ptr != 0) { bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_free(ptr); } + } + + internal static Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(ptr)) { + return new Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_OK(null, ptr); + } else { + return new Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_Err(null, ptr); + } + } + public class Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_OK : Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ { + public readonly ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ res; + internal Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_ok(ptr); + ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ res_hu_conv = new ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ(null, res); + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_Err : Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ { + public readonly SendError err; + internal Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_get_err(ptr); + org.ldk.structs.SendError err_hu_conv = org.ldk.structs.SendError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ in the success state. + */ + public static Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ ok(org.ldk.structs.ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ o) { + long ret = bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_ok(o != null ? o.ptr : 0); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ ret_hu_conv = Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ in the error state. + */ + public static Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ err(org.ldk.structs.SendError e) { + long ret = bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ ret_hu_conv = Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.cs new file mode 100644 index 00000000..9fdb1a2f --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.cs @@ -0,0 +1,85 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ : CommonBase { + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ(object _dummy, long ptr) : base(ptr) { } + ~Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ() { + if (ptr != 0) { bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_free(ptr); } + } + + internal static Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ constr_from_ptr(long ptr) { + if (bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(ptr)) { + return new Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_OK(null, ptr); + } else { + return new Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_Err(null, ptr); + } + } + public class Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_OK : Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ { + public readonly ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ res; + internal Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_get_ok(ptr); + ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ res_hu_conv = new ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ(null, res); + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_Err : Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ { + internal Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + } + } + + /** + * Creates a new CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ in the success state. + */ + public static Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ok(org.ldk.structs.ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ o) { + long ret = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_ok(o != null ? o.ptr : 0); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ret_hu_conv = Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ in the error state. + */ + public static Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ err() { + long ret = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_err(); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ret_hu_conv = Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ clone() { + long ret = bindings.CResult_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ret_hu_conv = Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_CVec_BlindedPathZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_CVec_BlindedPathZNoneZ.cs new file mode 100644 index 00000000..9adab423 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_CVec_BlindedPathZNoneZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_CVec_BlindedPathZNoneZ : CommonBase { + Result_CVec_BlindedPathZNoneZ(object _dummy, long ptr) : base(ptr) { } + ~Result_CVec_BlindedPathZNoneZ() { + if (ptr != 0) { bindings.CResult_CVec_BlindedPathZNoneZ_free(ptr); } + } + + internal static Result_CVec_BlindedPathZNoneZ constr_from_ptr(long ptr) { + if (bindings.CResult_CVec_BlindedPathZNoneZ_is_ok(ptr)) { + return new Result_CVec_BlindedPathZNoneZ_OK(null, ptr); + } else { + return new Result_CVec_BlindedPathZNoneZ_Err(null, ptr); + } + } + public class Result_CVec_BlindedPathZNoneZ_OK : Result_CVec_BlindedPathZNoneZ { + public readonly BlindedPath[] res; + internal Result_CVec_BlindedPathZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_CVec_BlindedPathZNoneZ_get_ok(ptr); + int res_conv_13_len = InternalUtils.getArrayLength(res); + BlindedPath[] res_conv_13_arr = new BlindedPath[res_conv_13_len]; + for (int n = 0; n < res_conv_13_len; n++) { + long res_conv_13 = InternalUtils.getU64ArrayElem(res, n); + org.ldk.structs.BlindedPath res_conv_13_hu_conv = null; if (res_conv_13 < 0 || res_conv_13 > 4096) { res_conv_13_hu_conv = new org.ldk.structs.BlindedPath(null, res_conv_13); } + if (res_conv_13_hu_conv != null) { res_conv_13_hu_conv.ptrs_to.AddLast(this); }; + res_conv_13_arr[n] = res_conv_13_hu_conv; + } + bindings.free_buffer(res); + this.res = res_conv_13_arr; + } + } + + public class Result_CVec_BlindedPathZNoneZ_Err : Result_CVec_BlindedPathZNoneZ { + internal Result_CVec_BlindedPathZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + } + } + + /** + * Creates a new CResult_CVec_BlindedPathZNoneZ in the success state. + */ + public static Result_CVec_BlindedPathZNoneZ ok(BlindedPath[] o) { + long ret = bindings.CResult_CVec_BlindedPathZNoneZ_ok(InternalUtils.encodeUint64Array(InternalUtils.mapArray(o, o_conv_13 => o_conv_13 == null ? 0 : o_conv_13.ptr))); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_BlindedPathZNoneZ ret_hu_conv = Result_CVec_BlindedPathZNoneZ.constr_from_ptr(ret); + foreach (BlindedPath o_conv_13 in o) { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o_conv_13); }; }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_CVec_BlindedPathZNoneZ in the error state. + */ + public static Result_CVec_BlindedPathZNoneZ err() { + long ret = bindings.CResult_CVec_BlindedPathZNoneZ_err(); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_BlindedPathZNoneZ ret_hu_conv = Result_CVec_BlindedPathZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_CVec_BlindedPathZNoneZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_CVec_BlindedPathZNoneZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_CVec_BlindedPathZNoneZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_CVec_BlindedPathZNoneZ clone() { + long ret = bindings.CResult_CVec_BlindedPathZNoneZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_BlindedPathZNoneZ ret_hu_conv = Result_CVec_BlindedPathZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.cs new file mode 100644 index 00000000..9c4c16ef --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.cs @@ -0,0 +1,92 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ : CommonBase { + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ(object _dummy, long ptr) : base(ptr) { } + ~Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ() { + if (ptr != 0) { bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_free(ptr); } + } + + internal static Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ constr_from_ptr(long ptr) { + if (bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(ptr)) { + return new Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_OK(null, ptr); + } else { + return new Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_Err(null, ptr); + } + } + public class Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_OK : Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ { + public readonly TwoTuple_BlindedPayInfoBlindedPathZ[] res; + internal Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_get_ok(ptr); + int res_conv_37_len = InternalUtils.getArrayLength(res); + TwoTuple_BlindedPayInfoBlindedPathZ[] res_conv_37_arr = new TwoTuple_BlindedPayInfoBlindedPathZ[res_conv_37_len]; + for (int l = 0; l < res_conv_37_len; l++) { + long res_conv_37 = InternalUtils.getU64ArrayElem(res, l); + TwoTuple_BlindedPayInfoBlindedPathZ res_conv_37_hu_conv = new TwoTuple_BlindedPayInfoBlindedPathZ(null, res_conv_37); + if (res_conv_37_hu_conv != null) { res_conv_37_hu_conv.ptrs_to.AddLast(this); }; + res_conv_37_arr[l] = res_conv_37_hu_conv; + } + bindings.free_buffer(res); + this.res = res_conv_37_arr; + } + } + + public class Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_Err : Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ { + internal Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + } + } + + /** + * Creates a new CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ in the success state. + */ + public static Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ok(TwoTuple_BlindedPayInfoBlindedPathZ[] o) { + long ret = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_ok(InternalUtils.encodeUint64Array(InternalUtils.mapArray(o, o_conv_37 => o_conv_37 != null ? o_conv_37.ptr : 0))); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_hu_conv = Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ in the error state. + */ + public static Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ err() { + long ret = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_err(); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_hu_conv = Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ clone() { + long ret = bindings.CResult_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_hu_conv = Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.cs deleted file mode 100644 index 37fe4a2f..00000000 --- a/c_sharp/src/org/ldk/structs/Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.cs +++ /dev/null @@ -1,99 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ : CommonBase { - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ() { - if (ptr != 0) { bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_free(ptr); } - } - - internal static Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(ptr)) { - return new Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_OK(null, ptr); - } else { - return new Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_Err(null, ptr); - } - } - public class Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_OK : Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ { - public readonly TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ[] res; - internal Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_ok(ptr); - int res_conv_40_len = InternalUtils.getArrayLength(res); - TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ[] res_conv_40_arr = new TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ[res_conv_40_len]; - for (int o = 0; o < res_conv_40_len; o++) { - long res_conv_40 = InternalUtils.getU64ArrayElem(res, o); - TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ res_conv_40_hu_conv = new TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ(null, res_conv_40); - if (res_conv_40_hu_conv != null) { res_conv_40_hu_conv.ptrs_to.AddLast(this); }; - res_conv_40_arr[o] = res_conv_40_hu_conv; - } - bindings.free_buffer(res); - this.res = res_conv_40_arr; - } - } - - public class Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_Err : Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ { - public readonly ProbingError err; - internal Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_get_err(ptr); - org.ldk.structs.ProbingError err_hu_conv = org.ldk.structs.ProbingError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ in the success state. - */ - public static Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ok(TwoTuple_ThirtyTwoBytesThirtyTwoBytesZ[] o) { - long ret = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_ok(InternalUtils.encodeUint64Array(InternalUtils.mapArray(o, o_conv_40 => o_conv_40 != null ? o_conv_40.ptr : 0))); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ret_hu_conv = Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ in the error state. - */ - public static Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ err(org.ldk.structs.ProbingError e) { - long ret = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ret_hu_conv = Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ clone() { - long ret = bindings.CResult_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ret_hu_conv = Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.cs deleted file mode 100644 index 6daf0ab8..00000000 --- a/c_sharp/src/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.cs +++ /dev/null @@ -1,91 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_CVec_CVec_u8ZZNoneZ : CommonBase { - Result_CVec_CVec_u8ZZNoneZ(object _dummy, long ptr) : base(ptr) { } - ~Result_CVec_CVec_u8ZZNoneZ() { - if (ptr != 0) { bindings.CResult_CVec_CVec_u8ZZNoneZ_free(ptr); } - } - - internal static Result_CVec_CVec_u8ZZNoneZ constr_from_ptr(long ptr) { - if (bindings.CResult_CVec_CVec_u8ZZNoneZ_is_ok(ptr)) { - return new Result_CVec_CVec_u8ZZNoneZ_OK(null, ptr); - } else { - return new Result_CVec_CVec_u8ZZNoneZ_Err(null, ptr); - } - } - public class Result_CVec_CVec_u8ZZNoneZ_OK : Result_CVec_CVec_u8ZZNoneZ { - public readonly byte[][] res; - internal Result_CVec_CVec_u8ZZNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_CVec_CVec_u8ZZNoneZ_get_ok(ptr); - int res_conv_8_len = InternalUtils.getArrayLength(res); - byte[][] res_conv_8_arr = new byte[res_conv_8_len][]; - for (int i = 0; i < res_conv_8_len; i++) { - long res_conv_8 = InternalUtils.getU64ArrayElem(res, i); - byte[] res_conv_8_conv = InternalUtils.decodeUint8Array(res_conv_8); - res_conv_8_arr[i] = res_conv_8_conv; - } - bindings.free_buffer(res); - this.res = res_conv_8_arr; - } - } - - public class Result_CVec_CVec_u8ZZNoneZ_Err : Result_CVec_CVec_u8ZZNoneZ { - internal Result_CVec_CVec_u8ZZNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - } - } - - /** - * Creates a new CResult_CVec_CVec_u8ZZNoneZ in the success state. - */ - public static Result_CVec_CVec_u8ZZNoneZ ok(byte[][] o) { - long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_ok(InternalUtils.encodeUint64Array(InternalUtils.mapArray(o, o_conv_8 => InternalUtils.encodeUint8Array(o_conv_8)))); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_CVec_CVec_u8ZZNoneZ in the error state. - */ - public static Result_CVec_CVec_u8ZZNoneZ err() { - long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_err(); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_CVec_CVec_u8ZZNoneZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_CVec_CVec_u8ZZNoneZ clone() { - long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_DelayedPaymentBasepointDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_DelayedPaymentBasepointDecodeErrorZ.cs new file mode 100644 index 00000000..1ff0bea0 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_DelayedPaymentBasepointDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_DelayedPaymentBasepointDecodeErrorZ : CommonBase { + Result_DelayedPaymentBasepointDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_DelayedPaymentBasepointDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_free(ptr); } + } + + internal static Result_DelayedPaymentBasepointDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(ptr)) { + return new Result_DelayedPaymentBasepointDecodeErrorZ_OK(null, ptr); + } else { + return new Result_DelayedPaymentBasepointDecodeErrorZ_Err(null, ptr); + } + } + public class Result_DelayedPaymentBasepointDecodeErrorZ_OK : Result_DelayedPaymentBasepointDecodeErrorZ { + public readonly DelayedPaymentBasepoint res; + internal Result_DelayedPaymentBasepointDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_get_ok(ptr); + org.ldk.structs.DelayedPaymentBasepoint res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.DelayedPaymentBasepoint(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_DelayedPaymentBasepointDecodeErrorZ_Err : Result_DelayedPaymentBasepointDecodeErrorZ { + public readonly DecodeError err; + internal Result_DelayedPaymentBasepointDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_DelayedPaymentBasepointDecodeErrorZ in the success state. + */ + public static Result_DelayedPaymentBasepointDecodeErrorZ ok(org.ldk.structs.DelayedPaymentBasepoint o) { + long ret = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentBasepointDecodeErrorZ ret_hu_conv = Result_DelayedPaymentBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_DelayedPaymentBasepointDecodeErrorZ in the error state. + */ + public static Result_DelayedPaymentBasepointDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentBasepointDecodeErrorZ ret_hu_conv = Result_DelayedPaymentBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_DelayedPaymentBasepointDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_DelayedPaymentBasepointDecodeErrorZ clone() { + long ret = bindings.CResult_DelayedPaymentBasepointDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentBasepointDecodeErrorZ ret_hu_conv = Result_DelayedPaymentBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_DelayedPaymentKeyDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_DelayedPaymentKeyDecodeErrorZ.cs new file mode 100644 index 00000000..4fbf372b --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_DelayedPaymentKeyDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_DelayedPaymentKeyDecodeErrorZ : CommonBase { + Result_DelayedPaymentKeyDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_DelayedPaymentKeyDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_DelayedPaymentKeyDecodeErrorZ_free(ptr); } + } + + internal static Result_DelayedPaymentKeyDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(ptr)) { + return new Result_DelayedPaymentKeyDecodeErrorZ_OK(null, ptr); + } else { + return new Result_DelayedPaymentKeyDecodeErrorZ_Err(null, ptr); + } + } + public class Result_DelayedPaymentKeyDecodeErrorZ_OK : Result_DelayedPaymentKeyDecodeErrorZ { + public readonly DelayedPaymentKey res; + internal Result_DelayedPaymentKeyDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_get_ok(ptr); + org.ldk.structs.DelayedPaymentKey res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_DelayedPaymentKeyDecodeErrorZ_Err : Result_DelayedPaymentKeyDecodeErrorZ { + public readonly DecodeError err; + internal Result_DelayedPaymentKeyDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_DelayedPaymentKeyDecodeErrorZ in the success state. + */ + public static Result_DelayedPaymentKeyDecodeErrorZ ok(org.ldk.structs.DelayedPaymentKey o) { + long ret = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentKeyDecodeErrorZ ret_hu_conv = Result_DelayedPaymentKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_DelayedPaymentKeyDecodeErrorZ in the error state. + */ + public static Result_DelayedPaymentKeyDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentKeyDecodeErrorZ ret_hu_conv = Result_DelayedPaymentKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_DelayedPaymentKeyDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_DelayedPaymentKeyDecodeErrorZ clone() { + long ret = bindings.CResult_DelayedPaymentKeyDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_DelayedPaymentKeyDecodeErrorZ ret_hu_conv = Result_DelayedPaymentKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_FinalOnionHopDataDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_FinalOnionHopDataDecodeErrorZ.cs new file mode 100644 index 00000000..1a89d679 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_FinalOnionHopDataDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_FinalOnionHopDataDecodeErrorZ : CommonBase { + Result_FinalOnionHopDataDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_FinalOnionHopDataDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_FinalOnionHopDataDecodeErrorZ_free(ptr); } + } + + internal static Result_FinalOnionHopDataDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_FinalOnionHopDataDecodeErrorZ_is_ok(ptr)) { + return new Result_FinalOnionHopDataDecodeErrorZ_OK(null, ptr); + } else { + return new Result_FinalOnionHopDataDecodeErrorZ_Err(null, ptr); + } + } + public class Result_FinalOnionHopDataDecodeErrorZ_OK : Result_FinalOnionHopDataDecodeErrorZ { + public readonly FinalOnionHopData res; + internal Result_FinalOnionHopDataDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_FinalOnionHopDataDecodeErrorZ_get_ok(ptr); + org.ldk.structs.FinalOnionHopData res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.FinalOnionHopData(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_FinalOnionHopDataDecodeErrorZ_Err : Result_FinalOnionHopDataDecodeErrorZ { + public readonly DecodeError err; + internal Result_FinalOnionHopDataDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_FinalOnionHopDataDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_FinalOnionHopDataDecodeErrorZ in the success state. + */ + public static Result_FinalOnionHopDataDecodeErrorZ ok(org.ldk.structs.FinalOnionHopData o) { + long ret = bindings.CResult_FinalOnionHopDataDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_FinalOnionHopDataDecodeErrorZ ret_hu_conv = Result_FinalOnionHopDataDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_FinalOnionHopDataDecodeErrorZ in the error state. + */ + public static Result_FinalOnionHopDataDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_FinalOnionHopDataDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_FinalOnionHopDataDecodeErrorZ ret_hu_conv = Result_FinalOnionHopDataDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_FinalOnionHopDataDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_FinalOnionHopDataDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_FinalOnionHopDataDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_FinalOnionHopDataDecodeErrorZ clone() { + long ret = bindings.CResult_FinalOnionHopDataDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_FinalOnionHopDataDecodeErrorZ ret_hu_conv = Result_FinalOnionHopDataDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_HtlcBasepointDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_HtlcBasepointDecodeErrorZ.cs new file mode 100644 index 00000000..eb9a6fdd --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_HtlcBasepointDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_HtlcBasepointDecodeErrorZ : CommonBase { + Result_HtlcBasepointDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_HtlcBasepointDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_HtlcBasepointDecodeErrorZ_free(ptr); } + } + + internal static Result_HtlcBasepointDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_HtlcBasepointDecodeErrorZ_is_ok(ptr)) { + return new Result_HtlcBasepointDecodeErrorZ_OK(null, ptr); + } else { + return new Result_HtlcBasepointDecodeErrorZ_Err(null, ptr); + } + } + public class Result_HtlcBasepointDecodeErrorZ_OK : Result_HtlcBasepointDecodeErrorZ { + public readonly HtlcBasepoint res; + internal Result_HtlcBasepointDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_HtlcBasepointDecodeErrorZ_get_ok(ptr); + org.ldk.structs.HtlcBasepoint res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.HtlcBasepoint(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_HtlcBasepointDecodeErrorZ_Err : Result_HtlcBasepointDecodeErrorZ { + public readonly DecodeError err; + internal Result_HtlcBasepointDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_HtlcBasepointDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_HtlcBasepointDecodeErrorZ in the success state. + */ + public static Result_HtlcBasepointDecodeErrorZ ok(org.ldk.structs.HtlcBasepoint o) { + long ret = bindings.CResult_HtlcBasepointDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcBasepointDecodeErrorZ ret_hu_conv = Result_HtlcBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_HtlcBasepointDecodeErrorZ in the error state. + */ + public static Result_HtlcBasepointDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_HtlcBasepointDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcBasepointDecodeErrorZ ret_hu_conv = Result_HtlcBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_HtlcBasepointDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_HtlcBasepointDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_HtlcBasepointDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_HtlcBasepointDecodeErrorZ clone() { + long ret = bindings.CResult_HtlcBasepointDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcBasepointDecodeErrorZ ret_hu_conv = Result_HtlcBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_HtlcKeyDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_HtlcKeyDecodeErrorZ.cs new file mode 100644 index 00000000..6a44b286 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_HtlcKeyDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_HtlcKeyDecodeErrorZ : CommonBase { + Result_HtlcKeyDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_HtlcKeyDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_HtlcKeyDecodeErrorZ_free(ptr); } + } + + internal static Result_HtlcKeyDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_HtlcKeyDecodeErrorZ_is_ok(ptr)) { + return new Result_HtlcKeyDecodeErrorZ_OK(null, ptr); + } else { + return new Result_HtlcKeyDecodeErrorZ_Err(null, ptr); + } + } + public class Result_HtlcKeyDecodeErrorZ_OK : Result_HtlcKeyDecodeErrorZ { + public readonly HtlcKey res; + internal Result_HtlcKeyDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_HtlcKeyDecodeErrorZ_get_ok(ptr); + org.ldk.structs.HtlcKey res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.HtlcKey(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_HtlcKeyDecodeErrorZ_Err : Result_HtlcKeyDecodeErrorZ { + public readonly DecodeError err; + internal Result_HtlcKeyDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_HtlcKeyDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_HtlcKeyDecodeErrorZ in the success state. + */ + public static Result_HtlcKeyDecodeErrorZ ok(org.ldk.structs.HtlcKey o) { + long ret = bindings.CResult_HtlcKeyDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcKeyDecodeErrorZ ret_hu_conv = Result_HtlcKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_HtlcKeyDecodeErrorZ in the error state. + */ + public static Result_HtlcKeyDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_HtlcKeyDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcKeyDecodeErrorZ ret_hu_conv = Result_HtlcKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_HtlcKeyDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_HtlcKeyDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_HtlcKeyDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_HtlcKeyDecodeErrorZ clone() { + long ret = bindings.CResult_HtlcKeyDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_HtlcKeyDecodeErrorZ ret_hu_conv = Result_HtlcKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_NonePaymentErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_NonePaymentErrorZ.cs deleted file mode 100644 index 706cbf42..00000000 --- a/c_sharp/src/org/ldk/structs/Result_NonePaymentErrorZ.cs +++ /dev/null @@ -1,86 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_NonePaymentErrorZ : CommonBase { - Result_NonePaymentErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_NonePaymentErrorZ() { - if (ptr != 0) { bindings.CResult_NonePaymentErrorZ_free(ptr); } - } - - internal static Result_NonePaymentErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_NonePaymentErrorZ_is_ok(ptr)) { - return new Result_NonePaymentErrorZ_OK(null, ptr); - } else { - return new Result_NonePaymentErrorZ_Err(null, ptr); - } - } - public class Result_NonePaymentErrorZ_OK : Result_NonePaymentErrorZ { - internal Result_NonePaymentErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - } - } - - public class Result_NonePaymentErrorZ_Err : Result_NonePaymentErrorZ { - public readonly PaymentError err; - internal Result_NonePaymentErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_NonePaymentErrorZ_get_err(ptr); - org.ldk.structs.PaymentError err_hu_conv = org.ldk.structs.PaymentError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_NonePaymentErrorZ in the success state. - */ - public static Result_NonePaymentErrorZ ok() { - long ret = bindings.CResult_NonePaymentErrorZ_ok(); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NonePaymentErrorZ ret_hu_conv = Result_NonePaymentErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_NonePaymentErrorZ in the error state. - */ - public static Result_NonePaymentErrorZ err(org.ldk.structs.PaymentError e) { - long ret = bindings.CResult_NonePaymentErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NonePaymentErrorZ ret_hu_conv = Result_NonePaymentErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_NonePaymentErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_NonePaymentErrorZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_NonePaymentErrorZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_NonePaymentErrorZ clone() { - long ret = bindings.CResult_NonePaymentErrorZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NonePaymentErrorZ ret_hu_conv = Result_NonePaymentErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_NoneSendErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_NoneSendErrorZ.cs deleted file mode 100644 index c9ae6039..00000000 --- a/c_sharp/src/org/ldk/structs/Result_NoneSendErrorZ.cs +++ /dev/null @@ -1,68 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_NoneSendErrorZ : CommonBase { - Result_NoneSendErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_NoneSendErrorZ() { - if (ptr != 0) { bindings.CResult_NoneSendErrorZ_free(ptr); } - } - - internal static Result_NoneSendErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_NoneSendErrorZ_is_ok(ptr)) { - return new Result_NoneSendErrorZ_OK(null, ptr); - } else { - return new Result_NoneSendErrorZ_Err(null, ptr); - } - } - public class Result_NoneSendErrorZ_OK : Result_NoneSendErrorZ { - internal Result_NoneSendErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - } - } - - public class Result_NoneSendErrorZ_Err : Result_NoneSendErrorZ { - public readonly SendError err; - internal Result_NoneSendErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_NoneSendErrorZ_get_err(ptr); - org.ldk.structs.SendError err_hu_conv = org.ldk.structs.SendError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_NoneSendErrorZ in the success state. - */ - public static Result_NoneSendErrorZ ok() { - long ret = bindings.CResult_NoneSendErrorZ_ok(); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NoneSendErrorZ ret_hu_conv = Result_NoneSendErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_NoneSendErrorZ in the error state. - */ - public static Result_NoneSendErrorZ err(org.ldk.structs.SendError e) { - long ret = bindings.CResult_NoneSendErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NoneSendErrorZ ret_hu_conv = Result_NoneSendErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_NoneSendErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_OnionPacketDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_OnionPacketDecodeErrorZ.cs new file mode 100644 index 00000000..d699ca0a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_OnionPacketDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_OnionPacketDecodeErrorZ : CommonBase { + Result_OnionPacketDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_OnionPacketDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_OnionPacketDecodeErrorZ_free(ptr); } + } + + internal static Result_OnionPacketDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_OnionPacketDecodeErrorZ_is_ok(ptr)) { + return new Result_OnionPacketDecodeErrorZ_OK(null, ptr); + } else { + return new Result_OnionPacketDecodeErrorZ_Err(null, ptr); + } + } + public class Result_OnionPacketDecodeErrorZ_OK : Result_OnionPacketDecodeErrorZ { + public readonly OnionPacket res; + internal Result_OnionPacketDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_OnionPacketDecodeErrorZ_get_ok(ptr); + org.ldk.structs.OnionPacket res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.OnionPacket(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_OnionPacketDecodeErrorZ_Err : Result_OnionPacketDecodeErrorZ { + public readonly DecodeError err; + internal Result_OnionPacketDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_OnionPacketDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_OnionPacketDecodeErrorZ in the success state. + */ + public static Result_OnionPacketDecodeErrorZ ok(org.ldk.structs.OnionPacket o) { + long ret = bindings.CResult_OnionPacketDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_OnionPacketDecodeErrorZ ret_hu_conv = Result_OnionPacketDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_OnionPacketDecodeErrorZ in the error state. + */ + public static Result_OnionPacketDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_OnionPacketDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_OnionPacketDecodeErrorZ ret_hu_conv = Result_OnionPacketDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_OnionPacketDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_OnionPacketDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_OnionPacketDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_OnionPacketDecodeErrorZ clone() { + long ret = bindings.CResult_OnionPacketDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_OnionPacketDecodeErrorZ ret_hu_conv = Result_OnionPacketDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoDecodeErrorZ.cs new file mode 100644 index 00000000..4601eb89 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_PendingHTLCInfoDecodeErrorZ : CommonBase { + Result_PendingHTLCInfoDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_PendingHTLCInfoDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_PendingHTLCInfoDecodeErrorZ_free(ptr); } + } + + internal static Result_PendingHTLCInfoDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_PendingHTLCInfoDecodeErrorZ_is_ok(ptr)) { + return new Result_PendingHTLCInfoDecodeErrorZ_OK(null, ptr); + } else { + return new Result_PendingHTLCInfoDecodeErrorZ_Err(null, ptr); + } + } + public class Result_PendingHTLCInfoDecodeErrorZ_OK : Result_PendingHTLCInfoDecodeErrorZ { + public readonly PendingHTLCInfo res; + internal Result_PendingHTLCInfoDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_PendingHTLCInfoDecodeErrorZ_get_ok(ptr); + org.ldk.structs.PendingHTLCInfo res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.PendingHTLCInfo(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_PendingHTLCInfoDecodeErrorZ_Err : Result_PendingHTLCInfoDecodeErrorZ { + public readonly DecodeError err; + internal Result_PendingHTLCInfoDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_PendingHTLCInfoDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_PendingHTLCInfoDecodeErrorZ in the success state. + */ + public static Result_PendingHTLCInfoDecodeErrorZ ok(org.ldk.structs.PendingHTLCInfo o) { + long ret = bindings.CResult_PendingHTLCInfoDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoDecodeErrorZ ret_hu_conv = Result_PendingHTLCInfoDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_PendingHTLCInfoDecodeErrorZ in the error state. + */ + public static Result_PendingHTLCInfoDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_PendingHTLCInfoDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoDecodeErrorZ ret_hu_conv = Result_PendingHTLCInfoDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_PendingHTLCInfoDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_PendingHTLCInfoDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_PendingHTLCInfoDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_PendingHTLCInfoDecodeErrorZ clone() { + long ret = bindings.CResult_PendingHTLCInfoDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoDecodeErrorZ ret_hu_conv = Result_PendingHTLCInfoDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoInboundHTLCErrZ.cs b/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoInboundHTLCErrZ.cs new file mode 100644 index 00000000..5b179ad2 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_PendingHTLCInfoInboundHTLCErrZ.cs @@ -0,0 +1,78 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_PendingHTLCInfoInboundHTLCErrZ : CommonBase { + Result_PendingHTLCInfoInboundHTLCErrZ(object _dummy, long ptr) : base(ptr) { } + ~Result_PendingHTLCInfoInboundHTLCErrZ() { + if (ptr != 0) { bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_free(ptr); } + } + + internal static Result_PendingHTLCInfoInboundHTLCErrZ constr_from_ptr(long ptr) { + if (bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(ptr)) { + return new Result_PendingHTLCInfoInboundHTLCErrZ_OK(null, ptr); + } else { + return new Result_PendingHTLCInfoInboundHTLCErrZ_Err(null, ptr); + } + } + public class Result_PendingHTLCInfoInboundHTLCErrZ_OK : Result_PendingHTLCInfoInboundHTLCErrZ { + public readonly PendingHTLCInfo res; + internal Result_PendingHTLCInfoInboundHTLCErrZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_get_ok(ptr); + org.ldk.structs.PendingHTLCInfo res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.PendingHTLCInfo(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_PendingHTLCInfoInboundHTLCErrZ_Err : Result_PendingHTLCInfoInboundHTLCErrZ { + public readonly InboundHTLCErr err; + internal Result_PendingHTLCInfoInboundHTLCErrZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_get_err(ptr); + org.ldk.structs.InboundHTLCErr err_hu_conv = null; if (err < 0 || err > 4096) { err_hu_conv = new org.ldk.structs.InboundHTLCErr(null, err); } + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_PendingHTLCInfoInboundHTLCErrZ in the success state. + */ + public static Result_PendingHTLCInfoInboundHTLCErrZ ok(org.ldk.structs.PendingHTLCInfo o) { + long ret = bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoInboundHTLCErrZ ret_hu_conv = Result_PendingHTLCInfoInboundHTLCErrZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_PendingHTLCInfoInboundHTLCErrZ in the error state. + */ + public static Result_PendingHTLCInfoInboundHTLCErrZ err(short e_err_code_arg, byte[] e_err_data_arg, string e_msg_arg) { + long ret = bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_err(bindings.InboundHTLCErr_new(e_err_code_arg, InternalUtils.encodeUint8Array(e_err_data_arg), InternalUtils.encodeString(e_msg_arg))); + GC.KeepAlive(e_err_code_arg); + GC.KeepAlive(e_err_data_arg); + GC.KeepAlive(e_msg_arg); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoInboundHTLCErrZ ret_hu_conv = Result_PendingHTLCInfoInboundHTLCErrZ.constr_from_ptr(ret); + ; + ; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_PendingHTLCInfoInboundHTLCErrZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_PendingHTLCRoutingDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_PendingHTLCRoutingDecodeErrorZ.cs new file mode 100644 index 00000000..e4527a21 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_PendingHTLCRoutingDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_PendingHTLCRoutingDecodeErrorZ : CommonBase { + Result_PendingHTLCRoutingDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_PendingHTLCRoutingDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_PendingHTLCRoutingDecodeErrorZ_free(ptr); } + } + + internal static Result_PendingHTLCRoutingDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(ptr)) { + return new Result_PendingHTLCRoutingDecodeErrorZ_OK(null, ptr); + } else { + return new Result_PendingHTLCRoutingDecodeErrorZ_Err(null, ptr); + } + } + public class Result_PendingHTLCRoutingDecodeErrorZ_OK : Result_PendingHTLCRoutingDecodeErrorZ { + public readonly PendingHTLCRouting res; + internal Result_PendingHTLCRoutingDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_get_ok(ptr); + org.ldk.structs.PendingHTLCRouting res_hu_conv = org.ldk.structs.PendingHTLCRouting.constr_from_ptr(res); + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_PendingHTLCRoutingDecodeErrorZ_Err : Result_PendingHTLCRoutingDecodeErrorZ { + public readonly DecodeError err; + internal Result_PendingHTLCRoutingDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_PendingHTLCRoutingDecodeErrorZ in the success state. + */ + public static Result_PendingHTLCRoutingDecodeErrorZ ok(org.ldk.structs.PendingHTLCRouting o) { + long ret = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_ok(o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCRoutingDecodeErrorZ ret_hu_conv = Result_PendingHTLCRoutingDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_PendingHTLCRoutingDecodeErrorZ in the error state. + */ + public static Result_PendingHTLCRoutingDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCRoutingDecodeErrorZ ret_hu_conv = Result_PendingHTLCRoutingDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_PendingHTLCRoutingDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_PendingHTLCRoutingDecodeErrorZ clone() { + long ret = bindings.CResult_PendingHTLCRoutingDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCRoutingDecodeErrorZ ret_hu_conv = Result_PendingHTLCRoutingDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_ReceiveTlvsDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_ReceiveTlvsDecodeErrorZ.cs deleted file mode 100644 index 47e6f892..00000000 --- a/c_sharp/src/org/ldk/structs/Result_ReceiveTlvsDecodeErrorZ.cs +++ /dev/null @@ -1,93 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_ReceiveTlvsDecodeErrorZ : CommonBase { - Result_ReceiveTlvsDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_ReceiveTlvsDecodeErrorZ() { - if (ptr != 0) { bindings.CResult_ReceiveTlvsDecodeErrorZ_free(ptr); } - } - - internal static Result_ReceiveTlvsDecodeErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_ReceiveTlvsDecodeErrorZ_is_ok(ptr)) { - return new Result_ReceiveTlvsDecodeErrorZ_OK(null, ptr); - } else { - return new Result_ReceiveTlvsDecodeErrorZ_Err(null, ptr); - } - } - public class Result_ReceiveTlvsDecodeErrorZ_OK : Result_ReceiveTlvsDecodeErrorZ { - public readonly ReceiveTlvs res; - internal Result_ReceiveTlvsDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_ReceiveTlvsDecodeErrorZ_get_ok(ptr); - org.ldk.structs.ReceiveTlvs res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.ReceiveTlvs(null, res); } - if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; - this.res = res_hu_conv; - } - } - - public class Result_ReceiveTlvsDecodeErrorZ_Err : Result_ReceiveTlvsDecodeErrorZ { - public readonly DecodeError err; - internal Result_ReceiveTlvsDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_ReceiveTlvsDecodeErrorZ_get_err(ptr); - org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_ReceiveTlvsDecodeErrorZ in the success state. - */ - public static Result_ReceiveTlvsDecodeErrorZ ok(org.ldk.structs.ReceiveTlvs o) { - long ret = bindings.CResult_ReceiveTlvsDecodeErrorZ_ok(o == null ? 0 : o.ptr); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ReceiveTlvsDecodeErrorZ ret_hu_conv = Result_ReceiveTlvsDecodeErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; - return ret_hu_conv; - } - - /** - * Creates a new CResult_ReceiveTlvsDecodeErrorZ in the error state. - */ - public static Result_ReceiveTlvsDecodeErrorZ err(org.ldk.structs.DecodeError e) { - long ret = bindings.CResult_ReceiveTlvsDecodeErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ReceiveTlvsDecodeErrorZ ret_hu_conv = Result_ReceiveTlvsDecodeErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_ReceiveTlvsDecodeErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_ReceiveTlvsDecodeErrorZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_ReceiveTlvsDecodeErrorZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_ReceiveTlvsDecodeErrorZ clone() { - long ret = bindings.CResult_ReceiveTlvsDecodeErrorZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ReceiveTlvsDecodeErrorZ ret_hu_conv = Result_ReceiveTlvsDecodeErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_RevocationBasepointDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_RevocationBasepointDecodeErrorZ.cs new file mode 100644 index 00000000..700113a7 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_RevocationBasepointDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_RevocationBasepointDecodeErrorZ : CommonBase { + Result_RevocationBasepointDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_RevocationBasepointDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_RevocationBasepointDecodeErrorZ_free(ptr); } + } + + internal static Result_RevocationBasepointDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_RevocationBasepointDecodeErrorZ_is_ok(ptr)) { + return new Result_RevocationBasepointDecodeErrorZ_OK(null, ptr); + } else { + return new Result_RevocationBasepointDecodeErrorZ_Err(null, ptr); + } + } + public class Result_RevocationBasepointDecodeErrorZ_OK : Result_RevocationBasepointDecodeErrorZ { + public readonly RevocationBasepoint res; + internal Result_RevocationBasepointDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_RevocationBasepointDecodeErrorZ_get_ok(ptr); + org.ldk.structs.RevocationBasepoint res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.RevocationBasepoint(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_RevocationBasepointDecodeErrorZ_Err : Result_RevocationBasepointDecodeErrorZ { + public readonly DecodeError err; + internal Result_RevocationBasepointDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_RevocationBasepointDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_RevocationBasepointDecodeErrorZ in the success state. + */ + public static Result_RevocationBasepointDecodeErrorZ ok(org.ldk.structs.RevocationBasepoint o) { + long ret = bindings.CResult_RevocationBasepointDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationBasepointDecodeErrorZ ret_hu_conv = Result_RevocationBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_RevocationBasepointDecodeErrorZ in the error state. + */ + public static Result_RevocationBasepointDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_RevocationBasepointDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationBasepointDecodeErrorZ ret_hu_conv = Result_RevocationBasepointDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_RevocationBasepointDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_RevocationBasepointDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_RevocationBasepointDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_RevocationBasepointDecodeErrorZ clone() { + long ret = bindings.CResult_RevocationBasepointDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationBasepointDecodeErrorZ ret_hu_conv = Result_RevocationBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_RevocationKeyDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_RevocationKeyDecodeErrorZ.cs new file mode 100644 index 00000000..8278d2f0 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_RevocationKeyDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_RevocationKeyDecodeErrorZ : CommonBase { + Result_RevocationKeyDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_RevocationKeyDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_RevocationKeyDecodeErrorZ_free(ptr); } + } + + internal static Result_RevocationKeyDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_RevocationKeyDecodeErrorZ_is_ok(ptr)) { + return new Result_RevocationKeyDecodeErrorZ_OK(null, ptr); + } else { + return new Result_RevocationKeyDecodeErrorZ_Err(null, ptr); + } + } + public class Result_RevocationKeyDecodeErrorZ_OK : Result_RevocationKeyDecodeErrorZ { + public readonly RevocationKey res; + internal Result_RevocationKeyDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_RevocationKeyDecodeErrorZ_get_ok(ptr); + org.ldk.structs.RevocationKey res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.RevocationKey(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_RevocationKeyDecodeErrorZ_Err : Result_RevocationKeyDecodeErrorZ { + public readonly DecodeError err; + internal Result_RevocationKeyDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_RevocationKeyDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_RevocationKeyDecodeErrorZ in the success state. + */ + public static Result_RevocationKeyDecodeErrorZ ok(org.ldk.structs.RevocationKey o) { + long ret = bindings.CResult_RevocationKeyDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationKeyDecodeErrorZ ret_hu_conv = Result_RevocationKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_RevocationKeyDecodeErrorZ in the error state. + */ + public static Result_RevocationKeyDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_RevocationKeyDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationKeyDecodeErrorZ ret_hu_conv = Result_RevocationKeyDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_RevocationKeyDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_RevocationKeyDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_RevocationKeyDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_RevocationKeyDecodeErrorZ clone() { + long ret = bindings.CResult_RevocationKeyDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationKeyDecodeErrorZ ret_hu_conv = Result_RevocationKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_SendSuccessSendErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_SendSuccessSendErrorZ.cs new file mode 100644 index 00000000..c608d13e --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_SendSuccessSendErrorZ.cs @@ -0,0 +1,75 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_SendSuccessSendErrorZ : CommonBase { + Result_SendSuccessSendErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_SendSuccessSendErrorZ() { + if (ptr != 0) { bindings.CResult_SendSuccessSendErrorZ_free(ptr); } + } + + internal static Result_SendSuccessSendErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_SendSuccessSendErrorZ_is_ok(ptr)) { + return new Result_SendSuccessSendErrorZ_OK(null, ptr); + } else { + return new Result_SendSuccessSendErrorZ_Err(null, ptr); + } + } + public class Result_SendSuccessSendErrorZ_OK : Result_SendSuccessSendErrorZ { + public readonly SendSuccess res; + internal Result_SendSuccessSendErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_SendSuccessSendErrorZ_get_ok(ptr); + org.ldk.structs.SendSuccess res_hu_conv = org.ldk.structs.SendSuccess.constr_from_ptr(res); + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_SendSuccessSendErrorZ_Err : Result_SendSuccessSendErrorZ { + public readonly SendError err; + internal Result_SendSuccessSendErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_SendSuccessSendErrorZ_get_err(ptr); + org.ldk.structs.SendError err_hu_conv = org.ldk.structs.SendError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_SendSuccessSendErrorZ in the success state. + */ + public static Result_SendSuccessSendErrorZ ok(org.ldk.structs.SendSuccess o) { + long ret = bindings.CResult_SendSuccessSendErrorZ_ok(o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SendSuccessSendErrorZ ret_hu_conv = Result_SendSuccessSendErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_SendSuccessSendErrorZ in the error state. + */ + public static Result_SendSuccessSendErrorZ err(org.ldk.structs.SendError e) { + long ret = bindings.CResult_SendSuccessSendErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SendSuccessSendErrorZ ret_hu_conv = Result_SendSuccessSendErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_SendSuccessSendErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_SpliceAckDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_SpliceAckDecodeErrorZ.cs new file mode 100644 index 00000000..2034f6b8 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_SpliceAckDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_SpliceAckDecodeErrorZ : CommonBase { + Result_SpliceAckDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_SpliceAckDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_SpliceAckDecodeErrorZ_free(ptr); } + } + + internal static Result_SpliceAckDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_SpliceAckDecodeErrorZ_is_ok(ptr)) { + return new Result_SpliceAckDecodeErrorZ_OK(null, ptr); + } else { + return new Result_SpliceAckDecodeErrorZ_Err(null, ptr); + } + } + public class Result_SpliceAckDecodeErrorZ_OK : Result_SpliceAckDecodeErrorZ { + public readonly SpliceAck res; + internal Result_SpliceAckDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_SpliceAckDecodeErrorZ_get_ok(ptr); + org.ldk.structs.SpliceAck res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.SpliceAck(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_SpliceAckDecodeErrorZ_Err : Result_SpliceAckDecodeErrorZ { + public readonly DecodeError err; + internal Result_SpliceAckDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_SpliceAckDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_SpliceAckDecodeErrorZ in the success state. + */ + public static Result_SpliceAckDecodeErrorZ ok(org.ldk.structs.SpliceAck o) { + long ret = bindings.CResult_SpliceAckDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceAckDecodeErrorZ ret_hu_conv = Result_SpliceAckDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_SpliceAckDecodeErrorZ in the error state. + */ + public static Result_SpliceAckDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_SpliceAckDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceAckDecodeErrorZ ret_hu_conv = Result_SpliceAckDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_SpliceAckDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_SpliceAckDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_SpliceAckDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_SpliceAckDecodeErrorZ clone() { + long ret = bindings.CResult_SpliceAckDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceAckDecodeErrorZ ret_hu_conv = Result_SpliceAckDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_SpliceDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_SpliceDecodeErrorZ.cs new file mode 100644 index 00000000..8d9f07b9 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_SpliceDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_SpliceDecodeErrorZ : CommonBase { + Result_SpliceDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_SpliceDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_SpliceDecodeErrorZ_free(ptr); } + } + + internal static Result_SpliceDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_SpliceDecodeErrorZ_is_ok(ptr)) { + return new Result_SpliceDecodeErrorZ_OK(null, ptr); + } else { + return new Result_SpliceDecodeErrorZ_Err(null, ptr); + } + } + public class Result_SpliceDecodeErrorZ_OK : Result_SpliceDecodeErrorZ { + public readonly Splice res; + internal Result_SpliceDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_SpliceDecodeErrorZ_get_ok(ptr); + org.ldk.structs.Splice res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.Splice(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_SpliceDecodeErrorZ_Err : Result_SpliceDecodeErrorZ { + public readonly DecodeError err; + internal Result_SpliceDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_SpliceDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_SpliceDecodeErrorZ in the success state. + */ + public static Result_SpliceDecodeErrorZ ok(org.ldk.structs.Splice o) { + long ret = bindings.CResult_SpliceDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceDecodeErrorZ ret_hu_conv = Result_SpliceDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_SpliceDecodeErrorZ in the error state. + */ + public static Result_SpliceDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_SpliceDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceDecodeErrorZ ret_hu_conv = Result_SpliceDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_SpliceDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_SpliceDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_SpliceDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_SpliceDecodeErrorZ clone() { + long ret = bindings.CResult_SpliceDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceDecodeErrorZ ret_hu_conv = Result_SpliceDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_SpliceLockedDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_SpliceLockedDecodeErrorZ.cs new file mode 100644 index 00000000..e8aafaaf --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_SpliceLockedDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_SpliceLockedDecodeErrorZ : CommonBase { + Result_SpliceLockedDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_SpliceLockedDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_SpliceLockedDecodeErrorZ_free(ptr); } + } + + internal static Result_SpliceLockedDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_SpliceLockedDecodeErrorZ_is_ok(ptr)) { + return new Result_SpliceLockedDecodeErrorZ_OK(null, ptr); + } else { + return new Result_SpliceLockedDecodeErrorZ_Err(null, ptr); + } + } + public class Result_SpliceLockedDecodeErrorZ_OK : Result_SpliceLockedDecodeErrorZ { + public readonly SpliceLocked res; + internal Result_SpliceLockedDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_SpliceLockedDecodeErrorZ_get_ok(ptr); + org.ldk.structs.SpliceLocked res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.SpliceLocked(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_SpliceLockedDecodeErrorZ_Err : Result_SpliceLockedDecodeErrorZ { + public readonly DecodeError err; + internal Result_SpliceLockedDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_SpliceLockedDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_SpliceLockedDecodeErrorZ in the success state. + */ + public static Result_SpliceLockedDecodeErrorZ ok(org.ldk.structs.SpliceLocked o) { + long ret = bindings.CResult_SpliceLockedDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceLockedDecodeErrorZ ret_hu_conv = Result_SpliceLockedDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_SpliceLockedDecodeErrorZ in the error state. + */ + public static Result_SpliceLockedDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_SpliceLockedDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceLockedDecodeErrorZ ret_hu_conv = Result_SpliceLockedDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_SpliceLockedDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_SpliceLockedDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_SpliceLockedDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_SpliceLockedDecodeErrorZ clone() { + long ret = bindings.CResult_SpliceLockedDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceLockedDecodeErrorZ ret_hu_conv = Result_SpliceLockedDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_StfuDecodeErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_StfuDecodeErrorZ.cs new file mode 100644 index 00000000..4168537a --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_StfuDecodeErrorZ.cs @@ -0,0 +1,93 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_StfuDecodeErrorZ : CommonBase { + Result_StfuDecodeErrorZ(object _dummy, long ptr) : base(ptr) { } + ~Result_StfuDecodeErrorZ() { + if (ptr != 0) { bindings.CResult_StfuDecodeErrorZ_free(ptr); } + } + + internal static Result_StfuDecodeErrorZ constr_from_ptr(long ptr) { + if (bindings.CResult_StfuDecodeErrorZ_is_ok(ptr)) { + return new Result_StfuDecodeErrorZ_OK(null, ptr); + } else { + return new Result_StfuDecodeErrorZ_Err(null, ptr); + } + } + public class Result_StfuDecodeErrorZ_OK : Result_StfuDecodeErrorZ { + public readonly Stfu res; + internal Result_StfuDecodeErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_StfuDecodeErrorZ_get_ok(ptr); + org.ldk.structs.Stfu res_hu_conv = null; if (res < 0 || res > 4096) { res_hu_conv = new org.ldk.structs.Stfu(null, res); } + if (res_hu_conv != null) { res_hu_conv.ptrs_to.AddLast(this); }; + this.res = res_hu_conv; + } + } + + public class Result_StfuDecodeErrorZ_Err : Result_StfuDecodeErrorZ { + public readonly DecodeError err; + internal Result_StfuDecodeErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + long err = bindings.CResult_StfuDecodeErrorZ_get_err(ptr); + org.ldk.structs.DecodeError err_hu_conv = org.ldk.structs.DecodeError.constr_from_ptr(err); + if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_StfuDecodeErrorZ in the success state. + */ + public static Result_StfuDecodeErrorZ ok(org.ldk.structs.Stfu o) { + long ret = bindings.CResult_StfuDecodeErrorZ_ok(o == null ? 0 : o.ptr); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_StfuDecodeErrorZ ret_hu_conv = Result_StfuDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(o); }; + return ret_hu_conv; + } + + /** + * Creates a new CResult_StfuDecodeErrorZ in the error state. + */ + public static Result_StfuDecodeErrorZ err(org.ldk.structs.DecodeError e) { + long ret = bindings.CResult_StfuDecodeErrorZ_err(e.ptr); + GC.KeepAlive(e); + if (ret >= 0 && ret <= 4096) { return null; } + Result_StfuDecodeErrorZ ret_hu_conv = Result_StfuDecodeErrorZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_StfuDecodeErrorZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_StfuDecodeErrorZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_StfuDecodeErrorZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_StfuDecodeErrorZ clone() { + long ret = bindings.CResult_StfuDecodeErrorZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_StfuDecodeErrorZ ret_hu_conv = Result_StfuDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Result_ThirtyTwoBytesPaymentErrorZ.cs b/c_sharp/src/org/ldk/structs/Result_ThirtyTwoBytesPaymentErrorZ.cs deleted file mode 100644 index 2b15ab19..00000000 --- a/c_sharp/src/org/ldk/structs/Result_ThirtyTwoBytesPaymentErrorZ.cs +++ /dev/null @@ -1,91 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - -public class Result_ThirtyTwoBytesPaymentErrorZ : CommonBase { - Result_ThirtyTwoBytesPaymentErrorZ(object _dummy, long ptr) : base(ptr) { } - ~Result_ThirtyTwoBytesPaymentErrorZ() { - if (ptr != 0) { bindings.CResult_ThirtyTwoBytesPaymentErrorZ_free(ptr); } - } - - internal static Result_ThirtyTwoBytesPaymentErrorZ constr_from_ptr(long ptr) { - if (bindings.CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(ptr)) { - return new Result_ThirtyTwoBytesPaymentErrorZ_OK(null, ptr); - } else { - return new Result_ThirtyTwoBytesPaymentErrorZ_Err(null, ptr); - } - } - public class Result_ThirtyTwoBytesPaymentErrorZ_OK : Result_ThirtyTwoBytesPaymentErrorZ { - public readonly byte[] res; - internal Result_ThirtyTwoBytesPaymentErrorZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { - long res = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_get_ok(ptr); - byte[] res_conv = InternalUtils.decodeUint8Array(res); - this.res = res_conv; - } - } - - public class Result_ThirtyTwoBytesPaymentErrorZ_Err : Result_ThirtyTwoBytesPaymentErrorZ { - public readonly PaymentError err; - internal Result_ThirtyTwoBytesPaymentErrorZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { - long err = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_get_err(ptr); - org.ldk.structs.PaymentError err_hu_conv = org.ldk.structs.PaymentError.constr_from_ptr(err); - if (err_hu_conv != null) { err_hu_conv.ptrs_to.AddLast(this); }; - this.err = err_hu_conv; - } - } - - /** - * Creates a new CResult_ThirtyTwoBytesPaymentErrorZ in the success state. - */ - public static Result_ThirtyTwoBytesPaymentErrorZ ok(byte[] o) { - long ret = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_ok(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(o, 32))); - GC.KeepAlive(o); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ThirtyTwoBytesPaymentErrorZ ret_hu_conv = Result_ThirtyTwoBytesPaymentErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - - /** - * Creates a new CResult_ThirtyTwoBytesPaymentErrorZ in the error state. - */ - public static Result_ThirtyTwoBytesPaymentErrorZ err(org.ldk.structs.PaymentError e) { - long ret = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_err(e.ptr); - GC.KeepAlive(e); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ThirtyTwoBytesPaymentErrorZ ret_hu_conv = Result_ThirtyTwoBytesPaymentErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(e); }; - return ret_hu_conv; - } - - /** - * Checks if the given object is currently in the success state - */ - public bool is_ok() { - bool ret = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_is_ok(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new CResult_ThirtyTwoBytesPaymentErrorZ which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public Result_ThirtyTwoBytesPaymentErrorZ clone() { - long ret = bindings.CResult_ThirtyTwoBytesPaymentErrorZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ThirtyTwoBytesPaymentErrorZ ret_hu_conv = Result_ThirtyTwoBytesPaymentErrorZ.constr_from_ptr(ret); - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/Result_WitnessNoneZ.cs b/c_sharp/src/org/ldk/structs/Result_WitnessNoneZ.cs new file mode 100644 index 00000000..fcb0bc36 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Result_WitnessNoneZ.cs @@ -0,0 +1,84 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class Result_WitnessNoneZ : CommonBase { + Result_WitnessNoneZ(object _dummy, long ptr) : base(ptr) { } + ~Result_WitnessNoneZ() { + if (ptr != 0) { bindings.CResult_WitnessNoneZ_free(ptr); } + } + + internal static Result_WitnessNoneZ constr_from_ptr(long ptr) { + if (bindings.CResult_WitnessNoneZ_is_ok(ptr)) { + return new Result_WitnessNoneZ_OK(null, ptr); + } else { + return new Result_WitnessNoneZ_Err(null, ptr); + } + } + public class Result_WitnessNoneZ_OK : Result_WitnessNoneZ { + public readonly byte[] res; + internal Result_WitnessNoneZ_OK(object _dummy, long ptr) : base(_dummy, ptr) { + long res = bindings.CResult_WitnessNoneZ_get_ok(ptr); + byte[] res_conv = InternalUtils.decodeUint8Array(res); + this.res = res_conv; + } + } + + public class Result_WitnessNoneZ_Err : Result_WitnessNoneZ { + internal Result_WitnessNoneZ_Err(object _dummy, long ptr) : base(_dummy, ptr) { + } + } + + /** + * Creates a new CResult_WitnessNoneZ in the success state. + */ + public static Result_WitnessNoneZ ok(byte[] o) { + long ret = bindings.CResult_WitnessNoneZ_ok(InternalUtils.encodeUint8Array(o)); + GC.KeepAlive(o); + if (ret >= 0 && ret <= 4096) { return null; } + Result_WitnessNoneZ ret_hu_conv = Result_WitnessNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_WitnessNoneZ in the error state. + */ + public static Result_WitnessNoneZ err() { + long ret = bindings.CResult_WitnessNoneZ_err(); + if (ret >= 0 && ret <= 4096) { return null; } + Result_WitnessNoneZ ret_hu_conv = Result_WitnessNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Checks if the given object is currently in the success state + */ + public bool is_ok() { + bool ret = bindings.CResult_WitnessNoneZ_is_ok(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.CResult_WitnessNoneZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new CResult_WitnessNoneZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_WitnessNoneZ clone() { + long ret = bindings.CResult_WitnessNoneZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + Result_WitnessNoneZ ret_hu_conv = Result_WitnessNoneZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/RevocationBasepoint.cs b/c_sharp/src/org/ldk/structs/RevocationBasepoint.cs new file mode 100644 index 00000000..d2254409 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/RevocationBasepoint.cs @@ -0,0 +1,126 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * Master key used in conjunction with per_commitment_point to generate [htlcpubkey](https://github.com/lightning/bolts/blob/master/03-transactions.md#key-derivation) for the latest state of a channel. + * A watcher can be given a [RevocationBasepoint] to generate per commitment [RevocationKey] to create justice transactions. + */ +public class RevocationBasepoint : CommonBase { + internal RevocationBasepoint(object _dummy, long ptr) : base(ptr) { } + ~RevocationBasepoint() { + if (ptr != 0) { bindings.RevocationBasepoint_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.RevocationBasepoint_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.RevocationBasepoint_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new RevocationBasepoint given each field + */ + public static RevocationBasepoint of(byte[] a_arg) { + long ret = bindings.RevocationBasepoint_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RevocationBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two RevocationBasepoints contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.RevocationBasepoint b) { + bool ret = bindings.RevocationBasepoint_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is RevocationBasepoint)) return false; + return this.eq((RevocationBasepoint)o); + } + internal long clone_ptr() { + long ret = bindings.RevocationBasepoint_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the RevocationBasepoint + */ + public RevocationBasepoint clone() { + long ret = bindings.RevocationBasepoint_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RevocationBasepoint ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationBasepoint(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the RevocationBasepoint. + */ + public long hash() { + long ret = bindings.RevocationBasepoint_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.RevocationBasepoint_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the RevocationBasepoint object into a byte array which can be read by RevocationBasepoint_read + */ + public byte[] write() { + long ret = bindings.RevocationBasepoint_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a RevocationBasepoint from a byte array, created by RevocationBasepoint_write + */ + public static Result_RevocationBasepointDecodeErrorZ read(byte[] ser) { + long ret = bindings.RevocationBasepoint_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationBasepointDecodeErrorZ ret_hu_conv = Result_RevocationBasepointDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/RevocationKey.cs b/c_sharp/src/org/ldk/structs/RevocationKey.cs new file mode 100644 index 00000000..9fe538dc --- /dev/null +++ b/c_sharp/src/org/ldk/structs/RevocationKey.cs @@ -0,0 +1,154 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * The revocation key is used to allow a channel party to revoke their state - giving their + * counterparty the required material to claim all of their funds if they broadcast that state. + * + * Each commitment transaction has a revocation key based on the basepoint and + * per_commitment_point which is used in both commitment and HTLC transactions. + * + * See [the BOLT spec for derivation details] + * (https://github.com/lightning/bolts/blob/master/03-transactions.md#revocationpubkey-derivation) + */ +public class RevocationKey : CommonBase { + internal RevocationKey(object _dummy, long ptr) : base(ptr) { } + ~RevocationKey() { + if (ptr != 0) { bindings.RevocationKey_free(ptr); } + } + + public byte[] get_a() { + long ret = bindings.RevocationKey_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + public void set_a(byte[] val) { + bindings.RevocationKey_set_a(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new RevocationKey given each field + */ + public static RevocationKey of(byte[] a_arg) { + long ret = bindings.RevocationKey_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a_arg, 33))); + GC.KeepAlive(a_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RevocationKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two RevocationKeys contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.RevocationKey b) { + bool ret = bindings.RevocationKey_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is RevocationKey)) return false; + return this.eq((RevocationKey)o); + } + internal long clone_ptr() { + long ret = bindings.RevocationKey_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the RevocationKey + */ + public RevocationKey clone() { + long ret = bindings.RevocationKey_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RevocationKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Generates a non-cryptographic 64-bit hash of the RevocationKey. + */ + public long hash() { + long ret = bindings.RevocationKey_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } + /** + * Derives a per-commitment-transaction revocation public key from one party's per-commitment + * point and the other party's [`RevocationBasepoint`]. This is the public equivalent of + * [`chan_utils::derive_private_revocation_key`] - using only public keys to derive a public + * key instead of private keys. + * + * Note that this is infallible iff we trust that at least one of the two input keys are randomly + * generated (ie our own). + * + * [`chan_utils::derive_private_revocation_key`]: crate::ln::chan_utils::derive_private_revocation_key + */ + public static RevocationKey from_basepoint(org.ldk.structs.RevocationBasepoint countersignatory_basepoint, byte[] per_commitment_point) { + long ret = bindings.RevocationKey_from_basepoint(countersignatory_basepoint == null ? 0 : countersignatory_basepoint.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33))); + GC.KeepAlive(countersignatory_basepoint); + GC.KeepAlive(per_commitment_point); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RevocationKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_basepoint); }; + return ret_hu_conv; + } + + /** + * Get inner Public Key + */ + public byte[] to_public_key() { + long ret = bindings.RevocationKey_to_public_key(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Serialize the RevocationKey object into a byte array which can be read by RevocationKey_read + */ + public byte[] write() { + long ret = bindings.RevocationKey_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a RevocationKey from a byte array, created by RevocationKey_write + */ + public static Result_RevocationKeyDecodeErrorZ read(byte[] ser) { + long ret = bindings.RevocationKey_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_RevocationKeyDecodeErrorZ ret_hu_conv = Result_RevocationKeyDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/RevokeAndACK.cs b/c_sharp/src/org/ldk/structs/RevokeAndACK.cs index 36647945..aa973810 100644 --- a/c_sharp/src/org/ldk/structs/RevokeAndACK.cs +++ b/c_sharp/src/org/ldk/structs/RevokeAndACK.cs @@ -109,6 +109,18 @@ public class RevokeAndACK : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the RevokeAndACK. + */ + public long hash() { + long ret = bindings.RevokeAndACK_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two RevokeAndACKs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/RouteHintHop.cs b/c_sharp/src/org/ldk/structs/RouteHintHop.cs index 9a47ac3e..74f637fa 100644 --- a/c_sharp/src/org/ldk/structs/RouteHintHop.cs +++ b/c_sharp/src/org/ldk/structs/RouteHintHop.cs @@ -8,6 +8,10 @@ namespace org { namespace ldk { namespace structs { /** * A channel descriptor for a hop along a payment path. + * + * While this generally comes from BOLT 11's `r` field, this struct includes more fields than are + * available in BOLT 11. Thus, encoding and decoding this via `lightning-invoice` is lossy, as + * fields not supported in BOLT 11 will be stripped. */ public class RouteHintHop : CommonBase { internal RouteHintHop(object _dummy, long ptr) : base(ptr) { } diff --git a/c_sharp/src/org/ldk/structs/Router.cs b/c_sharp/src/org/ldk/structs/Router.cs index a8dbb2a5..4bce4122 100644 --- a/c_sharp/src/org/ldk/structs/Router.cs +++ b/c_sharp/src/org/ldk/structs/Router.cs @@ -29,6 +29,11 @@ public interface RouterInterface { * Note that first_hops (or a relevant inner pointer) may be NULL or all-0s to represent None */ Result_RouteLightningErrorZ find_route_with_id(byte[] payer, RouteParameters route_params, ChannelDetails[] first_hops, InFlightHtlcs inflight_htlcs, byte[] _payment_hash, byte[] _payment_id); + /**Creates [`BlindedPath`]s for payment to the `recipient` node. The channels in `first_hops` + * are assumed to be with the `recipient`'s peers. The payment secret and any constraints are + * given in `tlvs`. + */ + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ create_blinded_payment_paths(byte[] recipient, ChannelDetails[] first_hops, ReceiveTlvs tlvs, long amount_msats); } /** @@ -92,17 +97,37 @@ public class Router : CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } + public long create_blinded_payment_paths(long _recipient, long _first_hops, long _tlvs, long _amount_msats) { + byte[] _recipient_conv = InternalUtils.decodeUint8Array(_recipient); + int _first_hops_conv_16_len = InternalUtils.getArrayLength(_first_hops); + ChannelDetails[] _first_hops_conv_16_arr = new ChannelDetails[_first_hops_conv_16_len]; + for (int q = 0; q < _first_hops_conv_16_len; q++) { + long _first_hops_conv_16 = InternalUtils.getU64ArrayElem(_first_hops, q); + org.ldk.structs.ChannelDetails _first_hops_conv_16_hu_conv = null; if (_first_hops_conv_16 < 0 || _first_hops_conv_16 > 4096) { _first_hops_conv_16_hu_conv = new org.ldk.structs.ChannelDetails(null, _first_hops_conv_16); } + if (_first_hops_conv_16_hu_conv != null) { _first_hops_conv_16_hu_conv.ptrs_to.AddLast(this); }; + _first_hops_conv_16_arr[q] = _first_hops_conv_16_hu_conv; + } + bindings.free_buffer(_first_hops); + org.ldk.structs.ReceiveTlvs _tlvs_hu_conv = null; if (_tlvs < 0 || _tlvs > 4096) { _tlvs_hu_conv = new org.ldk.structs.ReceiveTlvs(null, _tlvs); } + if (_tlvs_hu_conv != null) { _tlvs_hu_conv.ptrs_to.AddLast(this); }; + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret = arg.create_blinded_payment_paths(_recipient_conv, _first_hops_conv_16_arr, _tlvs_hu_conv, _amount_msats); + GC.KeepAlive(arg); + long result = ret == null ? 0 : ret.clone_ptr(); + return result; + } } /** Creates a new instance of Router from a given implementation */ - public static Router new_impl(RouterInterface arg) { + public static Router new_impl(RouterInterface arg, MessageRouterInterface messageRouter_impl) { LDKRouterHolder impl_holder = new LDKRouterHolder(); LDKRouterImpl impl = new LDKRouterImpl(arg, impl_holder); - long[] ptr_idx = bindings.LDKRouter_new(impl); + MessageRouter messageRouter = MessageRouter.new_impl(messageRouter_impl); + long[] ptr_idx = bindings.LDKRouter_new(impl, messageRouter.instance_idx); impl_holder.held = new Router(null, ptr_idx[0]); impl_holder.held.instance_idx = ptr_idx[1]; impl_holder.held.bindings_instance = impl; + impl_holder.held.ptrs_to.AddLast(messageRouter); return impl_holder.held; } @@ -157,5 +182,24 @@ public class Router : CommonBase { return ret_hu_conv; } + /** + * Creates [`BlindedPath`]s for payment to the `recipient` node. The channels in `first_hops` + * are assumed to be with the `recipient`'s peers. The payment secret and any constraints are + * given in `tlvs`. + */ + public Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ create_blinded_payment_paths(byte[] recipient, ChannelDetails[] first_hops, org.ldk.structs.ReceiveTlvs tlvs, long amount_msats) { + long ret = bindings.Router_create_blinded_payment_paths(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(recipient, 33)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(first_hops, first_hops_conv_16 => first_hops_conv_16 == null ? 0 : first_hops_conv_16.ptr)), tlvs == null ? 0 : tlvs.ptr, amount_msats); + GC.KeepAlive(this); + GC.KeepAlive(recipient); + GC.KeepAlive(first_hops); + GC.KeepAlive(tlvs); + GC.KeepAlive(amount_msats); + if (ret >= 0 && ret <= 4096) { return null; } + Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ ret_hu_conv = Result_CVec_C2Tuple_BlindedPayInfoBlindedPathZZNoneZ.constr_from_ptr(ret); + foreach (ChannelDetails first_hops_conv_16 in first_hops) { if (this != null) { this.ptrs_to.AddLast(first_hops_conv_16); }; }; + if (this != null) { this.ptrs_to.AddLast(tlvs); }; + return ret_hu_conv; + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/ScoreLookUp.cs b/c_sharp/src/org/ldk/structs/ScoreLookUp.cs index 42310a5e..aefbc190 100644 --- a/c_sharp/src/org/ldk/structs/ScoreLookUp.cs +++ b/c_sharp/src/org/ldk/structs/ScoreLookUp.cs @@ -19,7 +19,7 @@ public interface ScoreLookUpInterface { * [`u64::max_value`] is given to indicate sufficient capacity for the invoice's full amount. * Thus, implementations should be overflow-safe. */ - long channel_penalty_msat(long short_channel_id, NodeId source, NodeId target, ChannelUsage usage, ProbabilisticScoringFeeParameters score_params); + long channel_penalty_msat(CandidateRouteHop candidate, ChannelUsage usage, ProbabilisticScoringFeeParameters score_params); } /** @@ -43,13 +43,12 @@ public class ScoreLookUp : CommonBase { internal LDKScoreLookUpImpl(ScoreLookUpInterface arg, LDKScoreLookUpHolder impl_holder) { this.arg = arg; this.impl_holder = impl_holder; } private ScoreLookUpInterface arg; private LDKScoreLookUpHolder impl_holder; - public long channel_penalty_msat(long _short_channel_id, long _source, long _target, long _usage, long _score_params) { - org.ldk.structs.NodeId _source_hu_conv = null; if (_source < 0 || _source > 4096) { _source_hu_conv = new org.ldk.structs.NodeId(null, _source); } - org.ldk.structs.NodeId _target_hu_conv = null; if (_target < 0 || _target > 4096) { _target_hu_conv = new org.ldk.structs.NodeId(null, _target); } + public long channel_penalty_msat(long _candidate, long _usage, long _score_params) { + CandidateRouteHop _candidate_hu_conv = CandidateRouteHop.constr_from_ptr(_candidate); org.ldk.structs.ChannelUsage _usage_hu_conv = null; if (_usage < 0 || _usage > 4096) { _usage_hu_conv = new org.ldk.structs.ChannelUsage(null, _usage); } if (_usage_hu_conv != null) { _usage_hu_conv.ptrs_to.AddLast(this); }; org.ldk.structs.ProbabilisticScoringFeeParameters _score_params_hu_conv = null; if (_score_params < 0 || _score_params > 4096) { _score_params_hu_conv = new org.ldk.structs.ProbabilisticScoringFeeParameters(null, _score_params); } - long ret = arg.channel_penalty_msat(_short_channel_id, _source_hu_conv, _target_hu_conv, _usage_hu_conv, _score_params_hu_conv); + long ret = arg.channel_penalty_msat(_candidate_hu_conv, _usage_hu_conv, _score_params_hu_conv); GC.KeepAlive(arg); return ret; } @@ -77,16 +76,12 @@ public class ScoreLookUp : CommonBase { * [`u64::max_value`] is given to indicate sufficient capacity for the invoice's full amount. * Thus, implementations should be overflow-safe. */ - public long channel_penalty_msat(long short_channel_id, org.ldk.structs.NodeId source, org.ldk.structs.NodeId target, org.ldk.structs.ChannelUsage usage, org.ldk.structs.ProbabilisticScoringFeeParameters score_params) { - long ret = bindings.ScoreLookUp_channel_penalty_msat(this.ptr, short_channel_id, source == null ? 0 : source.ptr, target == null ? 0 : target.ptr, usage == null ? 0 : usage.ptr, score_params == null ? 0 : score_params.ptr); + public long channel_penalty_msat(org.ldk.structs.CandidateRouteHop candidate, org.ldk.structs.ChannelUsage usage, org.ldk.structs.ProbabilisticScoringFeeParameters score_params) { + long ret = bindings.ScoreLookUp_channel_penalty_msat(this.ptr, candidate == null ? 0 : candidate.ptr, usage == null ? 0 : usage.ptr, score_params == null ? 0 : score_params.ptr); GC.KeepAlive(this); - GC.KeepAlive(short_channel_id); - GC.KeepAlive(source); - GC.KeepAlive(target); + GC.KeepAlive(candidate); GC.KeepAlive(usage); GC.KeepAlive(score_params); - if (this != null) { this.ptrs_to.AddLast(source); }; - if (this != null) { this.ptrs_to.AddLast(target); }; if (this != null) { this.ptrs_to.AddLast(usage); }; if (this != null) { this.ptrs_to.AddLast(score_params); }; return ret; diff --git a/c_sharp/src/org/ldk/structs/ScoreUpdate.cs b/c_sharp/src/org/ldk/structs/ScoreUpdate.cs index 936d57a3..5785e40d 100644 --- a/c_sharp/src/org/ldk/structs/ScoreUpdate.cs +++ b/c_sharp/src/org/ldk/structs/ScoreUpdate.cs @@ -12,16 +12,22 @@ namespace org { namespace ldk { namespace structs { public interface ScoreUpdateInterface { /**Handles updating channel penalties after failing to route through a channel. */ - void payment_path_failed(Path path, long short_channel_id); + void payment_path_failed(Path path, long short_channel_id, long duration_since_epoch); /**Handles updating channel penalties after successfully routing along a path. */ - void payment_path_successful(Path path); + void payment_path_successful(Path path, long duration_since_epoch); /**Handles updating channel penalties after a probe over the given path failed. */ - void probe_failed(Path path, long short_channel_id); + void probe_failed(Path path, long short_channel_id, long duration_since_epoch); /**Handles updating channel penalties after a probe over the given path succeeded. */ - void probe_successful(Path path); + void probe_successful(Path path, long duration_since_epoch); + /**Scorers may wish to reduce their certainty of channel liquidity information over time. + * Thus, this method is provided to allow scorers to observe the passage of time - the holder + * of this object should call this method regularly (generally via the + * `lightning-background-processor` crate). + */ + void time_passed(long duration_since_epoch); } /** @@ -41,24 +47,28 @@ public class ScoreUpdate : CommonBase { internal LDKScoreUpdateImpl(ScoreUpdateInterface arg, LDKScoreUpdateHolder impl_holder) { this.arg = arg; this.impl_holder = impl_holder; } private ScoreUpdateInterface arg; private LDKScoreUpdateHolder impl_holder; - public void payment_path_failed(long _path, long _short_channel_id) { + public void payment_path_failed(long _path, long _short_channel_id, long _duration_since_epoch) { org.ldk.structs.Path _path_hu_conv = null; if (_path < 0 || _path > 4096) { _path_hu_conv = new org.ldk.structs.Path(null, _path); } - arg.payment_path_failed(_path_hu_conv, _short_channel_id); + arg.payment_path_failed(_path_hu_conv, _short_channel_id, _duration_since_epoch); GC.KeepAlive(arg); } - public void payment_path_successful(long _path) { + public void payment_path_successful(long _path, long _duration_since_epoch) { org.ldk.structs.Path _path_hu_conv = null; if (_path < 0 || _path > 4096) { _path_hu_conv = new org.ldk.structs.Path(null, _path); } - arg.payment_path_successful(_path_hu_conv); + arg.payment_path_successful(_path_hu_conv, _duration_since_epoch); GC.KeepAlive(arg); } - public void probe_failed(long _path, long _short_channel_id) { + public void probe_failed(long _path, long _short_channel_id, long _duration_since_epoch) { org.ldk.structs.Path _path_hu_conv = null; if (_path < 0 || _path > 4096) { _path_hu_conv = new org.ldk.structs.Path(null, _path); } - arg.probe_failed(_path_hu_conv, _short_channel_id); + arg.probe_failed(_path_hu_conv, _short_channel_id, _duration_since_epoch); GC.KeepAlive(arg); } - public void probe_successful(long _path) { + public void probe_successful(long _path, long _duration_since_epoch) { org.ldk.structs.Path _path_hu_conv = null; if (_path < 0 || _path > 4096) { _path_hu_conv = new org.ldk.structs.Path(null, _path); } - arg.probe_successful(_path_hu_conv); + arg.probe_successful(_path_hu_conv, _duration_since_epoch); + GC.KeepAlive(arg); + } + public void time_passed(long _duration_since_epoch) { + arg.time_passed(_duration_since_epoch); GC.KeepAlive(arg); } } @@ -78,44 +88,60 @@ public class ScoreUpdate : CommonBase { /** * Handles updating channel penalties after failing to route through a channel. */ - public void payment_path_failed(org.ldk.structs.Path path, long short_channel_id) { - bindings.ScoreUpdate_payment_path_failed(this.ptr, path == null ? 0 : path.ptr, short_channel_id); + public void payment_path_failed(org.ldk.structs.Path path, long short_channel_id, long duration_since_epoch) { + bindings.ScoreUpdate_payment_path_failed(this.ptr, path == null ? 0 : path.ptr, short_channel_id, duration_since_epoch); GC.KeepAlive(this); GC.KeepAlive(path); GC.KeepAlive(short_channel_id); + GC.KeepAlive(duration_since_epoch); if (this != null) { this.ptrs_to.AddLast(path); }; } /** * Handles updating channel penalties after successfully routing along a path. */ - public void payment_path_successful(org.ldk.structs.Path path) { - bindings.ScoreUpdate_payment_path_successful(this.ptr, path == null ? 0 : path.ptr); + public void payment_path_successful(org.ldk.structs.Path path, long duration_since_epoch) { + bindings.ScoreUpdate_payment_path_successful(this.ptr, path == null ? 0 : path.ptr, duration_since_epoch); GC.KeepAlive(this); GC.KeepAlive(path); + GC.KeepAlive(duration_since_epoch); if (this != null) { this.ptrs_to.AddLast(path); }; } /** * Handles updating channel penalties after a probe over the given path failed. */ - public void probe_failed(org.ldk.structs.Path path, long short_channel_id) { - bindings.ScoreUpdate_probe_failed(this.ptr, path == null ? 0 : path.ptr, short_channel_id); + public void probe_failed(org.ldk.structs.Path path, long short_channel_id, long duration_since_epoch) { + bindings.ScoreUpdate_probe_failed(this.ptr, path == null ? 0 : path.ptr, short_channel_id, duration_since_epoch); GC.KeepAlive(this); GC.KeepAlive(path); GC.KeepAlive(short_channel_id); + GC.KeepAlive(duration_since_epoch); if (this != null) { this.ptrs_to.AddLast(path); }; } /** * Handles updating channel penalties after a probe over the given path succeeded. */ - public void probe_successful(org.ldk.structs.Path path) { - bindings.ScoreUpdate_probe_successful(this.ptr, path == null ? 0 : path.ptr); + public void probe_successful(org.ldk.structs.Path path, long duration_since_epoch) { + bindings.ScoreUpdate_probe_successful(this.ptr, path == null ? 0 : path.ptr, duration_since_epoch); GC.KeepAlive(this); GC.KeepAlive(path); + GC.KeepAlive(duration_since_epoch); if (this != null) { this.ptrs_to.AddLast(path); }; } + /** + * Scorers may wish to reduce their certainty of channel liquidity information over time. + * Thus, this method is provided to allow scorers to observe the passage of time - the holder + * of this object should call this method regularly (generally via the + * `lightning-background-processor` crate). + */ + public void time_passed(long duration_since_epoch) { + bindings.ScoreUpdate_time_passed(this.ptr, duration_since_epoch); + GC.KeepAlive(this); + GC.KeepAlive(duration_since_epoch); + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/SendError.cs b/c_sharp/src/org/ldk/structs/SendError.cs index 5e557bd1..c20659b3 100644 --- a/c_sharp/src/org/ldk/structs/SendError.cs +++ b/c_sharp/src/org/ldk/structs/SendError.cs @@ -23,10 +23,11 @@ public class SendError : CommonBase { case 1: return new SendError_TooBigPacket(ptr); case 2: return new SendError_TooFewBlindedHops(ptr); case 3: return new SendError_InvalidFirstHop(ptr); - case 4: return new SendError_InvalidMessage(ptr); - case 5: return new SendError_BufferFull(ptr); - case 6: return new SendError_GetNodeIdFailed(ptr); - case 7: return new SendError_BlindedPathAdvanceFailed(ptr); + case 4: return new SendError_PathNotFound(ptr); + case 5: return new SendError_InvalidMessage(ptr); + case 6: return new SendError_BufferFull(ptr); + case 7: return new SendError_GetNodeIdFailed(ptr); + case 8: return new SendError_BlindedPathAdvanceFailed(ptr); default: throw new ArgumentException("Impossible enum variant"); } @@ -51,7 +52,16 @@ public class SendError : CommonBase { } /** A SendError of type InvalidFirstHop */ public class SendError_InvalidFirstHop : SendError { + public byte[] invalid_first_hop; internal SendError_InvalidFirstHop(long ptr) : base(null, ptr) { + long invalid_first_hop = bindings.LDKSendError_InvalidFirstHop_get_invalid_first_hop(ptr); + byte[] invalid_first_hop_conv = InternalUtils.decodeUint8Array(invalid_first_hop); + this.invalid_first_hop = invalid_first_hop_conv; + } + } + /** A SendError of type PathNotFound */ + public class SendError_PathNotFound : SendError { + internal SendError_PathNotFound(long ptr) : base(null, ptr) { } } /** A SendError of type InvalidMessage */ @@ -129,8 +139,20 @@ public class SendError : CommonBase { /** * Utility method to constructs a new InvalidFirstHop-variant SendError */ - public static SendError invalid_first_hop() { - long ret = bindings.SendError_invalid_first_hop(); + public static SendError invalid_first_hop(byte[] a) { + long ret = bindings.SendError_invalid_first_hop(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 33))); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendError ret_hu_conv = org.ldk.structs.SendError.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new PathNotFound-variant SendError + */ + public static SendError path_not_found() { + long ret = bindings.SendError_path_not_found(); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.SendError ret_hu_conv = org.ldk.structs.SendError.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; diff --git a/c_sharp/src/org/ldk/structs/SendSuccess.cs b/c_sharp/src/org/ldk/structs/SendSuccess.cs new file mode 100644 index 00000000..4ddb4c96 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/SendSuccess.cs @@ -0,0 +1,100 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +/** + * Result of successfully [sending an onion message]. + * + * [sending an onion message]: OnionMessenger::send_onion_message + */ +public class SendSuccess : CommonBase { + protected SendSuccess(object _dummy, long ptr) : base(ptr) { } + ~SendSuccess() { + if (ptr != 0) { bindings.SendSuccess_free(ptr); } + } + + internal static SendSuccess constr_from_ptr(long ptr) { + long raw_ty = bindings.LDKSendSuccess_ty_from_ptr(ptr); + switch (raw_ty) { + case 0: return new SendSuccess_Buffered(ptr); + case 1: return new SendSuccess_BufferedAwaitingConnection(ptr); + default: + throw new ArgumentException("Impossible enum variant"); + } + } + + /** A SendSuccess of type Buffered */ + public class SendSuccess_Buffered : SendSuccess { + internal SendSuccess_Buffered(long ptr) : base(null, ptr) { + } + } + /** A SendSuccess of type BufferedAwaitingConnection */ + public class SendSuccess_BufferedAwaitingConnection : SendSuccess { + public byte[] buffered_awaiting_connection; + internal SendSuccess_BufferedAwaitingConnection(long ptr) : base(null, ptr) { + long buffered_awaiting_connection = bindings.LDKSendSuccess_BufferedAwaitingConnection_get_buffered_awaiting_connection(ptr); + byte[] buffered_awaiting_connection_conv = InternalUtils.decodeUint8Array(buffered_awaiting_connection); + this.buffered_awaiting_connection = buffered_awaiting_connection_conv; + } + } + internal long clone_ptr() { + long ret = bindings.SendSuccess_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the SendSuccess + */ + public SendSuccess clone() { + long ret = bindings.SendSuccess_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendSuccess ret_hu_conv = org.ldk.structs.SendSuccess.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new Buffered-variant SendSuccess + */ + public static SendSuccess buffered() { + long ret = bindings.SendSuccess_buffered(); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendSuccess ret_hu_conv = org.ldk.structs.SendSuccess.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Utility method to constructs a new BufferedAwaitingConnection-variant SendSuccess + */ + public static SendSuccess buffered_awaiting_connection(byte[] a) { + long ret = bindings.SendSuccess_buffered_awaiting_connection(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 33))); + GC.KeepAlive(a); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SendSuccess ret_hu_conv = org.ldk.structs.SendSuccess.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + /** + * Checks if two SendSuccesss contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + */ + public bool eq(org.ldk.structs.SendSuccess b) { + bool ret = bindings.SendSuccess_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + return ret; + } + + public override bool Equals(object o) { + if (!(o is SendSuccess)) return false; + return this.eq((SendSuccess)o); + } +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Shutdown.cs b/c_sharp/src/org/ldk/structs/Shutdown.cs index a7ea3d78..142d8fdf 100644 --- a/c_sharp/src/org/ldk/structs/Shutdown.cs +++ b/c_sharp/src/org/ldk/structs/Shutdown.cs @@ -92,6 +92,18 @@ public class Shutdown : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the Shutdown. + */ + public long hash() { + long ret = bindings.Shutdown_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two Shutdowns contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/ShutdownScript.cs b/c_sharp/src/org/ldk/structs/ShutdownScript.cs index 30bf39a3..cb9709f2 100644 --- a/c_sharp/src/org/ldk/structs/ShutdownScript.cs +++ b/c_sharp/src/org/ldk/structs/ShutdownScript.cs @@ -108,17 +108,16 @@ public class ShutdownScript : CommonBase { * * This function may return an error if `program` is invalid for the segwit `version`. */ - public static Result_ShutdownScriptInvalidShutdownScriptZ new_witness_program(org.ldk.util.WitnessVersion version, byte[] program) { - long ret = bindings.ShutdownScript_new_witness_program(version.getVal(), InternalUtils.encodeUint8Array(program)); - GC.KeepAlive(version); - GC.KeepAlive(program); + public static Result_ShutdownScriptInvalidShutdownScriptZ new_witness_program(org.ldk.structs.WitnessProgram witness_program) { + long ret = bindings.ShutdownScript_new_witness_program(witness_program.ptr); + GC.KeepAlive(witness_program); if (ret >= 0 && ret <= 4096) { return null; } Result_ShutdownScriptInvalidShutdownScriptZ ret_hu_conv = Result_ShutdownScriptInvalidShutdownScriptZ.constr_from_ptr(ret); return ret_hu_conv; } /** - * Converts the shutdown script into the underlying [`Script`]. + * Converts the shutdown script into the underlying [`ScriptBuf`]. */ public byte[] into_inner() { long ret = bindings.ShutdownScript_into_inner(this.ptr); diff --git a/c_sharp/src/org/ldk/structs/SignerProvider.cs b/c_sharp/src/org/ldk/structs/SignerProvider.cs index 9396d02f..440e60ac 100644 --- a/c_sharp/src/org/ldk/structs/SignerProvider.cs +++ b/c_sharp/src/org/ldk/structs/SignerProvider.cs @@ -10,7 +10,7 @@ namespace org { namespace ldk { namespace structs { /** An implementation of SignerProvider */ public interface SignerProviderInterface { - /**Generates a unique `channel_keys_id` that can be used to obtain a [`Self::Signer`] through + /**Generates a unique `channel_keys_id` that can be used to obtain a [`Self::EcdsaSigner`] through * [`SignerProvider::derive_channel_signer`]. The `user_channel_id` is provided to allow * implementations of [`SignerProvider`] to maintain a mapping between itself and the generated * `channel_keys_id`. @@ -36,7 +36,7 @@ public interface SignerProviderInterface { * This method is slowly being phased out -- it will only be called when reading objects * written by LDK versions prior to 0.0.113. * - * [`Signer`]: Self::Signer + * [`Signer`]: Self::EcdsaSigner * [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor * [`ChannelManager`]: crate::ln::channelmanager::ChannelManager */ @@ -46,9 +46,10 @@ public interface SignerProviderInterface { * If this function returns an error, this will result in a channel failing to open. * * This method should return a different value each time it is called, to avoid linking - * on-chain funds across channels as controlled to the same user. + * on-chain funds across channels as controlled to the same user. `channel_keys_id` may be + * used to derive a unique value for each channel. */ - Result_CVec_u8ZNoneZ get_destination_script(); + Result_CVec_u8ZNoneZ get_destination_script(byte[] channel_keys_id); /**Get a script pubkey which we will send funds to when closing a channel. * * If this function returns an error, this will result in a channel failing to open or close. @@ -100,8 +101,9 @@ public class SignerProvider : CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } - public long get_destination_script() { - Result_CVec_u8ZNoneZ ret = arg.get_destination_script(); + public long get_destination_script(long _channel_keys_id) { + byte[] _channel_keys_id_conv = InternalUtils.decodeUint8Array(_channel_keys_id); + Result_CVec_u8ZNoneZ ret = arg.get_destination_script(_channel_keys_id_conv); GC.KeepAlive(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; @@ -127,7 +129,7 @@ public class SignerProvider : CommonBase { } /** - * Generates a unique `channel_keys_id` that can be used to obtain a [`Self::Signer`] through + * Generates a unique `channel_keys_id` that can be used to obtain a [`Self::EcdsaSigner`] through * [`SignerProvider::derive_channel_signer`]. The `user_channel_id` is provided to allow * implementations of [`SignerProvider`] to maintain a mapping between itself and the generated * `channel_keys_id`. @@ -175,7 +177,7 @@ public class SignerProvider : CommonBase { * This method is slowly being phased out -- it will only be called when reading objects * written by LDK versions prior to 0.0.113. * - * [`Signer`]: Self::Signer + * [`Signer`]: Self::EcdsaSigner * [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor * [`ChannelManager`]: crate::ln::channelmanager::ChannelManager */ @@ -194,11 +196,13 @@ public class SignerProvider : CommonBase { * If this function returns an error, this will result in a channel failing to open. * * This method should return a different value each time it is called, to avoid linking - * on-chain funds across channels as controlled to the same user. + * on-chain funds across channels as controlled to the same user. `channel_keys_id` may be + * used to derive a unique value for each channel. */ - public Result_CVec_u8ZNoneZ get_destination_script() { - long ret = bindings.SignerProvider_get_destination_script(this.ptr); + public Result_CVec_u8ZNoneZ get_destination_script(byte[] channel_keys_id) { + long ret = bindings.SignerProvider_get_destination_script(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_keys_id, 32))); GC.KeepAlive(this); + GC.KeepAlive(channel_keys_id); if (ret >= 0 && ret <= 4096) { return null; } Result_CVec_u8ZNoneZ ret_hu_conv = Result_CVec_u8ZNoneZ.constr_from_ptr(ret); return ret_hu_conv; diff --git a/c_sharp/src/org/ldk/structs/SocketAddress.cs b/c_sharp/src/org/ldk/structs/SocketAddress.cs index 42abb61c..096f79f6 100644 --- a/c_sharp/src/org/ldk/structs/SocketAddress.cs +++ b/c_sharp/src/org/ldk/structs/SocketAddress.cs @@ -200,6 +200,18 @@ public class SocketAddress : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the SocketAddress. + */ + public long hash() { + long ret = bindings.SocketAddress_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two SocketAddresss contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/SpendableOutputDescriptor.cs b/c_sharp/src/org/ldk/structs/SpendableOutputDescriptor.cs index dc8ca432..b6ffa08e 100644 --- a/c_sharp/src/org/ldk/structs/SpendableOutputDescriptor.cs +++ b/c_sharp/src/org/ldk/structs/SpendableOutputDescriptor.cs @@ -43,6 +43,19 @@ public class SpendableOutputDescriptor : CommonBase { * The output which is referenced by the given outpoint. */ public TxOut output; + /** + * The `channel_keys_id` for the channel which this output came from. + * + * For channels which were generated on LDK 0.0.119 or later, this is the value which was + * passed to the [`SignerProvider::get_destination_script`] call which provided this + * output script. + * + * For channels which were generated prior to LDK 0.0.119, no such argument existed, + * however this field may still be filled in if such data is available. + * + * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public byte[] channel_keys_id; internal SpendableOutputDescriptor_StaticOutput(long ptr) : base(null, ptr) { long outpoint = bindings.LDKSpendableOutputDescriptor_StaticOutput_get_outpoint(ptr); org.ldk.structs.OutPoint outpoint_hu_conv = null; if (outpoint < 0 || outpoint > 4096) { outpoint_hu_conv = new org.ldk.structs.OutPoint(null, outpoint); } @@ -51,6 +64,9 @@ public class SpendableOutputDescriptor : CommonBase { long output = bindings.LDKSpendableOutputDescriptor_StaticOutput_get_output(ptr); TxOut output_conv = new TxOut(null, output); this.output = output_conv; + long channel_keys_id = bindings.LDKSpendableOutputDescriptor_StaticOutput_get_channel_keys_id(ptr); + byte[] channel_keys_id_conv = InternalUtils.decodeUint8Array(channel_keys_id); + this.channel_keys_id = channel_keys_id_conv; } } /** A SpendableOutputDescriptor of type DelayedPaymentOutput */ @@ -94,10 +110,11 @@ public class SpendableOutputDescriptor : CommonBase { /** * Utility method to constructs a new StaticOutput-variant SpendableOutputDescriptor */ - public static SpendableOutputDescriptor static_output(org.ldk.structs.OutPoint outpoint, org.ldk.structs.TxOut output) { - long ret = bindings.SpendableOutputDescriptor_static_output(outpoint == null ? 0 : outpoint.ptr, output.ptr); + public static SpendableOutputDescriptor static_output(org.ldk.structs.OutPoint outpoint, org.ldk.structs.TxOut output, byte[] channel_keys_id) { + long ret = bindings.SpendableOutputDescriptor_static_output(outpoint == null ? 0 : outpoint.ptr, output.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_keys_id, 32))); GC.KeepAlive(outpoint); GC.KeepAlive(output); + GC.KeepAlive(channel_keys_id); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.SpendableOutputDescriptor ret_hu_conv = org.ldk.structs.SpendableOutputDescriptor.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; diff --git a/c_sharp/src/org/ldk/structs/Splice.cs b/c_sharp/src/org/ldk/structs/Splice.cs new file mode 100644 index 00000000..b5912ea9 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Splice.cs @@ -0,0 +1,209 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A splice message to be sent by or received from the stfu initiator (splice initiator). + */ +public class Splice : CommonBase { + internal Splice(object _dummy, long ptr) : base(ptr) { } + ~Splice() { + if (ptr != 0) { bindings.Splice_free(ptr); } + } + + /** + * The channel ID where splicing is intended + */ + public byte[] get_channel_id() { + long ret = bindings.Splice_get_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The channel ID where splicing is intended + */ + public void set_channel_id(byte[] val) { + bindings.Splice_set_channel_id(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The genesis hash of the blockchain where the channel is intended to be spliced + */ + public byte[] get_chain_hash() { + long ret = bindings.Splice_get_chain_hash(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The genesis hash of the blockchain where the channel is intended to be spliced + */ + public void set_chain_hash(byte[] val) { + bindings.Splice_set_chain_hash(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The intended change in channel capacity: the amount to be added (positive value) + * or removed (negative value) by the sender (splice initiator) by splicing into/from the channel. + */ + public long get_relative_satoshis() { + long ret = bindings.Splice_get_relative_satoshis(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The intended change in channel capacity: the amount to be added (positive value) + * or removed (negative value) by the sender (splice initiator) by splicing into/from the channel. + */ + public void set_relative_satoshis(long val) { + bindings.Splice_set_relative_satoshis(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The feerate for the new funding transaction, set by the splice initiator + */ + public int get_funding_feerate_perkw() { + int ret = bindings.Splice_get_funding_feerate_perkw(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The feerate for the new funding transaction, set by the splice initiator + */ + public void set_funding_feerate_perkw(int val) { + bindings.Splice_set_funding_feerate_perkw(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The locktime for the new funding transaction + */ + public int get_locktime() { + int ret = bindings.Splice_get_locktime(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The locktime for the new funding transaction + */ + public void set_locktime(int val) { + bindings.Splice_set_locktime(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The key of the sender (splice initiator) controlling the new funding transaction + */ + public byte[] get_funding_pubkey() { + long ret = bindings.Splice_get_funding_pubkey(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The key of the sender (splice initiator) controlling the new funding transaction + */ + public void set_funding_pubkey(byte[] val) { + bindings.Splice_set_funding_pubkey(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new Splice given each field + */ + public static Splice of(byte[] channel_id_arg, byte[] chain_hash_arg, long relative_satoshis_arg, int funding_feerate_perkw_arg, int locktime_arg, byte[] funding_pubkey_arg) { + long ret = bindings.Splice_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(chain_hash_arg, 32)), relative_satoshis_arg, funding_feerate_perkw_arg, locktime_arg, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(funding_pubkey_arg, 33))); + GC.KeepAlive(channel_id_arg); + GC.KeepAlive(chain_hash_arg); + GC.KeepAlive(relative_satoshis_arg); + GC.KeepAlive(funding_feerate_perkw_arg); + GC.KeepAlive(locktime_arg); + GC.KeepAlive(funding_pubkey_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Splice ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Splice(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.Splice_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the Splice + */ + public Splice clone() { + long ret = bindings.Splice_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Splice ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Splice(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Checks if two Splices contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.Splice b) { + bool ret = bindings.Splice_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is Splice)) return false; + return this.eq((Splice)o); + } + /** + * Serialize the Splice object into a byte array which can be read by Splice_read + */ + public byte[] write() { + long ret = bindings.Splice_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a Splice from a byte array, created by Splice_write + */ + public static Result_SpliceDecodeErrorZ read(byte[] ser) { + long ret = bindings.Splice_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceDecodeErrorZ ret_hu_conv = Result_SpliceDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/SpliceAck.cs b/c_sharp/src/org/ldk/structs/SpliceAck.cs new file mode 100644 index 00000000..cfd8f5ab --- /dev/null +++ b/c_sharp/src/org/ldk/structs/SpliceAck.cs @@ -0,0 +1,171 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A splice_ack message to be received by or sent to the splice initiator. + */ +public class SpliceAck : CommonBase { + internal SpliceAck(object _dummy, long ptr) : base(ptr) { } + ~SpliceAck() { + if (ptr != 0) { bindings.SpliceAck_free(ptr); } + } + + /** + * The channel ID where splicing is intended + */ + public byte[] get_channel_id() { + long ret = bindings.SpliceAck_get_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The channel ID where splicing is intended + */ + public void set_channel_id(byte[] val) { + bindings.SpliceAck_set_channel_id(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The genesis hash of the blockchain where the channel is intended to be spliced + */ + public byte[] get_chain_hash() { + long ret = bindings.SpliceAck_get_chain_hash(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The genesis hash of the blockchain where the channel is intended to be spliced + */ + public void set_chain_hash(byte[] val) { + bindings.SpliceAck_set_chain_hash(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The intended change in channel capacity: the amount to be added (positive value) + * or removed (negative value) by the sender (splice acceptor) by splicing into/from the channel. + */ + public long get_relative_satoshis() { + long ret = bindings.SpliceAck_get_relative_satoshis(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * The intended change in channel capacity: the amount to be added (positive value) + * or removed (negative value) by the sender (splice acceptor) by splicing into/from the channel. + */ + public void set_relative_satoshis(long val) { + bindings.SpliceAck_set_relative_satoshis(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * The key of the sender (splice acceptor) controlling the new funding transaction + */ + public byte[] get_funding_pubkey() { + long ret = bindings.SpliceAck_get_funding_pubkey(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The key of the sender (splice acceptor) controlling the new funding transaction + */ + public void set_funding_pubkey(byte[] val) { + bindings.SpliceAck_set_funding_pubkey(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new SpliceAck given each field + */ + public static SpliceAck of(byte[] channel_id_arg, byte[] chain_hash_arg, long relative_satoshis_arg, byte[] funding_pubkey_arg) { + long ret = bindings.SpliceAck_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(chain_hash_arg, 32)), relative_satoshis_arg, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(funding_pubkey_arg, 33))); + GC.KeepAlive(channel_id_arg); + GC.KeepAlive(chain_hash_arg); + GC.KeepAlive(relative_satoshis_arg); + GC.KeepAlive(funding_pubkey_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SpliceAck ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.SpliceAck(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.SpliceAck_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the SpliceAck + */ + public SpliceAck clone() { + long ret = bindings.SpliceAck_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SpliceAck ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.SpliceAck(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Checks if two SpliceAcks contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.SpliceAck b) { + bool ret = bindings.SpliceAck_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is SpliceAck)) return false; + return this.eq((SpliceAck)o); + } + /** + * Serialize the SpliceAck object into a byte array which can be read by SpliceAck_read + */ + public byte[] write() { + long ret = bindings.SpliceAck_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a SpliceAck from a byte array, created by SpliceAck_write + */ + public static Result_SpliceAckDecodeErrorZ read(byte[] ser) { + long ret = bindings.SpliceAck_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceAckDecodeErrorZ ret_hu_conv = Result_SpliceAckDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/SpliceLocked.cs b/c_sharp/src/org/ldk/structs/SpliceLocked.cs new file mode 100644 index 00000000..17bbcd12 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/SpliceLocked.cs @@ -0,0 +1,108 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A splice_locked message to be sent to or received from a peer. + */ +public class SpliceLocked : CommonBase { + internal SpliceLocked(object _dummy, long ptr) : base(ptr) { } + ~SpliceLocked() { + if (ptr != 0) { bindings.SpliceLocked_free(ptr); } + } + + /** + * The channel ID + */ + public byte[] get_channel_id() { + long ret = bindings.SpliceLocked_get_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The channel ID + */ + public void set_channel_id(byte[] val) { + bindings.SpliceLocked_set_channel_id(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new SpliceLocked given each field + */ + public static SpliceLocked of(byte[] channel_id_arg) { + long ret = bindings.SpliceLocked_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32))); + GC.KeepAlive(channel_id_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SpliceLocked ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.SpliceLocked(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.SpliceLocked_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the SpliceLocked + */ + public SpliceLocked clone() { + long ret = bindings.SpliceLocked_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.SpliceLocked ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.SpliceLocked(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Checks if two SpliceLockeds contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.SpliceLocked b) { + bool ret = bindings.SpliceLocked_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is SpliceLocked)) return false; + return this.eq((SpliceLocked)o); + } + /** + * Serialize the SpliceLocked object into a byte array which can be read by SpliceLocked_read + */ + public byte[] write() { + long ret = bindings.SpliceLocked_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a SpliceLocked from a byte array, created by SpliceLocked_write + */ + public static Result_SpliceLockedDecodeErrorZ read(byte[] ser) { + long ret = bindings.SpliceLocked_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_SpliceLockedDecodeErrorZ ret_hu_conv = Result_SpliceLockedDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/Stfu.cs b/c_sharp/src/org/ldk/structs/Stfu.cs new file mode 100644 index 00000000..f3746870 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/Stfu.cs @@ -0,0 +1,127 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * An stfu (quiescence) message to be sent by or received from the stfu initiator. + */ +public class Stfu : CommonBase { + internal Stfu(object _dummy, long ptr) : base(ptr) { } + ~Stfu() { + if (ptr != 0) { bindings.Stfu_free(ptr); } + } + + /** + * The channel ID where quiescence is intended + */ + public byte[] get_channel_id() { + long ret = bindings.Stfu_get_channel_id(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * The channel ID where quiescence is intended + */ + public void set_channel_id(byte[] val) { + bindings.Stfu_set_channel_id(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 32))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Initiator flag, 1 if initiating, 0 if replying to an stfu. + */ + public byte get_initiator() { + byte ret = bindings.Stfu_get_initiator(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Initiator flag, 1 if initiating, 0 if replying to an stfu. + */ + public void set_initiator(byte val) { + bindings.Stfu_set_initiator(this.ptr, val); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new Stfu given each field + */ + public static Stfu of(byte[] channel_id_arg, byte initiator_arg) { + long ret = bindings.Stfu_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), initiator_arg); + GC.KeepAlive(channel_id_arg); + GC.KeepAlive(initiator_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Stfu ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Stfu(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.Stfu_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the Stfu + */ + public Stfu clone() { + long ret = bindings.Stfu_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Stfu ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.Stfu(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Checks if two Stfus contain equal inner contents. + * This ignores pointers and is_owned flags and looks at the values in fields. + * Two objects with NULL inner values will be considered "equal" here. + */ + public bool eq(org.ldk.structs.Stfu b) { + bool ret = bindings.Stfu_eq(this.ptr, b == null ? 0 : b.ptr); + GC.KeepAlive(this); + GC.KeepAlive(b); + if (this != null) { this.ptrs_to.AddLast(b); }; + return ret; + } + + public override bool Equals(object o) { + if (!(o is Stfu)) return false; + return this.eq((Stfu)o); + } + /** + * Serialize the Stfu object into a byte array which can be read by Stfu_read + */ + public byte[] write() { + long ret = bindings.Stfu_write(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Read a Stfu from a byte array, created by Stfu_write + */ + public static Result_StfuDecodeErrorZ read(byte[] ser) { + long ret = bindings.Stfu_read(InternalUtils.encodeUint8Array(ser)); + GC.KeepAlive(ser); + if (ret >= 0 && ret <= 4096) { return null; } + Result_StfuDecodeErrorZ ret_hu_conv = Result_StfuDecodeErrorZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/TaggedHash.cs b/c_sharp/src/org/ldk/structs/TaggedHash.cs index 5a1e1927..30e237cc 100644 --- a/c_sharp/src/org/ldk/structs/TaggedHash.cs +++ b/c_sharp/src/org/ldk/structs/TaggedHash.cs @@ -19,5 +19,56 @@ public class TaggedHash : CommonBase { if (ptr != 0) { bindings.TaggedHash_free(ptr); } } + internal long clone_ptr() { + long ret = bindings.TaggedHash_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a copy of the TaggedHash + */ + public TaggedHash clone() { + long ret = bindings.TaggedHash_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.TaggedHash ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.TaggedHash(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Returns the digest to sign. + */ + public byte[] as_digest() { + long ret = bindings.TaggedHash_as_digest(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Returns the tag used in the tagged hash. + */ + public string tag() { + long ret = bindings.TaggedHash_tag(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + string ret_conv = InternalUtils.decodeString(ret); + return ret_conv; + } + + /** + * Returns the merkle root used in the tagged hash. + */ + public byte[] merkle_root() { + long ret = bindings.TaggedHash_merkle_root(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + } } } } diff --git a/c_sharp/src/org/ldk/structs/ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ.cs b/c_sharp/src/org/ldk/structs/ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ.cs new file mode 100644 index 00000000..9b770b00 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ.cs @@ -0,0 +1,89 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ : CommonBase { + internal ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ(object _dummy, long ptr) : base(ptr) { } + ~ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ() { + if (ptr != 0) { bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public OnionMessage get_b() { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_b(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.OnionMessage ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OnionMessage(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * + */ + public Option_CVec_SocketAddressZZ get_c() { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_get_c(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_CVec_SocketAddressZZ ret_hu_conv = org.ldk.structs.Option_CVec_SocketAddressZZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ clone() { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ ret_hu_conv = new ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ from the contained elements. + */ + public static ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ of(byte[] a, org.ldk.structs.OnionMessage b, org.ldk.structs.Option_CVec_SocketAddressZZ c) { + long ret = bindings.C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 33)), b == null ? 0 : b.ptr, c.ptr); + GC.KeepAlive(a); + GC.KeepAlive(b); + GC.KeepAlive(c); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ ret_hu_conv = new ThreeTuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(b); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(c); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ.cs b/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ.cs new file mode 100644 index 00000000..7ca3d489 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ.cs @@ -0,0 +1,89 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ : CommonBase { + internal ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ(object _dummy, long ptr) : base(ptr) { } + ~ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ() { + if (ptr != 0) { bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public RecipientOnionFields get_b() { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_b(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RecipientOnionFields ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RecipientOnionFields(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * + */ + public RouteParameters get_c() { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_get_c(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.RouteParameters ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RouteParameters(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ clone() { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ ret_hu_conv = new ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ from the contained elements. + */ + public static ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ of(byte[] a, org.ldk.structs.RecipientOnionFields b, org.ldk.structs.RouteParameters c) { + long ret = bindings.C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 32)), b == null ? 0 : b.ptr, c == null ? 0 : c.ptr); + GC.KeepAlive(a); + GC.KeepAlive(b); + GC.KeepAlive(c); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ ret_hu_conv = new ThreeTuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(b); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(c); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ.cs b/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ.cs new file mode 100644 index 00000000..2fd402ad --- /dev/null +++ b/c_sharp/src/org/ldk/structs/ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ.cs @@ -0,0 +1,85 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ : CommonBase { + internal ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ(object _dummy, long ptr) : base(ptr) { } + ~ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ() { + if (ptr != 0) { bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public int get_b() { + int ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_b(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * + */ + public Option_ThirtyTwoBytesZ get_c() { + long ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_get_c(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.Option_ThirtyTwoBytesZ ret_hu_conv = org.ldk.structs.Option_ThirtyTwoBytesZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + internal long clone_ptr() { + long ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ clone() { + long ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_hu_conv = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ from the contained elements. + */ + public static ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ of(byte[] a, int b, org.ldk.structs.Option_ThirtyTwoBytesZ c) { + long ret = bindings.C3Tuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 32)), b, c.ptr); + GC.KeepAlive(a); + GC.KeepAlive(b); + GC.KeepAlive(c); + if (ret >= 0 && ret <= 4096) { return null; } + ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ ret_hu_conv = new ThreeTuple_ThirtyTwoBytesu32COption_ThirtyTwoBytesZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(c); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/TransactionU16LenLimited.cs b/c_sharp/src/org/ldk/structs/TransactionU16LenLimited.cs index afba6556..bf3c9ecc 100644 --- a/c_sharp/src/org/ldk/structs/TransactionU16LenLimited.cs +++ b/c_sharp/src/org/ldk/structs/TransactionU16LenLimited.cs @@ -36,6 +36,18 @@ public class TransactionU16LenLimited : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TransactionU16LenLimited. + */ + public long hash() { + long ret = bindings.TransactionU16LenLimited_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TransactionU16LenLimiteds contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8Zu64Z.cs b/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8Zu64Z.cs new file mode 100644 index 00000000..978bb619 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8Zu64Z.cs @@ -0,0 +1,71 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class TwoTuple_CVec_u8Zu64Z : CommonBase { + internal TwoTuple_CVec_u8Zu64Z(object _dummy, long ptr) : base(ptr) { } + ~TwoTuple_CVec_u8Zu64Z() { + if (ptr != 0) { bindings.C2Tuple_CVec_u8Zu64Z_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C2Tuple_CVec_u8Zu64Z_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public long get_b() { + long ret = bindings.C2Tuple_CVec_u8Zu64Z_get_b(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.C2Tuple_CVec_u8Zu64Z_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public TwoTuple_CVec_u8Zu64Z clone() { + long ret = bindings.C2Tuple_CVec_u8Zu64Z_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple_CVec_u8Zu64Z ret_hu_conv = new TwoTuple_CVec_u8Zu64Z(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C2Tuple_CVec_u8Zu64Z from the contained elements. + */ + public static TwoTuple_CVec_u8Zu64Z of(byte[] a, long b) { + long ret = bindings.C2Tuple_CVec_u8Zu64Z_new(InternalUtils.encodeUint8Array(a), b); + GC.KeepAlive(a); + GC.KeepAlive(b); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple_CVec_u8Zu64Z ret_hu_conv = new TwoTuple_CVec_u8Zu64Z(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8ZusizeZ.cs b/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8ZusizeZ.cs deleted file mode 100644 index 4a31f4a3..00000000 --- a/c_sharp/src/org/ldk/structs/TwoTuple_CVec_u8ZusizeZ.cs +++ /dev/null @@ -1,71 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - - -/** - * A Tuple - */ -public class TwoTuple_CVec_u8ZusizeZ : CommonBase { - internal TwoTuple_CVec_u8ZusizeZ(object _dummy, long ptr) : base(ptr) { } - ~TwoTuple_CVec_u8ZusizeZ() { - if (ptr != 0) { bindings.C2Tuple_CVec_u8ZusizeZ_free(ptr); } - } - - /** - * - */ - public byte[] get_a() { - long ret = bindings.C2Tuple_CVec_u8ZusizeZ_get_a(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; - } - - /** - * - */ - public long get_b() { - long ret = bindings.C2Tuple_CVec_u8ZusizeZ_get_b(this.ptr); - GC.KeepAlive(this); - return ret; - } - - internal long clone_ptr() { - long ret = bindings.C2Tuple_CVec_u8ZusizeZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new tuple which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public TwoTuple_CVec_u8ZusizeZ clone() { - long ret = bindings.C2Tuple_CVec_u8ZusizeZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_CVec_u8ZusizeZ ret_hu_conv = new TwoTuple_CVec_u8ZusizeZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - /** - * Creates a new C2Tuple_CVec_u8ZusizeZ from the contained elements. - */ - public static TwoTuple_CVec_u8ZusizeZ of(byte[] a, long b) { - long ret = bindings.C2Tuple_CVec_u8ZusizeZ_new(InternalUtils.encodeUint8Array(a), b); - GC.KeepAlive(a); - GC.KeepAlive(b); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_CVec_u8ZusizeZ ret_hu_conv = new TwoTuple_CVec_u8ZusizeZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyCVec_SocketAddressZZ.cs b/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyCVec_SocketAddressZZ.cs new file mode 100644 index 00000000..a6060a83 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyCVec_SocketAddressZZ.cs @@ -0,0 +1,82 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class TwoTuple_PublicKeyCVec_SocketAddressZZ : CommonBase { + internal TwoTuple_PublicKeyCVec_SocketAddressZZ(object _dummy, long ptr) : base(ptr) { } + ~TwoTuple_PublicKeyCVec_SocketAddressZZ() { + if (ptr != 0) { bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public SocketAddress[] get_b() { + long ret = bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_get_b(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + int ret_conv_15_len = InternalUtils.getArrayLength(ret); + SocketAddress[] ret_conv_15_arr = new SocketAddress[ret_conv_15_len]; + for (int p = 0; p < ret_conv_15_len; p++) { + long ret_conv_15 = InternalUtils.getU64ArrayElem(ret, p); + org.ldk.structs.SocketAddress ret_conv_15_hu_conv = org.ldk.structs.SocketAddress.constr_from_ptr(ret_conv_15); + if (ret_conv_15_hu_conv != null) { ret_conv_15_hu_conv.ptrs_to.AddLast(this); }; + ret_conv_15_arr[p] = ret_conv_15_hu_conv; + } + bindings.free_buffer(ret); + return ret_conv_15_arr; + } + + internal long clone_ptr() { + long ret = bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public TwoTuple_PublicKeyCVec_SocketAddressZZ clone() { + long ret = bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple_PublicKeyCVec_SocketAddressZZ ret_hu_conv = new TwoTuple_PublicKeyCVec_SocketAddressZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C2Tuple_PublicKeyCVec_SocketAddressZZ from the contained elements. + */ + public static TwoTuple_PublicKeyCVec_SocketAddressZZ of(byte[] a, SocketAddress[] b) { + long ret = bindings.C2Tuple_PublicKeyCVec_SocketAddressZZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 33)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(b, b_conv_15 => b_conv_15.ptr))); + GC.KeepAlive(a); + GC.KeepAlive(b); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple_PublicKeyCVec_SocketAddressZZ ret_hu_conv = new TwoTuple_PublicKeyCVec_SocketAddressZZ(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + foreach (SocketAddress b_conv_15 in b) { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(b_conv_15); }; }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyOnionMessageZ.cs b/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyOnionMessageZ.cs deleted file mode 100644 index 0b47eda7..00000000 --- a/c_sharp/src/org/ldk/structs/TwoTuple_PublicKeyOnionMessageZ.cs +++ /dev/null @@ -1,75 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - - -/** - * A Tuple - */ -public class TwoTuple_PublicKeyOnionMessageZ : CommonBase { - internal TwoTuple_PublicKeyOnionMessageZ(object _dummy, long ptr) : base(ptr) { } - ~TwoTuple_PublicKeyOnionMessageZ() { - if (ptr != 0) { bindings.C2Tuple_PublicKeyOnionMessageZ_free(ptr); } - } - - /** - * - */ - public byte[] get_a() { - long ret = bindings.C2Tuple_PublicKeyOnionMessageZ_get_a(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; - } - - /** - * - */ - public OnionMessage get_b() { - long ret = bindings.C2Tuple_PublicKeyOnionMessageZ_get_b(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.OnionMessage ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OnionMessage(null, ret); } - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - internal long clone_ptr() { - long ret = bindings.C2Tuple_PublicKeyOnionMessageZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new tuple which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public TwoTuple_PublicKeyOnionMessageZ clone() { - long ret = bindings.C2Tuple_PublicKeyOnionMessageZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_PublicKeyOnionMessageZ ret_hu_conv = new TwoTuple_PublicKeyOnionMessageZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - /** - * Creates a new C2Tuple_PublicKeyOnionMessageZ from the contained elements. - */ - public static TwoTuple_PublicKeyOnionMessageZ of(byte[] a, org.ldk.structs.OnionMessage b) { - long ret = bindings.C2Tuple_PublicKeyOnionMessageZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 33)), b == null ? 0 : b.ptr); - GC.KeepAlive(a); - GC.KeepAlive(b); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_PublicKeyOnionMessageZ ret_hu_conv = new TwoTuple_PublicKeyOnionMessageZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(b); }; - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ.cs b/c_sharp/src/org/ldk/structs/TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ.cs deleted file mode 100644 index ea6dfcf2..00000000 --- a/c_sharp/src/org/ldk/structs/TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ.cs +++ /dev/null @@ -1,75 +0,0 @@ -using org.ldk.impl; -using org.ldk.enums; -using org.ldk.util; -using System; - -namespace org { namespace ldk { namespace structs { - - -/** - * A Tuple - */ -public class TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ : CommonBase { - internal TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ(object _dummy, long ptr) : base(ptr) { } - ~TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ() { - if (ptr != 0) { bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_free(ptr); } - } - - /** - * - */ - public byte[] get_a() { - long ret = bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_a(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; - } - - /** - * - */ - public Option_ThirtyTwoBytesZ get_b() { - long ret = bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_get_b(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - org.ldk.structs.Option_ThirtyTwoBytesZ ret_hu_conv = org.ldk.structs.Option_ThirtyTwoBytesZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - internal long clone_ptr() { - long ret = bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone_ptr(this.ptr); - GC.KeepAlive(this); - return ret; - } - - /** - * Creates a new tuple which has the same data as `orig` - * but with all dynamically-allocated buffers duplicated in new buffers. - */ - public TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ clone() { - long ret = bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_clone(this.ptr); - GC.KeepAlive(this); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_hu_conv = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; - return ret_hu_conv; - } - - /** - * Creates a new C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ from the contained elements. - */ - public static TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ of(byte[] a, org.ldk.structs.Option_ThirtyTwoBytesZ b) { - long ret = bindings.C2Tuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 32)), b.ptr); - GC.KeepAlive(a); - GC.KeepAlive(b); - if (ret >= 0 && ret <= 4096) { return null; } - TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ ret_hu_conv = new TwoTuple_ThirtyTwoBytesCOption_ThirtyTwoBytesZZ(null, ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(b); }; - return ret_hu_conv; - } - -} -} } } diff --git a/c_sharp/src/org/ldk/structs/TwoTuple__u832u16Z.cs b/c_sharp/src/org/ldk/structs/TwoTuple__u832u16Z.cs new file mode 100644 index 00000000..1c1598e7 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/TwoTuple__u832u16Z.cs @@ -0,0 +1,71 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + + +/** + * A Tuple + */ +public class TwoTuple__u832u16Z : CommonBase { + internal TwoTuple__u832u16Z(object _dummy, long ptr) : base(ptr) { } + ~TwoTuple__u832u16Z() { + if (ptr != 0) { bindings.C2Tuple__u832u16Z_free(ptr); } + } + + /** + * + */ + public byte[] get_a() { + long ret = bindings.C2Tuple__u832u16Z_get_a(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * + */ + public short get_b() { + short ret = bindings.C2Tuple__u832u16Z_get_b(this.ptr); + GC.KeepAlive(this); + return ret; + } + + internal long clone_ptr() { + long ret = bindings.C2Tuple__u832u16Z_clone_ptr(this.ptr); + GC.KeepAlive(this); + return ret; + } + + /** + * Creates a new tuple which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public TwoTuple__u832u16Z clone() { + long ret = bindings.C2Tuple__u832u16Z_clone(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple__u832u16Z ret_hu_conv = new TwoTuple__u832u16Z(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * Creates a new C2Tuple__u832u16Z from the contained elements. + */ + public static TwoTuple__u832u16Z of(byte[] a, short b) { + long ret = bindings.C2Tuple__u832u16Z_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(a, 32)), b); + GC.KeepAlive(a); + GC.KeepAlive(b); + if (ret >= 0 && ret <= 4096) { return null; } + TwoTuple__u832u16Z ret_hu_conv = new TwoTuple__u832u16Z(null, ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + return ret_hu_conv; + } + +} +} } } diff --git a/c_sharp/src/org/ldk/structs/TxAbort.cs b/c_sharp/src/org/ldk/structs/TxAbort.cs index 24502ba3..47f24a72 100644 --- a/c_sharp/src/org/ldk/structs/TxAbort.cs +++ b/c_sharp/src/org/ldk/structs/TxAbort.cs @@ -88,6 +88,18 @@ public class TxAbort : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxAbort. + */ + public long hash() { + long ret = bindings.TxAbort_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxAborts contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxAckRbf.cs b/c_sharp/src/org/ldk/structs/TxAckRbf.cs index 970a5334..43dec5a5 100644 --- a/c_sharp/src/org/ldk/structs/TxAckRbf.cs +++ b/c_sharp/src/org/ldk/structs/TxAckRbf.cs @@ -92,6 +92,18 @@ public class TxAckRbf : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxAckRbf. + */ + public long hash() { + long ret = bindings.TxAckRbf_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxAckRbfs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxAddInput.cs b/c_sharp/src/org/ldk/structs/TxAddInput.cs index 8bc30bba..338a04a7 100644 --- a/c_sharp/src/org/ldk/structs/TxAddInput.cs +++ b/c_sharp/src/org/ldk/structs/TxAddInput.cs @@ -150,6 +150,18 @@ public class TxAddInput : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxAddInput. + */ + public long hash() { + long ret = bindings.TxAddInput_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxAddInputs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxAddOutput.cs b/c_sharp/src/org/ldk/structs/TxAddOutput.cs index be541edb..01d0d947 100644 --- a/c_sharp/src/org/ldk/structs/TxAddOutput.cs +++ b/c_sharp/src/org/ldk/structs/TxAddOutput.cs @@ -126,6 +126,18 @@ public class TxAddOutput : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxAddOutput. + */ + public long hash() { + long ret = bindings.TxAddOutput_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxAddOutputs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxComplete.cs b/c_sharp/src/org/ldk/structs/TxComplete.cs index bcd8814c..783ef555 100644 --- a/c_sharp/src/org/ldk/structs/TxComplete.cs +++ b/c_sharp/src/org/ldk/structs/TxComplete.cs @@ -66,6 +66,18 @@ public class TxComplete : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxComplete. + */ + public long hash() { + long ret = bindings.TxComplete_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxCompletes contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxCreationKeys.cs b/c_sharp/src/org/ldk/structs/TxCreationKeys.cs index ba7ab4e1..58b6f6ab 100644 --- a/c_sharp/src/org/ldk/structs/TxCreationKeys.cs +++ b/c_sharp/src/org/ldk/structs/TxCreationKeys.cs @@ -50,12 +50,13 @@ public class TxCreationKeys : CommonBase { * transaction to provide their counterparty the ability to punish them if they broadcast * an old state. */ - public byte[] get_revocation_key() { + public RevocationKey get_revocation_key() { long ret = bindings.TxCreationKeys_get_revocation_key(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.RevocationKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.RevocationKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** @@ -63,77 +64,84 @@ public class TxCreationKeys : CommonBase { * transaction to provide their counterparty the ability to punish them if they broadcast * an old state. */ - public void set_revocation_key(byte[] val) { - bindings.TxCreationKeys_set_revocation_key(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_revocation_key(org.ldk.structs.RevocationKey val) { + bindings.TxCreationKeys_set_revocation_key(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * Broadcaster's HTLC Key */ - public byte[] get_broadcaster_htlc_key() { + public HtlcKey get_broadcaster_htlc_key() { long ret = bindings.TxCreationKeys_get_broadcaster_htlc_key(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** * Broadcaster's HTLC Key */ - public void set_broadcaster_htlc_key(byte[] val) { - bindings.TxCreationKeys_set_broadcaster_htlc_key(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_broadcaster_htlc_key(org.ldk.structs.HtlcKey val) { + bindings.TxCreationKeys_set_broadcaster_htlc_key(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * Countersignatory's HTLC Key */ - public byte[] get_countersignatory_htlc_key() { + public HtlcKey get_countersignatory_htlc_key() { long ret = bindings.TxCreationKeys_get_countersignatory_htlc_key(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.HtlcKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.HtlcKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** * Countersignatory's HTLC Key */ - public void set_countersignatory_htlc_key(byte[] val) { - bindings.TxCreationKeys_set_countersignatory_htlc_key(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_countersignatory_htlc_key(org.ldk.structs.HtlcKey val) { + bindings.TxCreationKeys_set_countersignatory_htlc_key(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * Broadcaster's Payment Key (which isn't allowed to be spent from for some delay) */ - public byte[] get_broadcaster_delayed_payment_key() { + public DelayedPaymentKey get_broadcaster_delayed_payment_key() { long ret = bindings.TxCreationKeys_get_broadcaster_delayed_payment_key(this.ptr); GC.KeepAlive(this); if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; + org.ldk.structs.DelayedPaymentKey ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.DelayedPaymentKey(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; } /** * Broadcaster's Payment Key (which isn't allowed to be spent from for some delay) */ - public void set_broadcaster_delayed_payment_key(byte[] val) { - bindings.TxCreationKeys_set_broadcaster_delayed_payment_key(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + public void set_broadcaster_delayed_payment_key(org.ldk.structs.DelayedPaymentKey val) { + bindings.TxCreationKeys_set_broadcaster_delayed_payment_key(this.ptr, val == null ? 0 : val.ptr); GC.KeepAlive(this); GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; } /** * Constructs a new TxCreationKeys given each field */ - public static TxCreationKeys of(byte[] per_commitment_point_arg, byte[] revocation_key_arg, byte[] broadcaster_htlc_key_arg, byte[] countersignatory_htlc_key_arg, byte[] broadcaster_delayed_payment_key_arg) { - long ret = bindings.TxCreationKeys_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(revocation_key_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_htlc_key_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(countersignatory_htlc_key_arg, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_delayed_payment_key_arg, 33))); + public static TxCreationKeys of(byte[] per_commitment_point_arg, org.ldk.structs.RevocationKey revocation_key_arg, org.ldk.structs.HtlcKey broadcaster_htlc_key_arg, org.ldk.structs.HtlcKey countersignatory_htlc_key_arg, org.ldk.structs.DelayedPaymentKey broadcaster_delayed_payment_key_arg) { + long ret = bindings.TxCreationKeys_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point_arg, 33)), revocation_key_arg == null ? 0 : revocation_key_arg.ptr, broadcaster_htlc_key_arg == null ? 0 : broadcaster_htlc_key_arg.ptr, countersignatory_htlc_key_arg == null ? 0 : countersignatory_htlc_key_arg.ptr, broadcaster_delayed_payment_key_arg == null ? 0 : broadcaster_delayed_payment_key_arg.ptr); GC.KeepAlive(per_commitment_point_arg); GC.KeepAlive(revocation_key_arg); GC.KeepAlive(broadcaster_htlc_key_arg); @@ -142,6 +150,10 @@ public class TxCreationKeys : CommonBase { if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.TxCreationKeys ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.TxCreationKeys(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(revocation_key_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(broadcaster_htlc_key_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_htlc_key_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(broadcaster_delayed_payment_key_arg); }; return ret_hu_conv; } @@ -206,8 +218,8 @@ public class TxCreationKeys : CommonBase { * Create per-state keys from channel base points and the per-commitment point. * Key set is asymmetric and can't be used as part of counter-signatory set of transactions. */ - public static TxCreationKeys derive_new(byte[] per_commitment_point, byte[] broadcaster_delayed_payment_base, byte[] broadcaster_htlc_base, byte[] countersignatory_revocation_base, byte[] countersignatory_htlc_base) { - long ret = bindings.TxCreationKeys_derive_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_delayed_payment_base, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_htlc_base, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(countersignatory_revocation_base, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(countersignatory_htlc_base, 33))); + public static TxCreationKeys derive_new(byte[] per_commitment_point, org.ldk.structs.DelayedPaymentBasepoint broadcaster_delayed_payment_base, org.ldk.structs.HtlcBasepoint broadcaster_htlc_base, org.ldk.structs.RevocationBasepoint countersignatory_revocation_base, org.ldk.structs.HtlcBasepoint countersignatory_htlc_base) { + long ret = bindings.TxCreationKeys_derive_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33)), broadcaster_delayed_payment_base == null ? 0 : broadcaster_delayed_payment_base.ptr, broadcaster_htlc_base == null ? 0 : broadcaster_htlc_base.ptr, countersignatory_revocation_base == null ? 0 : countersignatory_revocation_base.ptr, countersignatory_htlc_base == null ? 0 : countersignatory_htlc_base.ptr); GC.KeepAlive(per_commitment_point); GC.KeepAlive(broadcaster_delayed_payment_base); GC.KeepAlive(broadcaster_htlc_base); @@ -216,6 +228,10 @@ public class TxCreationKeys : CommonBase { if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.TxCreationKeys ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.TxCreationKeys(null, ret); } if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(broadcaster_delayed_payment_base); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(broadcaster_htlc_base); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_revocation_base); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(countersignatory_htlc_base); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/TxInitRbf.cs b/c_sharp/src/org/ldk/structs/TxInitRbf.cs index 35e50a7a..7e930f3e 100644 --- a/c_sharp/src/org/ldk/structs/TxInitRbf.cs +++ b/c_sharp/src/org/ldk/structs/TxInitRbf.cs @@ -130,6 +130,18 @@ public class TxInitRbf : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxInitRbf. + */ + public long hash() { + long ret = bindings.TxInitRbf_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxInitRbfs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxRemoveInput.cs b/c_sharp/src/org/ldk/structs/TxRemoveInput.cs index 3ee52bdc..18d4b550 100644 --- a/c_sharp/src/org/ldk/structs/TxRemoveInput.cs +++ b/c_sharp/src/org/ldk/structs/TxRemoveInput.cs @@ -84,6 +84,18 @@ public class TxRemoveInput : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxRemoveInput. + */ + public long hash() { + long ret = bindings.TxRemoveInput_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxRemoveInputs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxRemoveOutput.cs b/c_sharp/src/org/ldk/structs/TxRemoveOutput.cs index e229b274..b5d15bf6 100644 --- a/c_sharp/src/org/ldk/structs/TxRemoveOutput.cs +++ b/c_sharp/src/org/ldk/structs/TxRemoveOutput.cs @@ -84,6 +84,18 @@ public class TxRemoveOutput : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxRemoveOutput. + */ + public long hash() { + long ret = bindings.TxRemoveOutput_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxRemoveOutputs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/TxSignatures.cs b/c_sharp/src/org/ldk/structs/TxSignatures.cs index 246ee29b..43a52410 100644 --- a/c_sharp/src/org/ldk/structs/TxSignatures.cs +++ b/c_sharp/src/org/ldk/structs/TxSignatures.cs @@ -117,6 +117,18 @@ public class TxSignatures : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the TxSignatures. + */ + public long hash() { + long ret = bindings.TxSignatures_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two TxSignaturess contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UnsignedChannelAnnouncement.cs b/c_sharp/src/org/ldk/structs/UnsignedChannelAnnouncement.cs index 8c188005..98303e3b 100644 --- a/c_sharp/src/org/ldk/structs/UnsignedChannelAnnouncement.cs +++ b/c_sharp/src/org/ldk/structs/UnsignedChannelAnnouncement.cs @@ -235,6 +235,18 @@ public class UnsignedChannelAnnouncement : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UnsignedChannelAnnouncement. + */ + public long hash() { + long ret = bindings.UnsignedChannelAnnouncement_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UnsignedChannelAnnouncements contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UnsignedChannelUpdate.cs b/c_sharp/src/org/ldk/structs/UnsignedChannelUpdate.cs index c9ce5772..48dd7bd2 100644 --- a/c_sharp/src/org/ldk/structs/UnsignedChannelUpdate.cs +++ b/c_sharp/src/org/ldk/structs/UnsignedChannelUpdate.cs @@ -266,6 +266,18 @@ public class UnsignedChannelUpdate : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UnsignedChannelUpdate. + */ + public long hash() { + long ret = bindings.UnsignedChannelUpdate_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UnsignedChannelUpdates contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UnsignedNodeAnnouncement.cs b/c_sharp/src/org/ldk/structs/UnsignedNodeAnnouncement.cs index 5d5efc12..c2ed14b3 100644 --- a/c_sharp/src/org/ldk/structs/UnsignedNodeAnnouncement.cs +++ b/c_sharp/src/org/ldk/structs/UnsignedNodeAnnouncement.cs @@ -176,6 +176,18 @@ public class UnsignedNodeAnnouncement : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UnsignedNodeAnnouncement. + */ + public long hash() { + long ret = bindings.UnsignedNodeAnnouncement_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UnsignedNodeAnnouncements contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UntrustedString.cs b/c_sharp/src/org/ldk/structs/UntrustedString.cs index 72ba3985..e2d65378 100644 --- a/c_sharp/src/org/ldk/structs/UntrustedString.cs +++ b/c_sharp/src/org/ldk/structs/UntrustedString.cs @@ -76,6 +76,18 @@ public class UntrustedString : CommonBase { if (!(o is UntrustedString)) return false; return this.eq((UntrustedString)o); } + /** + * Generates a non-cryptographic 64-bit hash of the UntrustedString. + */ + public long hash() { + long ret = bindings.UntrustedString_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Serialize the UntrustedString object into a byte array which can be read by UntrustedString_read */ diff --git a/c_sharp/src/org/ldk/structs/UpdateAddHTLC.cs b/c_sharp/src/org/ldk/structs/UpdateAddHTLC.cs index f108706c..343346eb 100644 --- a/c_sharp/src/org/ldk/structs/UpdateAddHTLC.cs +++ b/c_sharp/src/org/ldk/structs/UpdateAddHTLC.cs @@ -139,6 +139,77 @@ public class UpdateAddHTLC : CommonBase { if (this != null) { this.ptrs_to.AddLast(val); }; } + /** + * The onion routing packet with encrypted data for the next hop. + */ + public OnionPacket get_onion_routing_packet() { + long ret = bindings.UpdateAddHTLC_get_onion_routing_packet(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.OnionPacket ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.OnionPacket(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); }; + return ret_hu_conv; + } + + /** + * The onion routing packet with encrypted data for the next hop. + */ + public void set_onion_routing_packet(org.ldk.structs.OnionPacket val) { + bindings.UpdateAddHTLC_set_onion_routing_packet(this.ptr, val == null ? 0 : val.ptr); + GC.KeepAlive(this); + GC.KeepAlive(val); + if (this != null) { this.ptrs_to.AddLast(val); }; + } + + /** + * Provided if we are relaying or receiving a payment within a blinded path, to decrypt the onion + * routing packet and the recipient-provided encrypted payload within. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public byte[] get_blinding_point() { + long ret = bindings.UpdateAddHTLC_get_blinding_point(this.ptr); + GC.KeepAlive(this); + if (ret >= 0 && ret <= 4096) { return null; } + byte[] ret_conv = InternalUtils.decodeUint8Array(ret); + return ret_conv; + } + + /** + * Provided if we are relaying or receiving a payment within a blinded path, to decrypt the onion + * routing packet and the recipient-provided encrypted payload within. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public void set_blinding_point(byte[] val) { + bindings.UpdateAddHTLC_set_blinding_point(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 33))); + GC.KeepAlive(this); + GC.KeepAlive(val); + } + + /** + * Constructs a new UpdateAddHTLC given each field + * + * Note that blinding_point_arg (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public static UpdateAddHTLC of(byte[] channel_id_arg, long htlc_id_arg, long amount_msat_arg, byte[] payment_hash_arg, int cltv_expiry_arg, org.ldk.structs.Option_u64Z skimmed_fee_msat_arg, org.ldk.structs.OnionPacket onion_routing_packet_arg, byte[] blinding_point_arg) { + long ret = bindings.UpdateAddHTLC_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(channel_id_arg, 32)), htlc_id_arg, amount_msat_arg, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_hash_arg, 32)), cltv_expiry_arg, skimmed_fee_msat_arg.ptr, onion_routing_packet_arg == null ? 0 : onion_routing_packet_arg.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(blinding_point_arg, 33))); + GC.KeepAlive(channel_id_arg); + GC.KeepAlive(htlc_id_arg); + GC.KeepAlive(amount_msat_arg); + GC.KeepAlive(payment_hash_arg); + GC.KeepAlive(cltv_expiry_arg); + GC.KeepAlive(skimmed_fee_msat_arg); + GC.KeepAlive(onion_routing_packet_arg); + GC.KeepAlive(blinding_point_arg); + if (ret >= 0 && ret <= 4096) { return null; } + org.ldk.structs.UpdateAddHTLC ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.UpdateAddHTLC(null, ret); } + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(skimmed_fee_msat_arg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(onion_routing_packet_arg); }; + return ret_hu_conv; + } + internal long clone_ptr() { long ret = bindings.UpdateAddHTLC_clone_ptr(this.ptr); GC.KeepAlive(this); @@ -157,6 +228,18 @@ public class UpdateAddHTLC : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UpdateAddHTLC. + */ + public long hash() { + long ret = bindings.UpdateAddHTLC_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UpdateAddHTLCs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UpdateFailHTLC.cs b/c_sharp/src/org/ldk/structs/UpdateFailHTLC.cs index 78ff71d3..e4ba1496 100644 --- a/c_sharp/src/org/ldk/structs/UpdateFailHTLC.cs +++ b/c_sharp/src/org/ldk/structs/UpdateFailHTLC.cs @@ -73,6 +73,18 @@ public class UpdateFailHTLC : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UpdateFailHTLC. + */ + public long hash() { + long ret = bindings.UpdateFailHTLC_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UpdateFailHTLCs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UpdateFailMalformedHTLC.cs b/c_sharp/src/org/ldk/structs/UpdateFailMalformedHTLC.cs index 8d83b646..8d26d464 100644 --- a/c_sharp/src/org/ldk/structs/UpdateFailMalformedHTLC.cs +++ b/c_sharp/src/org/ldk/structs/UpdateFailMalformedHTLC.cs @@ -91,6 +91,18 @@ public class UpdateFailMalformedHTLC : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UpdateFailMalformedHTLC. + */ + public long hash() { + long ret = bindings.UpdateFailMalformedHTLC_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UpdateFailMalformedHTLCs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UpdateFee.cs b/c_sharp/src/org/ldk/structs/UpdateFee.cs index c90ea37c..90b0817a 100644 --- a/c_sharp/src/org/ldk/structs/UpdateFee.cs +++ b/c_sharp/src/org/ldk/structs/UpdateFee.cs @@ -86,6 +86,18 @@ public class UpdateFee : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UpdateFee. + */ + public long hash() { + long ret = bindings.UpdateFee_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UpdateFees contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UpdateFulfillHTLC.cs b/c_sharp/src/org/ldk/structs/UpdateFulfillHTLC.cs index 4177127e..d7c10a6b 100644 --- a/c_sharp/src/org/ldk/structs/UpdateFulfillHTLC.cs +++ b/c_sharp/src/org/ldk/structs/UpdateFulfillHTLC.cs @@ -107,6 +107,18 @@ public class UpdateFulfillHTLC : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the UpdateFulfillHTLC. + */ + public long hash() { + long ret = bindings.UpdateFulfillHTLC_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two UpdateFulfillHTLCs contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/UtilMethods.cs b/c_sharp/src/org/ldk/structs/UtilMethods.cs index 6e47ecc6..0ef6dd44 100644 --- a/c_sharp/src/org/ldk/structs/UtilMethods.cs +++ b/c_sharp/src/org/ldk/structs/UtilMethods.cs @@ -147,6 +147,33 @@ public class UtilMethods { return ret_hu_conv; } + /** + * Peel one layer off an incoming onion, returning a [`PendingHTLCInfo`] that contains information + * about the intended next-hop for the HTLC. + * + * This does all the relevant context-free checks that LDK requires for payment relay or + * acceptance. If the payment is to be received, and the amount matches the expected amount for + * a given invoice, this indicates the [`msgs::UpdateAddHTLC`], once fully committed in the + * channel, will generate an [`Event::PaymentClaimable`]. + * + * [`Event::PaymentClaimable`]: crate::events::Event::PaymentClaimable + */ + public static Result_PendingHTLCInfoInboundHTLCErrZ peel_payment_onion(org.ldk.structs.UpdateAddHTLC msg, org.ldk.structs.NodeSigner node_signer, org.ldk.structs.Logger logger, int cur_height, bool accept_mpp_keysend, bool allow_skimmed_fees) { + long ret = bindings.peel_payment_onion(msg == null ? 0 : msg.ptr, node_signer.ptr, logger.ptr, cur_height, accept_mpp_keysend, allow_skimmed_fees); + GC.KeepAlive(msg); + GC.KeepAlive(node_signer); + GC.KeepAlive(logger); + GC.KeepAlive(cur_height); + GC.KeepAlive(accept_mpp_keysend); + GC.KeepAlive(allow_skimmed_fees); + if (ret >= 0 && ret <= 4096) { return null; } + Result_PendingHTLCInfoInboundHTLCErrZ ret_hu_conv = Result_PendingHTLCInfoInboundHTLCErrZ.constr_from_ptr(ret); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(msg); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(node_signer); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(logger); }; + return ret_hu_conv; + } + /** * Fetches the set of [`InitFeatures`] flags that are provided by or required by * [`ChannelManager`]. @@ -338,20 +365,6 @@ public class UtilMethods { return ret_conv; } - /** - * Derives a per-commitment-transaction public key (eg an htlc key or a delayed_payment key) - * from the base point and the per_commitment_key. This is the public equivalent of - * derive_private_key - using only public keys to derive a public key instead of private keys. - */ - public static byte[] derive_public_key(byte[] per_commitment_point, byte[] base_point) { - long ret = bindings.derive_public_key(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(base_point, 33))); - GC.KeepAlive(per_commitment_point); - GC.KeepAlive(base_point); - if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; - } - /** * Derives a per-commitment-transaction revocation key from its constituent parts. * @@ -369,35 +382,13 @@ public class UtilMethods { return ret_conv; } - /** - * Derives a per-commitment-transaction revocation public key from its constituent parts. This is - * the public equivalend of derive_private_revocation_key - using only public keys to derive a - * public key instead of private keys. - * - * Only the cheating participant owns a valid witness to propagate a revoked - * commitment transaction, thus per_commitment_point always come from cheater - * and revocation_base_point always come from punisher, which is the broadcaster - * of the transaction spending with this key knowledge. - * - * Note that this is infallible iff we trust that at least one of the two input keys are randomly - * generated (ie our own). - */ - public static byte[] derive_public_revocation_key(byte[] per_commitment_point, byte[] countersignatory_revocation_base_point) { - long ret = bindings.derive_public_revocation_key(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(per_commitment_point, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(countersignatory_revocation_base_point, 33))); - GC.KeepAlive(per_commitment_point); - GC.KeepAlive(countersignatory_revocation_base_point); - if (ret >= 0 && ret <= 4096) { return null; } - byte[] ret_conv = InternalUtils.decodeUint8Array(ret); - return ret_conv; - } - /** * A script either spendable by the revocation * key or the broadcaster_delayed_payment_key and satisfying the relative-locktime OP_CSV constrain. * Encumbering a `to_holder` output on a commitment transaction or 2nd-stage HTLC transactions. */ - public static byte[] get_revokeable_redeemscript(byte[] revocation_key, short contest_delay, byte[] broadcaster_delayed_payment_key) { - long ret = bindings.get_revokeable_redeemscript(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(revocation_key, 33)), contest_delay, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_delayed_payment_key, 33))); + public static byte[] get_revokeable_redeemscript(org.ldk.structs.RevocationKey revocation_key, short contest_delay, org.ldk.structs.DelayedPaymentKey broadcaster_delayed_payment_key) { + long ret = bindings.get_revokeable_redeemscript(revocation_key == null ? 0 : revocation_key.ptr, contest_delay, broadcaster_delayed_payment_key == null ? 0 : broadcaster_delayed_payment_key.ptr); GC.KeepAlive(revocation_key); GC.KeepAlive(contest_delay); GC.KeepAlive(broadcaster_delayed_payment_key); @@ -455,8 +446,8 @@ public class UtilMethods { * Panics if htlc.transaction_output_index.is_none() (as such HTLCs do not appear in the * commitment transaction). */ - public static byte[] build_htlc_transaction(byte[] commitment_txid, int feerate_per_kw, short contest_delay, org.ldk.structs.HTLCOutputInCommitment htlc, org.ldk.structs.ChannelTypeFeatures channel_type_features, byte[] broadcaster_delayed_payment_key, byte[] revocation_key) { - long ret = bindings.build_htlc_transaction(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(commitment_txid, 32)), feerate_per_kw, contest_delay, htlc == null ? 0 : htlc.ptr, channel_type_features == null ? 0 : channel_type_features.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(broadcaster_delayed_payment_key, 33)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(revocation_key, 33))); + public static byte[] build_htlc_transaction(byte[] commitment_txid, int feerate_per_kw, short contest_delay, org.ldk.structs.HTLCOutputInCommitment htlc, org.ldk.structs.ChannelTypeFeatures channel_type_features, org.ldk.structs.DelayedPaymentKey broadcaster_delayed_payment_key, org.ldk.structs.RevocationKey revocation_key) { + long ret = bindings.build_htlc_transaction(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(commitment_txid, 32)), feerate_per_kw, contest_delay, htlc == null ? 0 : htlc.ptr, channel_type_features == null ? 0 : channel_type_features.ptr, broadcaster_delayed_payment_key == null ? 0 : broadcaster_delayed_payment_key.ptr, revocation_key == null ? 0 : revocation_key.ptr); GC.KeepAlive(commitment_txid); GC.KeepAlive(feerate_per_kw); GC.KeepAlive(contest_delay); @@ -668,7 +659,7 @@ public class UtilMethods { * * We do not enforce that outputs meet the dust limit or that any output scripts are standard. */ - public static Result_C2Tuple_CVec_u8ZusizeZNoneZ SpendableOutputDescriptor_create_spendable_outputs_psbt(SpendableOutputDescriptor[] descriptors, TxOut[] outputs, byte[] change_destination_script, int feerate_sat_per_1000_weight, org.ldk.structs.Option_u32Z locktime) { + public static Result_C2Tuple_CVec_u8Zu64ZNoneZ SpendableOutputDescriptor_create_spendable_outputs_psbt(SpendableOutputDescriptor[] descriptors, TxOut[] outputs, byte[] change_destination_script, int feerate_sat_per_1000_weight, org.ldk.structs.Option_u32Z locktime) { long ret = bindings.SpendableOutputDescriptor_create_spendable_outputs_psbt(InternalUtils.encodeUint64Array(InternalUtils.mapArray(descriptors, descriptors_conv_27 => descriptors_conv_27.ptr)), InternalUtils.encodeUint64Array(InternalUtils.mapArray(outputs, outputs_conv_7 => outputs_conv_7.ptr)), InternalUtils.encodeUint8Array(change_destination_script), feerate_sat_per_1000_weight, locktime.ptr); GC.KeepAlive(descriptors); GC.KeepAlive(outputs); @@ -676,7 +667,7 @@ public class UtilMethods { GC.KeepAlive(feerate_sat_per_1000_weight); GC.KeepAlive(locktime); if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_CVec_u8ZusizeZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8ZusizeZNoneZ.constr_from_ptr(ret); + Result_C2Tuple_CVec_u8Zu64ZNoneZ ret_hu_conv = Result_C2Tuple_CVec_u8Zu64ZNoneZ.constr_from_ptr(ret); foreach (SpendableOutputDescriptor descriptors_conv_27 in descriptors) { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(descriptors_conv_27); }; }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(locktime); }; return ret_hu_conv; @@ -686,11 +677,12 @@ public class UtilMethods { * Creates an [`OnionMessage`] with the given `contents` for sending to the destination of * `path`. * - * Returns both the node id of the peer to send the message to and the message itself. + * Returns the node id of the peer to send the message to, the message itself, and any addresses + * need to connect to the first node. * * Note that reply_path (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ create_onion_message(org.ldk.structs.EntropySource entropy_source, org.ldk.structs.NodeSigner node_signer, org.ldk.structs.OnionMessagePath path, org.ldk.structs.OnionMessageContents contents, org.ldk.structs.BlindedPath reply_path) { + public static Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ create_onion_message(org.ldk.structs.EntropySource entropy_source, org.ldk.structs.NodeSigner node_signer, org.ldk.structs.OnionMessagePath path, org.ldk.structs.OnionMessageContents contents, org.ldk.structs.BlindedPath reply_path) { long ret = bindings.create_onion_message(entropy_source.ptr, node_signer.ptr, path == null ? 0 : path.ptr, contents.ptr, reply_path == null ? 0 : reply_path.ptr); GC.KeepAlive(entropy_source); GC.KeepAlive(node_signer); @@ -698,7 +690,7 @@ public class UtilMethods { GC.KeepAlive(contents); GC.KeepAlive(reply_path); if (ret >= 0 && ret <= 4096) { return null; } - Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ ret_hu_conv = Result_C2Tuple_PublicKeyOnionMessageZSendErrorZ.constr_from_ptr(ret); + Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ ret_hu_conv = Result_C3Tuple_PublicKeyOnionMessageCOption_CVec_SocketAddressZZZSendErrorZ.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(entropy_source); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(node_signer); }; if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(path); }; @@ -752,6 +744,31 @@ public class UtilMethods { return ret_hu_conv; } + /** + * Create a blinded path for a payment, to be forwarded along `intermediate_nodes`. + * + * Errors if: + * a provided node id is invalid + * [`BlindedPayInfo`] calculation results in an integer overflow + * any unknown features are required in the provided [`ForwardTlvs`] + * + * [`ForwardTlvs`]: crate::blinded_path::payment::ForwardTlvs + */ + public static Result_C2Tuple_BlindedPayInfoBlindedPathZNoneZ BlindedPath_new_for_payment(ForwardNode[] intermediate_nodes, byte[] payee_node_id, org.ldk.structs.ReceiveTlvs payee_tlvs, long htlc_maximum_msat, org.ldk.structs.EntropySource entropy_source) { + long ret = bindings.BlindedPath_new_for_payment(InternalUtils.encodeUint64Array(InternalUtils.mapArray(intermediate_nodes, intermediate_nodes_conv_13 => intermediate_nodes_conv_13 == null ? 0 : intermediate_nodes_conv_13.ptr)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payee_node_id, 33)), payee_tlvs == null ? 0 : payee_tlvs.ptr, htlc_maximum_msat, entropy_source.ptr); + GC.KeepAlive(intermediate_nodes); + GC.KeepAlive(payee_node_id); + GC.KeepAlive(payee_tlvs); + GC.KeepAlive(htlc_maximum_msat); + GC.KeepAlive(entropy_source); + if (ret >= 0 && ret <= 4096) { return null; } + Result_C2Tuple_BlindedPayInfoBlindedPathZNoneZ ret_hu_conv = Result_C2Tuple_BlindedPayInfoBlindedPathZNoneZ.constr_from_ptr(ret); + foreach (ForwardNode intermediate_nodes_conv_13 in intermediate_nodes) { if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(intermediate_nodes_conv_13); }; }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(payee_tlvs); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(entropy_source); }; + return ret_hu_conv; + } + /** * Read a PathFailure from a byte array, created by PathFailure_write */ @@ -797,141 +814,48 @@ public class UtilMethods { } /** - * Pays the given [`Bolt11Invoice`], retrying if needed based on [`Retry`]. - * - * [`Bolt11Invoice::payment_hash`] is used as the [`PaymentId`], which ensures idempotency as long - * as the payment is still pending. If the payment succeeds, you must ensure that a second payment - * with the same [`PaymentHash`] is never sent. - * - * If you wish to use a different payment idempotency token, see [`pay_invoice_with_id`]. - */ - public static Result_ThirtyTwoBytesPaymentErrorZ pay_invoice(org.ldk.structs.Bolt11Invoice invoice, org.ldk.structs.Retry retry_strategy, org.ldk.structs.ChannelManager channelmanager) { - long ret = bindings.pay_invoice(invoice == null ? 0 : invoice.ptr, retry_strategy.ptr, channelmanager == null ? 0 : channelmanager.ptr); - GC.KeepAlive(invoice); - GC.KeepAlive(retry_strategy); - GC.KeepAlive(channelmanager); - if (ret >= 0 && ret <= 4096) { return null; } - Result_ThirtyTwoBytesPaymentErrorZ ret_hu_conv = Result_ThirtyTwoBytesPaymentErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(retry_strategy); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; - return ret_hu_conv; - } - - /** - * Pays the given [`Bolt11Invoice`] with a custom idempotency key, retrying if needed based on - * [`Retry`]. + * Builds the necessary parameters to pay or pre-flight probe the given zero-amount + * [`Bolt11Invoice`] using [`ChannelManager::send_payment`] or + * [`ChannelManager::send_preflight_probes`]. * - * Note that idempotency is only guaranteed as long as the payment is still pending. Once the - * payment completes or fails, no idempotency guarantees are made. + * Prior to paying, you must ensure that the [`Bolt11Invoice::payment_hash`] is unique and the + * same [`PaymentHash`] has never been paid before. * - * You should ensure that the [`Bolt11Invoice::payment_hash`] is unique and the same - * [`PaymentHash`] has never been paid before. + * Will always succeed unless the invoice has an amount specified, in which case + * [`payment_parameters_from_invoice`] should be used. * - * See [`pay_invoice`] for a variant which uses the [`PaymentHash`] for the idempotency token. + * [`ChannelManager::send_payment`]: lightning::ln::channelmanager::ChannelManager::send_payment + * [`ChannelManager::send_preflight_probes`]: lightning::ln::channelmanager::ChannelManager::send_preflight_probes */ - public static Result_NonePaymentErrorZ pay_invoice_with_id(org.ldk.structs.Bolt11Invoice invoice, byte[] payment_id, org.ldk.structs.Retry retry_strategy, org.ldk.structs.ChannelManager channelmanager) { - long ret = bindings.pay_invoice_with_id(invoice == null ? 0 : invoice.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)), retry_strategy.ptr, channelmanager == null ? 0 : channelmanager.ptr); + public static Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ payment_parameters_from_zero_amount_invoice(org.ldk.structs.Bolt11Invoice invoice, long amount_msat) { + long ret = bindings.payment_parameters_from_zero_amount_invoice(invoice == null ? 0 : invoice.ptr, amount_msat); GC.KeepAlive(invoice); - GC.KeepAlive(payment_id); - GC.KeepAlive(retry_strategy); - GC.KeepAlive(channelmanager); - if (ret >= 0 && ret <= 4096) { return null; } - Result_NonePaymentErrorZ ret_hu_conv = Result_NonePaymentErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(retry_strategy); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; - return ret_hu_conv; - } - - /** - * Pays the given zero-value [`Bolt11Invoice`] using the given amount, retrying if needed based on - * [`Retry`]. - * - * [`Bolt11Invoice::payment_hash`] is used as the [`PaymentId`], which ensures idempotency as long - * as the payment is still pending. If the payment succeeds, you must ensure that a second payment - * with the same [`PaymentHash`] is never sent. - * - * If you wish to use a different payment idempotency token, see - * [`pay_zero_value_invoice_with_id`]. - */ - public static Result_ThirtyTwoBytesPaymentErrorZ pay_zero_value_invoice(org.ldk.structs.Bolt11Invoice invoice, long amount_msats, org.ldk.structs.Retry retry_strategy, org.ldk.structs.ChannelManager channelmanager) { - long ret = bindings.pay_zero_value_invoice(invoice == null ? 0 : invoice.ptr, amount_msats, retry_strategy.ptr, channelmanager == null ? 0 : channelmanager.ptr); - GC.KeepAlive(invoice); - GC.KeepAlive(amount_msats); - GC.KeepAlive(retry_strategy); - GC.KeepAlive(channelmanager); + GC.KeepAlive(amount_msat); if (ret >= 0 && ret <= 4096) { return null; } - Result_ThirtyTwoBytesPaymentErrorZ ret_hu_conv = Result_ThirtyTwoBytesPaymentErrorZ.constr_from_ptr(ret); + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ret_hu_conv = Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(retry_strategy); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; return ret_hu_conv; } /** - * Pays the given zero-value [`Bolt11Invoice`] using the given amount and custom idempotency key, - * retrying if needed based on [`Retry`]. + * Builds the necessary parameters to pay or pre-flight probe the given [`Bolt11Invoice`] using + * [`ChannelManager::send_payment`] or [`ChannelManager::send_preflight_probes`]. * - * Note that idempotency is only guaranteed as long as the payment is still pending. Once the - * payment completes or fails, no idempotency guarantees are made. + * Prior to paying, you must ensure that the [`Bolt11Invoice::payment_hash`] is unique and the + * same [`PaymentHash`] has never been paid before. * - * You should ensure that the [`Bolt11Invoice::payment_hash`] is unique and the same - * [`PaymentHash`] has never been paid before. + * Will always succeed unless the invoice has no amount specified, in which case + * [`payment_parameters_from_zero_amount_invoice`] should be used. * - * See [`pay_zero_value_invoice`] for a variant which uses the [`PaymentHash`] for the - * idempotency token. + * [`ChannelManager::send_payment`]: lightning::ln::channelmanager::ChannelManager::send_payment + * [`ChannelManager::send_preflight_probes`]: lightning::ln::channelmanager::ChannelManager::send_preflight_probes */ - public static Result_NonePaymentErrorZ pay_zero_value_invoice_with_id(org.ldk.structs.Bolt11Invoice invoice, long amount_msats, byte[] payment_id, org.ldk.structs.Retry retry_strategy, org.ldk.structs.ChannelManager channelmanager) { - long ret = bindings.pay_zero_value_invoice_with_id(invoice == null ? 0 : invoice.ptr, amount_msats, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(payment_id, 32)), retry_strategy.ptr, channelmanager == null ? 0 : channelmanager.ptr); + public static Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ payment_parameters_from_invoice(org.ldk.structs.Bolt11Invoice invoice) { + long ret = bindings.payment_parameters_from_invoice(invoice == null ? 0 : invoice.ptr); GC.KeepAlive(invoice); - GC.KeepAlive(amount_msats); - GC.KeepAlive(payment_id); - GC.KeepAlive(retry_strategy); - GC.KeepAlive(channelmanager); if (ret >= 0 && ret <= 4096) { return null; } - Result_NonePaymentErrorZ ret_hu_conv = Result_NonePaymentErrorZ.constr_from_ptr(ret); + Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ ret_hu_conv = Result_C3Tuple_ThirtyTwoBytesRecipientOnionFieldsRouteParametersZNoneZ.constr_from_ptr(ret); if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(retry_strategy); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; - return ret_hu_conv; - } - - /** - * Sends payment probes over all paths of a route that would be used to pay the given invoice. - * - * See [`ChannelManager::send_preflight_probes`] for more information. - */ - public static Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ preflight_probe_invoice(org.ldk.structs.Bolt11Invoice invoice, org.ldk.structs.ChannelManager channelmanager, org.ldk.structs.Option_u64Z liquidity_limit_multiplier) { - long ret = bindings.preflight_probe_invoice(invoice == null ? 0 : invoice.ptr, channelmanager == null ? 0 : channelmanager.ptr, liquidity_limit_multiplier.ptr); - GC.KeepAlive(invoice); - GC.KeepAlive(channelmanager); - GC.KeepAlive(liquidity_limit_multiplier); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ret_hu_conv = Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(liquidity_limit_multiplier); }; - return ret_hu_conv; - } - - /** - * Sends payment probes over all paths of a route that would be used to pay the given zero-value - * invoice using the given amount. - * - * See [`ChannelManager::send_preflight_probes`] for more information. - */ - public static Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ preflight_probe_zero_value_invoice(org.ldk.structs.Bolt11Invoice invoice, long amount_msat, org.ldk.structs.ChannelManager channelmanager, org.ldk.structs.Option_u64Z liquidity_limit_multiplier) { - long ret = bindings.preflight_probe_zero_value_invoice(invoice == null ? 0 : invoice.ptr, amount_msat, channelmanager == null ? 0 : channelmanager.ptr, liquidity_limit_multiplier.ptr); - GC.KeepAlive(invoice); - GC.KeepAlive(amount_msat); - GC.KeepAlive(channelmanager); - GC.KeepAlive(liquidity_limit_multiplier); - if (ret >= 0 && ret <= 4096) { return null; } - Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ ret_hu_conv = Result_CVec_C2Tuple_ThirtyTwoBytesThirtyTwoBytesZZProbingErrorZ.constr_from_ptr(ret); - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(invoice); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(channelmanager); }; - if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(liquidity_limit_multiplier); }; return ret_hu_conv; } diff --git a/c_sharp/src/org/ldk/structs/WalletSource.cs b/c_sharp/src/org/ldk/structs/WalletSource.cs index 7ad196ce..b8900e77 100644 --- a/c_sharp/src/org/ldk/structs/WalletSource.cs +++ b/c_sharp/src/org/ldk/structs/WalletSource.cs @@ -20,8 +20,11 @@ public interface WalletSourceInterface { /**Signs and provides the full [`TxIn::script_sig`] and [`TxIn::witness`] for all inputs within * the transaction known to the wallet (i.e., any provided via * [`WalletSource::list_confirmed_utxos`]). + * + * If your wallet does not support signing PSBTs you can call `psbt.extract_tx()` to get the + * unsigned transaction and then sign it with your wallet. */ - Result_TransactionNoneZ sign_tx(byte[] tx); + Result_TransactionNoneZ sign_psbt(byte[] psbt); } /** @@ -54,9 +57,9 @@ public class WalletSource : CommonBase { long result = ret == null ? 0 : ret.clone_ptr(); return result; } - public long sign_tx(long _tx) { - byte[] _tx_conv = InternalUtils.decodeUint8Array(_tx); - Result_TransactionNoneZ ret = arg.sign_tx(_tx_conv); + public long sign_psbt(long _psbt) { + byte[] _psbt_conv = InternalUtils.decodeUint8Array(_psbt); + Result_TransactionNoneZ ret = arg.sign_psbt(_psbt_conv); GC.KeepAlive(arg); long result = ret == null ? 0 : ret.clone_ptr(); return result; @@ -102,11 +105,14 @@ public class WalletSource : CommonBase { * Signs and provides the full [`TxIn::script_sig`] and [`TxIn::witness`] for all inputs within * the transaction known to the wallet (i.e., any provided via * [`WalletSource::list_confirmed_utxos`]). + * + * If your wallet does not support signing PSBTs you can call `psbt.extract_tx()` to get the + * unsigned transaction and then sign it with your wallet. */ - public Result_TransactionNoneZ sign_tx(byte[] tx) { - long ret = bindings.WalletSource_sign_tx(this.ptr, InternalUtils.encodeUint8Array(tx)); + public Result_TransactionNoneZ sign_psbt(byte[] psbt) { + long ret = bindings.WalletSource_sign_psbt(this.ptr, InternalUtils.encodeUint8Array(psbt)); GC.KeepAlive(this); - GC.KeepAlive(tx); + GC.KeepAlive(psbt); if (ret >= 0 && ret <= 4096) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; diff --git a/c_sharp/src/org/ldk/structs/WarningMessage.cs b/c_sharp/src/org/ldk/structs/WarningMessage.cs index b9b7b52f..95407570 100644 --- a/c_sharp/src/org/ldk/structs/WarningMessage.cs +++ b/c_sharp/src/org/ldk/structs/WarningMessage.cs @@ -100,6 +100,18 @@ public class WarningMessage : CommonBase { return ret_hu_conv; } + /** + * Generates a non-cryptographic 64-bit hash of the WarningMessage. + */ + public long hash() { + long ret = bindings.WarningMessage_hash(this.ptr); + GC.KeepAlive(this); + return ret; + } + + public override int GetHashCode() { + return (int)this.hash(); + } /** * Checks if two WarningMessages contain equal inner contents. * This ignores pointers and is_owned flags and looks at the values in fields. diff --git a/c_sharp/src/org/ldk/structs/WitnessProgram.cs b/c_sharp/src/org/ldk/structs/WitnessProgram.cs new file mode 100644 index 00000000..dee51c43 --- /dev/null +++ b/c_sharp/src/org/ldk/structs/WitnessProgram.cs @@ -0,0 +1,29 @@ +using org.ldk.impl; +using org.ldk.enums; +using org.ldk.util; +using System; + +namespace org { namespace ldk { namespace structs { + +public class WitnessProgram : CommonBase { + /** The witness program bytes themselves */ + public readonly byte[] program; + /** The witness version */ + public readonly WitnessVersion version; + + internal WitnessProgram(object _dummy, long ptr) : base(ptr) { + this.program = InternalUtils.decodeUint8Array(bindings.WitnessProgram_get_program(ptr)); + this.version = new WitnessVersion(bindings.WitnessProgram_get_version(ptr)); + } + static private long check_args(byte[] program, WitnessVersion version) { + if (program.Length < 2 || program.Length > 40) throw new ArgumentException(); + if (version.getVal() == 0 && program.Length != 20 && program.Length != 32) throw new ArgumentException(); + return InternalUtils.encodeUint8Array(program); + } + public WitnessProgram(byte[] program, WitnessVersion version) : + this(null, bindings.WitnessProgram_new(version.getVal(), check_args(program, version))) {} + + ~WitnessProgram() { + if (ptr != 0) { bindings.WitnessProgram_free(ptr); } + } +}} } }