From 65a17b9ef4884736783566e30e075ca59b472cc7 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Thu, 5 Aug 2021 03:19:16 +0000 Subject: [PATCH] Update auto-generated bindings --- src/main/java/org/ldk/impl/bindings.java | 46 +- src/main/java/org/ldk/structs/APIError.java | 1 + .../java/org/ldk/structs/AcceptChannel.java | 2 + src/main/java/org/ldk/structs/Access.java | 1 + .../ldk/structs/AnnouncementSignatures.java | 3 + .../org/ldk/structs/BackgroundProcessor.java | 2 + src/main/java/org/ldk/structs/BaseSign.java | 8 + src/main/java/org/ldk/structs/BestBlock.java | 3 + .../structs/BuiltCommitmentTransaction.java | 3 + .../java/org/ldk/structs/ChainMonitor.java | 9 +- .../java/org/ldk/structs/ChainParameters.java | 3 + .../org/ldk/structs/ChannelAnnouncement.java | 4 + .../java/org/ldk/structs/ChannelConfig.java | 4 + .../org/ldk/structs/ChannelCounterparty.java | 2 + .../java/org/ldk/structs/ChannelDetails.java | 17 +- .../java/org/ldk/structs/ChannelFeatures.java | 4 + .../ldk/structs/ChannelHandshakeConfig.java | 3 + .../ldk/structs/ChannelHandshakeLimits.java | 3 + .../java/org/ldk/structs/ChannelInfo.java | 29 +- .../java/org/ldk/structs/ChannelManager.java | 45 +- .../ldk/structs/ChannelManagerPersister.java | 1 + .../ldk/structs/ChannelManagerReadArgs.java | 7 + .../ldk/structs/ChannelMessageHandler.java | 10 + .../java/org/ldk/structs/ChannelMonitor.java | 4 + .../org/ldk/structs/ChannelMonitorUpdate.java | 2 + .../org/ldk/structs/ChannelPublicKeys.java | 3 + .../org/ldk/structs/ChannelReestablish.java | 2 + .../structs/ChannelTransactionParameters.java | 22 +- .../java/org/ldk/structs/ChannelUpdate.java | 4 + .../java/org/ldk/structs/ClosingSigned.java | 3 + .../org/ldk/structs/CommitmentSigned.java | 3 + .../ldk/structs/CommitmentTransaction.java | 4 + .../org/ldk/structs/CommitmentUpdate.java | 11 +- src/main/java/org/ldk/structs/CommonBase.java | 2 +- ...nterpartyChannelTransactionParameters.java | 4 + .../java/org/ldk/structs/DataLossProtect.java | 2 + .../java/org/ldk/structs/DecodeError.java | 1 + .../DelayedPaymentOutputDescriptor.java | 4 + .../java/org/ldk/structs/Description.java | 2 + .../DirectedChannelTransactionParameters.java | 3 + .../ldk/structs/DirectionalChannelInfo.java | 13 +- .../java/org/ldk/structs/ErrorAction.java | 1 + .../java/org/ldk/structs/ErrorMessage.java | 3 + .../ldk/structs/ErroringMessageHandler.java | 3 + src/main/java/org/ldk/structs/Event.java | 12 +- src/main/java/org/ldk/structs/ExpiryTime.java | 3 + src/main/java/org/ldk/structs/Fallback.java | 1 + .../org/ldk/structs/FilesystemPersister.java | 3 + src/main/java/org/ldk/structs/Filter.java | 1 + .../java/org/ldk/structs/FundingCreated.java | 3 + .../java/org/ldk/structs/FundingLocked.java | 3 + .../java/org/ldk/structs/FundingSigned.java | 3 + .../ldk/structs/GossipTimestampFilter.java | 3 + .../ldk/structs/HTLCFailChannelUpdate.java | 1 + .../ldk/structs/HTLCOutputInCommitment.java | 4 + src/main/java/org/ldk/structs/HTLCUpdate.java | 2 + .../structs/HolderCommitmentTransaction.java | 3 + .../ldk/structs/IgnoringMessageHandler.java | 3 + .../java/org/ldk/structs/InMemorySigner.java | 10 + src/main/java/org/ldk/structs/Init.java | 4 + .../java/org/ldk/structs/InitFeatures.java | 4 + src/main/java/org/ldk/structs/Invoice.java | 16 + .../java/org/ldk/structs/InvoiceFeatures.java | 4 + .../org/ldk/structs/InvoiceSignature.java | 1 + .../java/org/ldk/structs/KeysInterface.java | 3 + .../java/org/ldk/structs/KeysManager.java | 4 + .../java/org/ldk/structs/LightningError.java | 3 + .../org/ldk/structs/LockedNetworkGraph.java | 1 + .../java/org/ldk/structs/MessageHandler.java | 3 + .../org/ldk/structs/MessageSendEvent.java | 1 + .../org/ldk/structs/MinFinalCltvExpiry.java | 1 + .../java/org/ldk/structs/MonitorEvent.java | 1 + .../org/ldk/structs/MonitorUpdateError.java | 1 + src/main/java/org/ldk/structs/NetAddress.java | 2 + .../org/ldk/structs/NetGraphMsgHandler.java | 17 +- .../java/org/ldk/structs/NetworkGraph.java | 17 +- .../org/ldk/structs/NodeAnnouncement.java | 4 + .../org/ldk/structs/NodeAnnouncementInfo.java | 12 +- .../java/org/ldk/structs/NodeFeatures.java | 4 + src/main/java/org/ldk/structs/NodeInfo.java | 19 +- .../java/org/ldk/structs/OpenChannel.java | 2 + .../Option_C2Tuple_usizeTransactionZZ.java | 3 + .../java/org/ldk/structs/Option_u16Z.java | 3 + .../java/org/ldk/structs/Option_u32Z.java | 3 + .../java/org/ldk/structs/Option_u64Z.java | 3 + src/main/java/org/ldk/structs/OutPoint.java | 3 + .../java/org/ldk/structs/PayeePubKey.java | 1 + .../java/org/ldk/structs/PaymentPurpose.java | 61 ++ .../org/ldk/structs/PaymentSendFailure.java | 1 + .../java/org/ldk/structs/PeerHandleError.java | 2 + .../java/org/ldk/structs/PeerManager.java | 5 + src/main/java/org/ldk/structs/Persist.java | 2 + src/main/java/org/ldk/structs/Ping.java | 3 + src/main/java/org/ldk/structs/Pong.java | 3 + .../org/ldk/structs/PositiveTimestamp.java | 3 + .../java/org/ldk/structs/PrivateRoute.java | 3 + .../org/ldk/structs/QueryChannelRange.java | 3 + .../org/ldk/structs/QueryShortChannelIds.java | 3 + .../java/org/ldk/structs/RawDataPart.java | 2 + src/main/java/org/ldk/structs/RawInvoice.java | 51 ++ .../org/ldk/structs/ReplyChannelRange.java | 3 + .../ldk/structs/ReplyShortChannelIdsEnd.java | 3 + .../Result_AcceptChannelDecodeErrorZ.java | 3 + ...lt_AnnouncementSignaturesDecodeErrorZ.java | 3 + ...uiltCommitmentTransactionDecodeErrorZ.java | 3 + ..._BlockHashChannelManagerZDecodeErrorZ.java | 2 + ..._BlockHashChannelMonitorZDecodeErrorZ.java | 2 + ...2Tuple_SignatureCVec_SignatureZZNoneZ.java | 3 + ...ult_CResult_NetAddressu8ZDecodeErrorZ.java | 3 + ...Tuple_BlockHashChannelMonitorZZErrorZ.java | 2 + .../structs/Result_CVec_CVec_u8ZZNoneZ.java | 3 + .../structs/Result_CVec_SignatureZNoneZ.java | 3 + .../Result_CVec_u8ZPeerHandleErrorZ.java | 3 + ...esult_ChannelAnnouncementDecodeErrorZ.java | 3 + .../Result_ChannelConfigDecodeErrorZ.java | 3 + .../Result_ChannelFeaturesDecodeErrorZ.java | 2 + .../Result_ChannelInfoDecodeErrorZ.java | 3 + ...sult_ChannelMonitorUpdateDecodeErrorZ.java | 3 + .../Result_ChannelPublicKeysDecodeErrorZ.java | 3 + ...Result_ChannelReestablishDecodeErrorZ.java | 3 + ...nnelTransactionParametersDecodeErrorZ.java | 3 + .../Result_ChannelUpdateDecodeErrorZ.java | 3 + .../Result_ClosingSignedDecodeErrorZ.java | 3 + .../Result_CommitmentSignedDecodeErrorZ.java | 3 + ...ult_CommitmentTransactionDecodeErrorZ.java | 3 + ...nnelTransactionParametersDecodeErrorZ.java | 3 + ...edPaymentOutputDescriptorDecodeErrorZ.java | 3 + .../Result_DescriptionCreationErrorZ.java | 3 + ...lt_DirectionalChannelInfoDecodeErrorZ.java | 3 + .../Result_ErrorMessageDecodeErrorZ.java | 3 + .../Result_ExpiryTimeCreationErrorZ.java | 3 + .../Result_FundingCreatedDecodeErrorZ.java | 3 + .../Result_FundingLockedDecodeErrorZ.java | 3 + .../Result_FundingSignedDecodeErrorZ.java | 3 + ...ult_GossipTimestampFilterDecodeErrorZ.java | 3 + ...lt_HTLCOutputInCommitmentDecodeErrorZ.java | 3 + .../Result_HTLCUpdateDecodeErrorZ.java | 3 + ...lderCommitmentTransactionDecodeErrorZ.java | 3 + .../Result_InMemorySignerDecodeErrorZ.java | 3 + .../ldk/structs/Result_InitDecodeErrorZ.java | 3 + .../Result_InitFeaturesDecodeErrorZ.java | 2 + .../Result_InvoiceFeaturesDecodeErrorZ.java | 2 + .../org/ldk/structs/Result_InvoiceNoneZ.java | 3 + .../structs/Result_InvoiceSemanticErrorZ.java | 3 + .../Result_InvoiceSignOrCreationErrorZ.java | 3 + .../Result_NetAddressDecodeErrorZ.java | 3 + .../org/ldk/structs/Result_NetAddressu8Z.java | 3 + .../Result_NetworkGraphDecodeErrorZ.java | 3 + .../Result_NodeAnnouncementDecodeErrorZ.java | 3 + ...sult_NodeAnnouncementInfoDecodeErrorZ.java | 3 + .../Result_NodeFeaturesDecodeErrorZ.java | 2 + .../structs/Result_NodeInfoDecodeErrorZ.java | 3 + .../org/ldk/structs/Result_NoneAPIErrorZ.java | 3 + .../Result_NoneChannelMonitorUpdateErrZ.java | 3 + .../org/ldk/structs/Result_NoneErrorZ.java | 3 + .../structs/Result_NoneLightningErrorZ.java | 3 + .../Result_NoneMonitorUpdateErrorZ.java | 3 + .../Result_NonePaymentSendFailureZ.java | 3 + .../structs/Result_NonePeerHandleErrorZ.java | 3 + .../structs/Result_NoneSemanticErrorZ.java | 3 + .../Result_OpenChannelDecodeErrorZ.java | 3 + .../structs/Result_OutPointDecodeErrorZ.java | 3 + .../ldk/structs/Result_PayeePubKeyErrorZ.java | 3 + ...Result_PaymentHashPaymentSendFailureZ.java | 71 +++ .../Result_PaymentSecretAPIErrorZ.java | 3 + .../ldk/structs/Result_PingDecodeErrorZ.java | 3 + .../ldk/structs/Result_PongDecodeErrorZ.java | 3 + ...esult_PositiveTimestampCreationErrorZ.java | 3 + .../Result_PrivateRouteCreationErrorZ.java | 3 + .../ldk/structs/Result_PublicKeyErrorZ.java | 3 + .../Result_QueryChannelRangeDecodeErrorZ.java | 3 + ...sult_QueryShortChannelIdsDecodeErrorZ.java | 3 + .../Result_RecoverableSignatureNoneZ.java | 3 + .../Result_ReplyChannelRangeDecodeErrorZ.java | 3 + ...t_ReplyShortChannelIdsEndDecodeErrorZ.java | 3 + .../Result_RevokeAndACKDecodeErrorZ.java | 3 + .../ldk/structs/Result_RouteDecodeErrorZ.java | 3 + .../structs/Result_RouteHopDecodeErrorZ.java | 3 + .../structs/Result_RouteLightningErrorZ.java | 3 + .../Result_RoutingFeesDecodeErrorZ.java | 3 + .../ldk/structs/Result_SecretKeyErrorZ.java | 2 + .../structs/Result_ShutdownDecodeErrorZ.java | 3 + .../org/ldk/structs/Result_SiPrefixNoneZ.java | 3 + .../ldk/structs/Result_SignDecodeErrorZ.java | 3 + .../ldk/structs/Result_SignatureNoneZ.java | 3 + .../structs/Result_SignedRawInvoiceNoneZ.java | 3 + ...SpendableOutputDescriptorDecodeErrorZ.java | 3 + ...icPaymentOutputDescriptorDecodeErrorZ.java | 3 + .../org/ldk/structs/Result_StringErrorZ.java | 2 + .../ldk/structs/Result_TransactionNoneZ.java | 3 + ...ult_TrustedCommitmentTransactionNoneZ.java | 2 + .../Result_TxCreationKeysDecodeErrorZ.java | 3 + .../structs/Result_TxCreationKeysErrorZ.java | 3 + .../ldk/structs/Result_TxOutAccessErrorZ.java | 3 + ...signedChannelAnnouncementDecodeErrorZ.java | 3 + ...ult_UnsignedChannelUpdateDecodeErrorZ.java | 3 + ..._UnsignedNodeAnnouncementDecodeErrorZ.java | 3 + .../Result_UpdateAddHTLCDecodeErrorZ.java | 3 + .../Result_UpdateFailHTLCDecodeErrorZ.java | 3 + ...t_UpdateFailMalformedHTLCDecodeErrorZ.java | 3 + .../structs/Result_UpdateFeeDecodeErrorZ.java | 3 + .../Result_UpdateFulfillHTLCDecodeErrorZ.java | 3 + .../structs/Result_boolLightningErrorZ.java | 3 + .../structs/Result_boolPeerHandleErrorZ.java | 3 + .../java/org/ldk/structs/RevokeAndACK.java | 3 + src/main/java/org/ldk/structs/Route.java | 3 + src/main/java/org/ldk/structs/RouteHint.java | 1 + .../java/org/ldk/structs/RouteHintHop.java | 5 + src/main/java/org/ldk/structs/RouteHop.java | 5 + .../java/org/ldk/structs/RoutingFees.java | 3 + .../ldk/structs/RoutingMessageHandler.java | 23 +- src/main/java/org/ldk/structs/Sha256.java | 1 + src/main/java/org/ldk/structs/Shutdown.java | 3 + src/main/java/org/ldk/structs/Sign.java | 11 + .../org/ldk/structs/SignOrCreationError.java | 1 + .../org/ldk/structs/SignedRawInvoice.java | 6 + .../org/ldk/structs/SocketDescriptor.java | 1 + .../structs/SpendableOutputDescriptor.java | 2 + .../StaticPaymentOutputDescriptor.java | 4 + .../structs/TrustedCommitmentTransaction.java | 3 + .../java/org/ldk/structs/TxCreationKeys.java | 5 + .../structs/UnsignedChannelAnnouncement.java | 3 + .../ldk/structs/UnsignedChannelUpdate.java | 2 + .../ldk/structs/UnsignedNodeAnnouncement.java | 3 + .../java/org/ldk/structs/UpdateAddHTLC.java | 2 + .../java/org/ldk/structs/UpdateFailHTLC.java | 2 + .../ldk/structs/UpdateFailMalformedHTLC.java | 2 + src/main/java/org/ldk/structs/UpdateFee.java | 3 + .../org/ldk/structs/UpdateFulfillHTLC.java | 3 + src/main/java/org/ldk/structs/UserConfig.java | 6 + .../java/org/ldk/structs/UtilMethods.java | 34 +- src/main/java/org/ldk/structs/Watch.java | 2 + .../java/org/ldk/structs/WatchedOutput.java | 10 +- src/main/jni/bindings.c | 551 ++++++++++++++---- src/main/jni/bindings.c.body | 551 ++++++++++++++---- src/main/jni/org_ldk_impl_bindings.h | 120 ++++ .../org_ldk_impl_bindings_LDKPaymentPurpose.h | 21 + 237 files changed, 2116 insertions(+), 292 deletions(-) create mode 100644 src/main/java/org/ldk/structs/PaymentPurpose.java create mode 100644 src/main/java/org/ldk/structs/Result_PaymentHashPaymentSendFailureZ.java create mode 100644 src/main/jni/org_ldk_impl_bindings_LDKPaymentPurpose.h diff --git a/src/main/java/org/ldk/impl/bindings.java b/src/main/java/org/ldk/impl/bindings.java index 9a5c9f2d..8257d136 100644 --- a/src/main/java/org/ldk/impl/bindings.java +++ b/src/main/java/org/ldk/impl/bindings.java @@ -48,7 +48,7 @@ public class bindings { static native String get_lib_version_string(); public static String get_ldk_java_bindings_version() { - return "v0.0.99.1"; + return "v0.0.99.1-7-gf7a4eb8-dirty"; } public static native String get_ldk_c_bindings_version(); public static native String get_ldk_version(); @@ -432,6 +432,7 @@ public class bindings { byte[] write(); } public static native long LDKSign_new(LDKSign impl, LDKBaseSign BaseSign, long pubkeys); + public static native long LDKSign_get_BaseSign(long arg); // LDKCVec_u8Z Sign_write LDKSign *NONNULL_PTR this_arg public static native byte[] Sign_write(long this_arg); public static native boolean LDKCResult_SignDecodeErrorZ_result_ok(long arg); @@ -526,6 +527,9 @@ public class bindings { public static native boolean LDKCResult_NonePaymentSendFailureZ_result_ok(long arg); public static native void LDKCResult_NonePaymentSendFailureZ_get_ok(long arg); public static native long LDKCResult_NonePaymentSendFailureZ_get_err(long arg); + public static native boolean LDKCResult_PaymentHashPaymentSendFailureZ_result_ok(long arg); + public static native byte[] LDKCResult_PaymentHashPaymentSendFailureZ_get_ok(long arg); + public static native long LDKCResult_PaymentHashPaymentSendFailureZ_get_err(long arg); public static class LDKNetAddress { private LDKNetAddress() {} public final static class IPv4 extends LDKNetAddress { @@ -684,6 +688,22 @@ public class bindings { public static native byte[] LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(long ptr); public static native long[] LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(long ptr); public static native long LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_new(long[] elems); + public static class LDKPaymentPurpose { + private LDKPaymentPurpose() {} + public final static class InvoicePayment extends LDKPaymentPurpose { + public byte[] payment_preimage; + public byte[] payment_secret; + public long user_payment_id; + InvoicePayment(byte[] payment_preimage, byte[] payment_secret, long user_payment_id) { this.payment_preimage = payment_preimage; this.payment_secret = payment_secret; this.user_payment_id = user_payment_id; } + } + public final static class SpontaneousPayment extends LDKPaymentPurpose { + public byte[] spontaneous_payment; + SpontaneousPayment(byte[] spontaneous_payment) { this.spontaneous_payment = spontaneous_payment; } + } + static native void init(); + } + static { LDKPaymentPurpose.init(); } + public static native LDKPaymentPurpose LDKPaymentPurpose_ref_from_ptr(long ptr); public static class LDKEvent { private LDKEvent() {} public final static class FundingGenerationReady extends LDKEvent { @@ -695,11 +715,9 @@ public class bindings { } public final static class PaymentReceived extends LDKEvent { public byte[] payment_hash; - public byte[] payment_preimage; - public byte[] payment_secret; public long amt; - public long user_payment_id; - PaymentReceived(byte[] payment_hash, byte[] payment_preimage, byte[] payment_secret, long amt, long user_payment_id) { this.payment_hash = payment_hash; this.payment_preimage = payment_preimage; this.payment_secret = payment_secret; this.amt = amt; this.user_payment_id = user_payment_id; } + public long purpose; + PaymentReceived(byte[] payment_hash, long amt, long purpose) { this.payment_hash = payment_hash; this.amt = amt; this.purpose = purpose; } } public final static class PaymentSent extends LDKEvent { public byte[] payment_preimage; @@ -985,6 +1003,7 @@ public class bindings { void handle_error(byte[] their_node_id, long msg); } public static native long LDKChannelMessageHandler_new(LDKChannelMessageHandler impl, LDKMessageSendEventsProvider MessageSendEventsProvider); + public static native long LDKChannelMessageHandler_get_MessageSendEventsProvider(long arg); // void ChannelMessageHandler_handle_open_channel LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKInitFeatures their_features, const struct LDKOpenChannel *NONNULL_PTR msg public static native void ChannelMessageHandler_handle_open_channel(long this_arg, byte[] their_node_id, long their_features, long msg); // void ChannelMessageHandler_handle_accept_channel LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKInitFeatures their_features, const struct LDKAcceptChannel *NONNULL_PTR msg @@ -1039,6 +1058,7 @@ public class bindings { long handle_query_short_channel_ids(byte[] their_node_id, long msg); } public static native long LDKRoutingMessageHandler_new(LDKRoutingMessageHandler impl, LDKMessageSendEventsProvider MessageSendEventsProvider); + public static native long LDKRoutingMessageHandler_get_MessageSendEventsProvider(long arg); // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_node_announcement LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKNodeAnnouncement *NONNULL_PTR msg public static native long RoutingMessageHandler_handle_node_announcement(long this_arg, long msg); // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_channel_announcement LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKChannelAnnouncement *NONNULL_PTR msg @@ -1465,6 +1485,14 @@ public class bindings { public static native void CResult_NonePaymentSendFailureZ_free(long _res); // struct LDKCResult_NonePaymentSendFailureZ CResult_NonePaymentSendFailureZ_clone(const struct LDKCResult_NonePaymentSendFailureZ *NONNULL_PTR orig); public static native long CResult_NonePaymentSendFailureZ_clone(long orig); + // struct LDKCResult_PaymentHashPaymentSendFailureZ CResult_PaymentHashPaymentSendFailureZ_ok(struct LDKThirtyTwoBytes o); + public static native long CResult_PaymentHashPaymentSendFailureZ_ok(byte[] o); + // struct LDKCResult_PaymentHashPaymentSendFailureZ CResult_PaymentHashPaymentSendFailureZ_err(struct LDKPaymentSendFailure e); + public static native long CResult_PaymentHashPaymentSendFailureZ_err(long e); + // void CResult_PaymentHashPaymentSendFailureZ_free(struct LDKCResult_PaymentHashPaymentSendFailureZ _res); + public static native void CResult_PaymentHashPaymentSendFailureZ_free(long _res); + // struct LDKCResult_PaymentHashPaymentSendFailureZ CResult_PaymentHashPaymentSendFailureZ_clone(const struct LDKCResult_PaymentHashPaymentSendFailureZ *NONNULL_PTR orig); + public static native long CResult_PaymentHashPaymentSendFailureZ_clone(long orig); // void CVec_NetAddressZ_free(struct LDKCVec_NetAddressZ _res); public static native void CVec_NetAddressZ_free(long[] _res); // struct LDKC2Tuple_PaymentHashPaymentSecretZ C2Tuple_PaymentHashPaymentSecretZ_clone(const struct LDKC2Tuple_PaymentHashPaymentSecretZ *NONNULL_PTR orig); @@ -2065,6 +2093,10 @@ public class bindings { public static native void CResult_InvoiceSignOrCreationErrorZ_free(long _res); // struct LDKCResult_InvoiceSignOrCreationErrorZ CResult_InvoiceSignOrCreationErrorZ_clone(const struct LDKCResult_InvoiceSignOrCreationErrorZ *NONNULL_PTR orig); public static native long CResult_InvoiceSignOrCreationErrorZ_clone(long orig); + // void PaymentPurpose_free(struct LDKPaymentPurpose this_ptr); + public static native void PaymentPurpose_free(long this_ptr); + // struct LDKPaymentPurpose PaymentPurpose_clone(const struct LDKPaymentPurpose *NONNULL_PTR orig); + public static native long PaymentPurpose_clone(long orig); // void Event_free(struct LDKEvent this_ptr); public static native void Event_free(long this_ptr); // struct LDKEvent Event_clone(const struct LDKEvent *NONNULL_PTR orig); @@ -2633,6 +2665,8 @@ public class bindings { public static native void ChannelManager_force_close_all_channels(long this_arg); // MUST_USE_RES struct LDKCResult_NonePaymentSendFailureZ ChannelManager_send_payment(const struct LDKChannelManager *NONNULL_PTR this_arg, const struct LDKRoute *NONNULL_PTR route, struct LDKThirtyTwoBytes payment_hash, struct LDKThirtyTwoBytes payment_secret); public static native long ChannelManager_send_payment(long this_arg, long route, byte[] payment_hash, byte[] payment_secret); + // MUST_USE_RES struct LDKCResult_PaymentHashPaymentSendFailureZ ChannelManager_send_spontaneous_payment(const struct LDKChannelManager *NONNULL_PTR this_arg, const struct LDKRoute *NONNULL_PTR route, struct LDKThirtyTwoBytes payment_preimage); + public static native long ChannelManager_send_spontaneous_payment(long this_arg, long route, byte[] payment_preimage); // MUST_USE_RES struct LDKCResult_NoneAPIErrorZ ChannelManager_funding_transaction_generated(const struct LDKChannelManager *NONNULL_PTR this_arg, const uint8_t (*temporary_channel_id)[32], struct LDKTransaction funding_transaction); public static native long ChannelManager_funding_transaction_generated(long this_arg, byte[] temporary_channel_id, byte[] funding_transaction); // void ChannelManager_broadcast_node_announcement(const struct LDKChannelManager *NONNULL_PTR this_arg, struct LDKThreeBytes rgb, struct LDKThirtyTwoBytes alias, struct LDKCVec_NetAddressZ addresses); @@ -4017,6 +4051,8 @@ public class bindings { public static native boolean RouteHintHop_eq(long a, long b); // struct LDKRouteHintHop RouteHintHop_clone(const struct LDKRouteHintHop *NONNULL_PTR orig); public static native long RouteHintHop_clone(long orig); + // struct LDKCResult_RouteLightningErrorZ get_keysend_route(struct LDKPublicKey our_node_id, const struct LDKNetworkGraph *NONNULL_PTR network, struct LDKPublicKey payee, struct LDKCVec_ChannelDetailsZ *first_hops, struct LDKCVec_RouteHintZ last_hops, uint64_t final_value_msat, uint32_t final_cltv, struct LDKLogger logger); + public static native long get_keysend_route(byte[] our_node_id, long network, byte[] payee, long[] first_hops, long[] last_hops, long final_value_msat, int final_cltv, long logger); // struct LDKCResult_RouteLightningErrorZ get_route(struct LDKPublicKey our_node_id, const struct LDKNetworkGraph *NONNULL_PTR network, struct LDKPublicKey payee, struct LDKInvoiceFeatures payee_features, struct LDKCVec_ChannelDetailsZ *first_hops, struct LDKCVec_RouteHintZ last_hops, uint64_t final_value_msat, uint32_t final_cltv, struct LDKLogger logger); public static native long get_route(byte[] our_node_id, long network, byte[] payee, long payee_features, long[] first_hops, long[] last_hops, long final_value_msat, int final_cltv, long logger); // void NetworkGraph_free(struct LDKNetworkGraph this_obj); diff --git a/src/main/java/org/ldk/structs/APIError.java b/src/main/java/org/ldk/structs/APIError.java index 19fdbcf1..d9a4d3c5 100644 --- a/src/main/java/org/ldk/structs/APIError.java +++ b/src/main/java/org/ldk/structs/APIError.java @@ -78,6 +78,7 @@ public class APIError extends CommonBase { */ public APIError clone() { long ret = bindings.APIError_clone(this.ptr); + if (ret < 1024) { return null; } APIError ret_hu_conv = APIError.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/AcceptChannel.java b/src/main/java/org/ldk/structs/AcceptChannel.java index cc61466e..631f0854 100644 --- a/src/main/java/org/ldk/structs/AcceptChannel.java +++ b/src/main/java/org/ldk/structs/AcceptChannel.java @@ -233,6 +233,7 @@ public class AcceptChannel extends CommonBase { */ public AcceptChannel clone() { long ret = bindings.AcceptChannel_clone(this.ptr); + if (ret < 1024) { return null; } AcceptChannel ret_hu_conv = new AcceptChannel(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -251,6 +252,7 @@ public class AcceptChannel extends CommonBase { */ public static Result_AcceptChannelDecodeErrorZ read(byte[] ser) { long ret = bindings.AcceptChannel_read(ser); + if (ret < 1024) { return null; } Result_AcceptChannelDecodeErrorZ ret_hu_conv = Result_AcceptChannelDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Access.java b/src/main/java/org/ldk/structs/Access.java index afb25ad3..a9124359 100644 --- a/src/main/java/org/ldk/structs/Access.java +++ b/src/main/java/org/ldk/structs/Access.java @@ -54,6 +54,7 @@ public class Access extends CommonBase { */ public Result_TxOutAccessErrorZ get_utxo(byte[] genesis_hash, long short_channel_id) { long ret = bindings.Access_get_utxo(this.ptr, genesis_hash, short_channel_id); + if (ret < 1024) { return null; } Result_TxOutAccessErrorZ ret_hu_conv = Result_TxOutAccessErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/AnnouncementSignatures.java b/src/main/java/org/ldk/structs/AnnouncementSignatures.java index ae09b222..06250b75 100644 --- a/src/main/java/org/ldk/structs/AnnouncementSignatures.java +++ b/src/main/java/org/ldk/structs/AnnouncementSignatures.java @@ -83,6 +83,7 @@ public class AnnouncementSignatures extends CommonBase { */ public static AnnouncementSignatures of(byte[] channel_id_arg, long short_channel_id_arg, byte[] node_signature_arg, byte[] bitcoin_signature_arg) { long ret = bindings.AnnouncementSignatures_new(channel_id_arg, short_channel_id_arg, node_signature_arg, bitcoin_signature_arg); + if (ret < 1024) { return null; } AnnouncementSignatures ret_hu_conv = new AnnouncementSignatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -93,6 +94,7 @@ public class AnnouncementSignatures extends CommonBase { */ public AnnouncementSignatures clone() { long ret = bindings.AnnouncementSignatures_clone(this.ptr); + if (ret < 1024) { return null; } AnnouncementSignatures ret_hu_conv = new AnnouncementSignatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -111,6 +113,7 @@ public class AnnouncementSignatures extends CommonBase { */ public static Result_AnnouncementSignaturesDecodeErrorZ read(byte[] ser) { long ret = bindings.AnnouncementSignatures_read(ser); + if (ret < 1024) { return null; } Result_AnnouncementSignaturesDecodeErrorZ ret_hu_conv = Result_AnnouncementSignaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/BackgroundProcessor.java b/src/main/java/org/ldk/structs/BackgroundProcessor.java index 467cb335..baee6d64 100644 --- a/src/main/java/org/ldk/structs/BackgroundProcessor.java +++ b/src/main/java/org/ldk/structs/BackgroundProcessor.java @@ -53,6 +53,7 @@ public class BackgroundProcessor extends CommonBase { */ public static BackgroundProcessor start(ChannelManagerPersister persister, EventHandler event_handler, ChainMonitor chain_monitor, ChannelManager channel_manager, PeerManager peer_manager, Logger logger) { long ret = bindings.BackgroundProcessor_start(persister == null ? 0 : persister.ptr, event_handler == null ? 0 : event_handler.ptr, chain_monitor == null ? 0 : chain_monitor.ptr & ~1, channel_manager == null ? 0 : channel_manager.ptr & ~1, peer_manager == null ? 0 : peer_manager.ptr & ~1, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } BackgroundProcessor ret_hu_conv = new BackgroundProcessor(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(persister); @@ -69,6 +70,7 @@ public class BackgroundProcessor extends CommonBase { */ public Result_NoneErrorZ stop() { long ret = bindings.BackgroundProcessor_stop(this.ptr); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); this.ptrs_to.add(this); // Due to rust's strict-ownership memory model, in some cases we need to "move" diff --git a/src/main/java/org/ldk/structs/BaseSign.java b/src/main/java/org/ldk/structs/BaseSign.java index b94a5c1b..d7bc8041 100644 --- a/src/main/java/org/ldk/structs/BaseSign.java +++ b/src/main/java/org/ldk/structs/BaseSign.java @@ -275,6 +275,7 @@ public class BaseSign extends CommonBase { */ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx) { long ret = bindings.BaseSign_sign_counterparty_commitment(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1); + if (ret < 1024) { return null; } Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); this.ptrs_to.add(commitment_tx); return ret_hu_conv; @@ -295,6 +296,7 @@ public class BaseSign extends CommonBase { */ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs(HolderCommitmentTransaction commitment_tx) { long ret = bindings.BaseSign_sign_holder_commitment_and_htlcs(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1); + if (ret < 1024) { return null; } Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); this.ptrs_to.add(commitment_tx); return ret_hu_conv; @@ -318,6 +320,7 @@ public class BaseSign extends CommonBase { */ public Result_SignatureNoneZ sign_justice_revoked_output(byte[] justice_tx, long input, long amount, byte[] per_commitment_key) { long ret = bindings.BaseSign_sign_justice_revoked_output(this.ptr, justice_tx, input, amount, per_commitment_key); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -343,6 +346,7 @@ public class BaseSign extends CommonBase { */ public Result_SignatureNoneZ sign_justice_revoked_htlc(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, HTLCOutputInCommitment htlc) { long ret = bindings.BaseSign_sign_justice_revoked_htlc(this.ptr, justice_tx, input, amount, per_commitment_key, htlc == null ? 0 : htlc.ptr & ~1); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); this.ptrs_to.add(htlc); return ret_hu_conv; @@ -369,6 +373,7 @@ public class BaseSign extends CommonBase { */ public Result_SignatureNoneZ sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, HTLCOutputInCommitment htlc) { long ret = bindings.BaseSign_sign_counterparty_htlc_transaction(this.ptr, htlc_tx, input, amount, per_commitment_point, htlc == null ? 0 : htlc.ptr & ~1); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); this.ptrs_to.add(htlc); return ret_hu_conv; @@ -382,6 +387,7 @@ public class BaseSign extends CommonBase { */ public Result_SignatureNoneZ sign_closing_transaction(byte[] closing_tx) { long ret = bindings.BaseSign_sign_closing_transaction(this.ptr, closing_tx); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -396,6 +402,7 @@ public class BaseSign extends CommonBase { */ public Result_SignatureNoneZ sign_channel_announcement(UnsignedChannelAnnouncement msg) { long ret = bindings.BaseSign_sign_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -424,6 +431,7 @@ public class BaseSign extends CommonBase { */ public ChannelPublicKeys get_pubkeys() { long ret = bindings.BaseSign_get_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/BestBlock.java b/src/main/java/org/ldk/structs/BestBlock.java index cda09d30..c0cb941c 100644 --- a/src/main/java/org/ldk/structs/BestBlock.java +++ b/src/main/java/org/ldk/structs/BestBlock.java @@ -23,6 +23,7 @@ public class BestBlock extends CommonBase { */ public BestBlock clone() { long ret = bindings.BestBlock_clone(this.ptr); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -34,6 +35,7 @@ public class BestBlock extends CommonBase { */ public static BestBlock from_genesis(Network network) { long ret = bindings.BestBlock_from_genesis(network); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -44,6 +46,7 @@ public class BestBlock extends CommonBase { */ public static BestBlock of(byte[] block_hash, int height) { long ret = bindings.BestBlock_new(block_hash, height); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/BuiltCommitmentTransaction.java b/src/main/java/org/ldk/structs/BuiltCommitmentTransaction.java index 3ac8da0e..4b805339 100644 --- a/src/main/java/org/ldk/structs/BuiltCommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/BuiltCommitmentTransaction.java @@ -59,6 +59,7 @@ public class BuiltCommitmentTransaction extends CommonBase { */ public static BuiltCommitmentTransaction of(byte[] transaction_arg, byte[] txid_arg) { long ret = bindings.BuiltCommitmentTransaction_new(transaction_arg, txid_arg); + if (ret < 1024) { return null; } BuiltCommitmentTransaction ret_hu_conv = new BuiltCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -69,6 +70,7 @@ public class BuiltCommitmentTransaction extends CommonBase { */ public BuiltCommitmentTransaction clone() { long ret = bindings.BuiltCommitmentTransaction_clone(this.ptr); + if (ret < 1024) { return null; } BuiltCommitmentTransaction ret_hu_conv = new BuiltCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -87,6 +89,7 @@ public class BuiltCommitmentTransaction extends CommonBase { */ public static Result_BuiltCommitmentTransactionDecodeErrorZ read(byte[] ser) { long ret = bindings.BuiltCommitmentTransaction_read(ser); + if (ret < 1024) { return null; } Result_BuiltCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_BuiltCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChainMonitor.java b/src/main/java/org/ldk/structs/ChainMonitor.java index a1406a35..cd69b37b 100644 --- a/src/main/java/org/ldk/structs/ChainMonitor.java +++ b/src/main/java/org/ldk/structs/ChainMonitor.java @@ -34,9 +34,12 @@ public class ChainMonitor extends CommonBase { * pre-filter blocks or only fetch blocks matching a compact filter. Otherwise, clients may * always need to fetch full blocks absent another means for determining which blocks contain * transactions relevant to the watched channels. + * + * Note that chain_source (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static ChainMonitor of(Filter chain_source, BroadcasterInterface broadcaster, Logger logger, FeeEstimator feeest, Persist persister) { + public static ChainMonitor of(@Nullable Filter chain_source, BroadcasterInterface broadcaster, Logger logger, FeeEstimator feeest, Persist persister) { long ret = bindings.ChainMonitor_new(chain_source == null ? 0 : chain_source.ptr, broadcaster == null ? 0 : broadcaster.ptr, logger == null ? 0 : logger.ptr, feeest == null ? 0 : feeest.ptr, persister == null ? 0 : persister.ptr); + if (ret < 1024) { return null; } ChainMonitor ret_hu_conv = new ChainMonitor(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(chain_source); @@ -53,6 +56,7 @@ public class ChainMonitor extends CommonBase { */ public Listen as_Listen() { long ret = bindings.ChainMonitor_as_Listen(this.ptr); + if (ret < 1024) { return null; } Listen ret_hu_conv = new Listen(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -64,6 +68,7 @@ public class ChainMonitor extends CommonBase { */ public Confirm as_Confirm() { long ret = bindings.ChainMonitor_as_Confirm(this.ptr); + if (ret < 1024) { return null; } Confirm ret_hu_conv = new Confirm(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -75,6 +80,7 @@ public class ChainMonitor extends CommonBase { */ public Watch as_Watch() { long ret = bindings.ChainMonitor_as_Watch(this.ptr); + if (ret < 1024) { return null; } Watch ret_hu_conv = new Watch(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -86,6 +92,7 @@ public class ChainMonitor extends CommonBase { */ public EventsProvider as_EventsProvider() { long ret = bindings.ChainMonitor_as_EventsProvider(this.ptr); + if (ret < 1024) { return null; } EventsProvider ret_hu_conv = new EventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChainParameters.java b/src/main/java/org/ldk/structs/ChainParameters.java index f61036d5..85643ee1 100644 --- a/src/main/java/org/ldk/structs/ChainParameters.java +++ b/src/main/java/org/ldk/structs/ChainParameters.java @@ -44,6 +44,7 @@ public class ChainParameters extends CommonBase { */ public BestBlock get_best_block() { long ret = bindings.ChainParameters_get_best_block(this.ptr); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -64,6 +65,7 @@ public class ChainParameters extends CommonBase { */ public static ChainParameters of(Network network_arg, BestBlock best_block_arg) { long ret = bindings.ChainParameters_new(network_arg, best_block_arg == null ? 0 : best_block_arg.ptr & ~1); + if (ret < 1024) { return null; } ChainParameters ret_hu_conv = new ChainParameters(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(best_block_arg); @@ -75,6 +77,7 @@ public class ChainParameters extends CommonBase { */ public ChainParameters clone() { long ret = bindings.ChainParameters_clone(this.ptr); + if (ret < 1024) { return null; } ChainParameters ret_hu_conv = new ChainParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelAnnouncement.java b/src/main/java/org/ldk/structs/ChannelAnnouncement.java index 0b0443fd..4c2db641 100644 --- a/src/main/java/org/ldk/structs/ChannelAnnouncement.java +++ b/src/main/java/org/ldk/structs/ChannelAnnouncement.java @@ -83,6 +83,7 @@ public class ChannelAnnouncement extends CommonBase { */ public UnsignedChannelAnnouncement get_contents() { long ret = bindings.ChannelAnnouncement_get_contents(this.ptr); + if (ret < 1024) { return null; } UnsignedChannelAnnouncement ret_hu_conv = new UnsignedChannelAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -101,6 +102,7 @@ public class ChannelAnnouncement extends CommonBase { */ public static ChannelAnnouncement of(byte[] node_signature_1_arg, byte[] node_signature_2_arg, byte[] bitcoin_signature_1_arg, byte[] bitcoin_signature_2_arg, UnsignedChannelAnnouncement contents_arg) { long ret = bindings.ChannelAnnouncement_new(node_signature_1_arg, node_signature_2_arg, bitcoin_signature_1_arg, bitcoin_signature_2_arg, contents_arg == null ? 0 : contents_arg.ptr & ~1); + if (ret < 1024) { return null; } ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(contents_arg); @@ -112,6 +114,7 @@ public class ChannelAnnouncement extends CommonBase { */ public ChannelAnnouncement clone() { long ret = bindings.ChannelAnnouncement_clone(this.ptr); + if (ret < 1024) { return null; } ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -130,6 +133,7 @@ public class ChannelAnnouncement extends CommonBase { */ public static Result_ChannelAnnouncementDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelAnnouncement_read(ser); + if (ret < 1024) { return null; } Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelConfig.java b/src/main/java/org/ldk/structs/ChannelConfig.java index eaef6ab8..01bac658 100644 --- a/src/main/java/org/ldk/structs/ChannelConfig.java +++ b/src/main/java/org/ldk/structs/ChannelConfig.java @@ -207,6 +207,7 @@ public class ChannelConfig extends CommonBase { */ public static ChannelConfig of(int forwarding_fee_proportional_millionths_arg, int forwarding_fee_base_msat_arg, short cltv_expiry_delta_arg, boolean announced_channel_arg, boolean commit_upfront_shutdown_pubkey_arg) { long ret = bindings.ChannelConfig_new(forwarding_fee_proportional_millionths_arg, forwarding_fee_base_msat_arg, cltv_expiry_delta_arg, announced_channel_arg, commit_upfront_shutdown_pubkey_arg); + if (ret < 1024) { return null; } ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -217,6 +218,7 @@ public class ChannelConfig extends CommonBase { */ public ChannelConfig clone() { long ret = bindings.ChannelConfig_clone(this.ptr); + if (ret < 1024) { return null; } ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -227,6 +229,7 @@ public class ChannelConfig extends CommonBase { */ public static ChannelConfig with_default() { long ret = bindings.ChannelConfig_default(); + if (ret < 1024) { return null; } ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -245,6 +248,7 @@ public class ChannelConfig extends CommonBase { */ public static Result_ChannelConfigDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelConfig_read(ser); + if (ret < 1024) { return null; } Result_ChannelConfigDecodeErrorZ ret_hu_conv = Result_ChannelConfigDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelCounterparty.java b/src/main/java/org/ldk/structs/ChannelCounterparty.java index c0bf5dd2..2253c564 100644 --- a/src/main/java/org/ldk/structs/ChannelCounterparty.java +++ b/src/main/java/org/ldk/structs/ChannelCounterparty.java @@ -41,6 +41,7 @@ public class ChannelCounterparty extends CommonBase { */ public InitFeatures get_features() { long ret = bindings.ChannelCounterparty_get_features(this.ptr); + if (ret < 1024) { return null; } InitFeatures ret_hu_conv = new InitFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -88,6 +89,7 @@ public class ChannelCounterparty extends CommonBase { */ public ChannelCounterparty clone() { long ret = bindings.ChannelCounterparty_clone(this.ptr); + if (ret < 1024) { return null; } ChannelCounterparty ret_hu_conv = new ChannelCounterparty(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelDetails.java b/src/main/java/org/ldk/structs/ChannelDetails.java index 92f526b6..1af69529 100644 --- a/src/main/java/org/ldk/structs/ChannelDetails.java +++ b/src/main/java/org/ldk/structs/ChannelDetails.java @@ -3,6 +3,8 @@ package org.ldk.structs; import org.ldk.impl.bindings; import org.ldk.enums.*; import org.ldk.util.*; + +import javax.annotation.Nullable; import java.util.Arrays; @@ -44,6 +46,7 @@ public class ChannelDetails extends CommonBase { */ public ChannelCounterparty get_counterparty() { long ret = bindings.ChannelDetails_get_counterparty(this.ptr); + if (ret < 1024) { return null; } ChannelCounterparty ret_hu_conv = new ChannelCounterparty(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -63,9 +66,13 @@ public class ChannelDetails extends CommonBase { * * Note that, if this has been set, `channel_id` will be equivalent to * `funding_txo.unwrap().to_channel_id()`. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public OutPoint get_funding_txo() { long ret = bindings.ChannelDetails_get_funding_txo(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -77,8 +84,10 @@ public class ChannelDetails extends CommonBase { * * Note that, if this has been set, `channel_id` will be equivalent to * `funding_txo.unwrap().to_channel_id()`. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_funding_txo(OutPoint val) { + public void set_funding_txo(@Nullable OutPoint val) { bindings.ChannelDetails_set_funding_txo(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -89,6 +98,7 @@ public class ChannelDetails extends CommonBase { */ public Option_u64Z get_short_channel_id() { long ret = bindings.ChannelDetails_get_short_channel_id(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -130,6 +140,7 @@ public class ChannelDetails extends CommonBase { */ public Option_u64Z get_unspendable_punishment_reserve() { long ret = bindings.ChannelDetails_get_unspendable_punishment_reserve(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -240,6 +251,7 @@ public class ChannelDetails extends CommonBase { */ public Option_u32Z get_confirmations_required() { long ret = bindings.ChannelDetails_get_confirmations_required(this.ptr); + if (ret < 1024) { return null; } Option_u32Z ret_hu_conv = Option_u32Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -273,6 +285,7 @@ public class ChannelDetails extends CommonBase { */ public Option_u16Z get_force_close_spend_delay() { long ret = bindings.ChannelDetails_get_force_close_spend_delay(this.ptr); + if (ret < 1024) { return null; } Option_u16Z ret_hu_conv = Option_u16Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -374,6 +387,7 @@ public class ChannelDetails extends CommonBase { */ public static ChannelDetails of(byte[] channel_id_arg, ChannelCounterparty counterparty_arg, OutPoint funding_txo_arg, Option_u64Z short_channel_id_arg, long channel_value_satoshis_arg, Option_u64Z unspendable_punishment_reserve_arg, long user_id_arg, long outbound_capacity_msat_arg, long inbound_capacity_msat_arg, Option_u32Z confirmations_required_arg, Option_u16Z force_close_spend_delay_arg, boolean is_outbound_arg, boolean is_funding_locked_arg, boolean is_usable_arg, boolean is_public_arg) { long ret = bindings.ChannelDetails_new(channel_id_arg, counterparty_arg == null ? 0 : counterparty_arg.ptr & ~1, funding_txo_arg == null ? 0 : funding_txo_arg.ptr & ~1, short_channel_id_arg.ptr, channel_value_satoshis_arg, unspendable_punishment_reserve_arg.ptr, user_id_arg, outbound_capacity_msat_arg, inbound_capacity_msat_arg, confirmations_required_arg.ptr, force_close_spend_delay_arg.ptr, is_outbound_arg, is_funding_locked_arg, is_usable_arg, is_public_arg); + if (ret < 1024) { return null; } ChannelDetails ret_hu_conv = new ChannelDetails(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(counterparty_arg); @@ -386,6 +400,7 @@ public class ChannelDetails extends CommonBase { */ public ChannelDetails clone() { long ret = bindings.ChannelDetails_clone(this.ptr); + if (ret < 1024) { return null; } ChannelDetails ret_hu_conv = new ChannelDetails(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelFeatures.java b/src/main/java/org/ldk/structs/ChannelFeatures.java index 04395a4e..dcaba5a4 100644 --- a/src/main/java/org/ldk/structs/ChannelFeatures.java +++ b/src/main/java/org/ldk/structs/ChannelFeatures.java @@ -34,6 +34,7 @@ public class ChannelFeatures extends CommonBase { */ public ChannelFeatures clone() { long ret = bindings.ChannelFeatures_clone(this.ptr); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -44,6 +45,7 @@ public class ChannelFeatures extends CommonBase { */ public static ChannelFeatures empty() { long ret = bindings.ChannelFeatures_empty(); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -54,6 +56,7 @@ public class ChannelFeatures extends CommonBase { */ public static ChannelFeatures known() { long ret = bindings.ChannelFeatures_known(); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -72,6 +75,7 @@ public class ChannelFeatures extends CommonBase { */ public static Result_ChannelFeaturesDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelFeatures_read(ser); + if (ret < 1024) { return null; } Result_ChannelFeaturesDecodeErrorZ ret_hu_conv = Result_ChannelFeaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java b/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java index 414c7606..f89b9a05 100644 --- a/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java +++ b/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java @@ -118,6 +118,7 @@ public class ChannelHandshakeConfig extends CommonBase { */ public static ChannelHandshakeConfig of(int minimum_depth_arg, short our_to_self_delay_arg, long our_htlc_minimum_msat_arg) { long ret = bindings.ChannelHandshakeConfig_new(minimum_depth_arg, our_to_self_delay_arg, our_htlc_minimum_msat_arg); + if (ret < 1024) { return null; } ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -128,6 +129,7 @@ public class ChannelHandshakeConfig extends CommonBase { */ public ChannelHandshakeConfig clone() { long ret = bindings.ChannelHandshakeConfig_clone(this.ptr); + if (ret < 1024) { return null; } ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -138,6 +140,7 @@ public class ChannelHandshakeConfig extends CommonBase { */ public static ChannelHandshakeConfig with_default() { long ret = bindings.ChannelHandshakeConfig_default(); + if (ret < 1024) { return null; } ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java b/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java index c94c6ef3..442900cb 100644 --- a/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java +++ b/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java @@ -221,6 +221,7 @@ public class ChannelHandshakeLimits extends CommonBase { */ public static ChannelHandshakeLimits of(long min_funding_satoshis_arg, long max_htlc_minimum_msat_arg, long min_max_htlc_value_in_flight_msat_arg, long max_channel_reserve_satoshis_arg, short min_max_accepted_htlcs_arg, int max_minimum_depth_arg, boolean force_announced_channel_preference_arg, short their_to_self_delay_arg) { long ret = bindings.ChannelHandshakeLimits_new(min_funding_satoshis_arg, max_htlc_minimum_msat_arg, min_max_htlc_value_in_flight_msat_arg, max_channel_reserve_satoshis_arg, min_max_accepted_htlcs_arg, max_minimum_depth_arg, force_announced_channel_preference_arg, their_to_self_delay_arg); + if (ret < 1024) { return null; } ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -231,6 +232,7 @@ public class ChannelHandshakeLimits extends CommonBase { */ public ChannelHandshakeLimits clone() { long ret = bindings.ChannelHandshakeLimits_clone(this.ptr); + if (ret < 1024) { return null; } ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -241,6 +243,7 @@ public class ChannelHandshakeLimits extends CommonBase { */ public static ChannelHandshakeLimits with_default() { long ret = bindings.ChannelHandshakeLimits_default(); + if (ret < 1024) { return null; } ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelInfo.java b/src/main/java/org/ldk/structs/ChannelInfo.java index bc2e5719..360360bb 100644 --- a/src/main/java/org/ldk/structs/ChannelInfo.java +++ b/src/main/java/org/ldk/structs/ChannelInfo.java @@ -24,6 +24,7 @@ public class ChannelInfo extends CommonBase { */ public ChannelFeatures get_features() { long ret = bindings.ChannelInfo_get_features(this.ptr); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -54,9 +55,13 @@ public class ChannelInfo extends CommonBase { /** * Details about the first direction of a channel + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public DirectionalChannelInfo get_one_to_two() { long ret = bindings.ChannelInfo_get_one_to_two(this.ptr); + if (ret < 1024) { return null; } DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -64,8 +69,10 @@ public class ChannelInfo extends CommonBase { /** * Details about the first direction of a channel + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_one_to_two(DirectionalChannelInfo val) { + public void set_one_to_two(@Nullable DirectionalChannelInfo val) { bindings.ChannelInfo_set_one_to_two(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -87,9 +94,13 @@ public class ChannelInfo extends CommonBase { /** * Details about the second direction of a channel + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public DirectionalChannelInfo get_two_to_one() { long ret = bindings.ChannelInfo_get_two_to_one(this.ptr); + if (ret < 1024) { return null; } DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -97,8 +108,10 @@ public class ChannelInfo extends CommonBase { /** * Details about the second direction of a channel + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_two_to_one(DirectionalChannelInfo val) { + public void set_two_to_one(@Nullable DirectionalChannelInfo val) { bindings.ChannelInfo_set_two_to_one(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -108,6 +121,7 @@ public class ChannelInfo extends CommonBase { */ public Option_u64Z get_capacity_sats() { long ret = bindings.ChannelInfo_get_capacity_sats(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -125,9 +139,13 @@ public class ChannelInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public ChannelAnnouncement get_announcement_message() { long ret = bindings.ChannelInfo_get_announcement_message(this.ptr); + if (ret < 1024) { return null; } ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -138,8 +156,10 @@ public class ChannelInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_announcement_message(ChannelAnnouncement val) { + public void set_announcement_message(@Nullable ChannelAnnouncement val) { bindings.ChannelInfo_set_announcement_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -149,6 +169,7 @@ public class ChannelInfo extends CommonBase { */ public static ChannelInfo of(ChannelFeatures features_arg, byte[] node_one_arg, DirectionalChannelInfo one_to_two_arg, byte[] node_two_arg, DirectionalChannelInfo two_to_one_arg, Option_u64Z capacity_sats_arg, ChannelAnnouncement announcement_message_arg) { long ret = bindings.ChannelInfo_new(features_arg == null ? 0 : features_arg.ptr & ~1, node_one_arg, one_to_two_arg == null ? 0 : one_to_two_arg.ptr & ~1, node_two_arg, two_to_one_arg == null ? 0 : two_to_one_arg.ptr & ~1, capacity_sats_arg.ptr, announcement_message_arg == null ? 0 : announcement_message_arg.ptr & ~1); + if (ret < 1024) { return null; } ChannelInfo ret_hu_conv = new ChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(features_arg); @@ -163,6 +184,7 @@ public class ChannelInfo extends CommonBase { */ public ChannelInfo clone() { long ret = bindings.ChannelInfo_clone(this.ptr); + if (ret < 1024) { return null; } ChannelInfo ret_hu_conv = new ChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -181,6 +203,7 @@ public class ChannelInfo extends CommonBase { */ public static Result_ChannelInfoDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelInfo_read(ser); + if (ret < 1024) { return null; } Result_ChannelInfoDecodeErrorZ ret_hu_conv = Result_ChannelInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelManager.java b/src/main/java/org/ldk/structs/ChannelManager.java index 60176ba1..850daf71 100644 --- a/src/main/java/org/ldk/structs/ChannelManager.java +++ b/src/main/java/org/ldk/structs/ChannelManager.java @@ -69,6 +69,7 @@ public class ChannelManager extends CommonBase { */ public static ChannelManager of(FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, ChainParameters params) { long ret = bindings.ChannelManager_new(fee_est == null ? 0 : fee_est.ptr, chain_monitor == null ? 0 : chain_monitor.ptr, tx_broadcaster == null ? 0 : tx_broadcaster.ptr, logger == null ? 0 : logger.ptr, keys_manager == null ? 0 : keys_manager.ptr, config == null ? 0 : config.ptr & ~1, params == null ? 0 : params.ptr & ~1); + if (ret < 1024) { return null; } ChannelManager ret_hu_conv = new ChannelManager(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(fee_est); @@ -86,6 +87,7 @@ public class ChannelManager extends CommonBase { */ public UserConfig get_current_default_configuration() { long ret = bindings.ChannelManager_get_current_default_configuration(this.ptr); + if (ret < 1024) { return null; } UserConfig ret_hu_conv = new UserConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -109,9 +111,12 @@ public class ChannelManager extends CommonBase { * Note that we do not check if you are currently connected to the given peer. If no * connection is available, the outbound `open_channel` message may fail to send, resulting in * the channel eventually being silently forgotten. + * + * Note that override_config (or a relevant inner pointer) may be NULL or all-0s to represent None */ public Result_NoneAPIErrorZ create_channel(byte[] their_network_key, long channel_value_satoshis, long push_msat, long user_id, UserConfig override_config) { long ret = bindings.ChannelManager_create_channel(this.ptr, their_network_key, channel_value_satoshis, push_msat, user_id, override_config == null ? 0 : override_config.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); this.ptrs_to.add(override_config); return ret_hu_conv; @@ -162,6 +167,7 @@ public class ChannelManager extends CommonBase { */ public Result_NoneAPIErrorZ close_channel(byte[] channel_id) { long ret = bindings.ChannelManager_close_channel(this.ptr, channel_id); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -172,6 +178,7 @@ public class ChannelManager extends CommonBase { */ public Result_NoneAPIErrorZ force_close_channel(byte[] channel_id) { long ret = bindings.ChannelManager_force_close_channel(this.ptr, channel_id); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -224,14 +231,39 @@ public class ChannelManager extends CommonBase { * If a payment_secret *is* provided, we assume that the invoice had the payment_secret feature * bit set (either as required or as available). If multiple paths are present in the Route, * we assume the invoice had the basic_mpp feature set. + * + * Note that payment_secret (or a relevant inner pointer) may be NULL or all-0s to represent None */ public Result_NonePaymentSendFailureZ send_payment(Route route, byte[] payment_hash, byte[] payment_secret) { long ret = bindings.ChannelManager_send_payment(this.ptr, route == null ? 0 : route.ptr & ~1, payment_hash, payment_secret); + if (ret < 1024) { return null; } Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); this.ptrs_to.add(route); return ret_hu_conv; } + /** + * Send a spontaneous payment, which is a payment that does not require the recipient to have + * generated an invoice. Optionally, you may specify the preimage. If you do choose to specify + * the preimage, it must be a cryptographically secure random value that no intermediate node + * would be able to guess -- otherwise, an intermediate node may claim the payment and it will + * never reach the recipient. + * + * Similar to regular payments, you MUST NOT reuse a `payment_preimage` value. See + * [`send_payment`] for more information about the risks of duplicate preimage usage. + * + * [`send_payment`]: Self::send_payment + * + * Note that payment_preimage (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public Result_PaymentHashPaymentSendFailureZ send_spontaneous_payment(Route route, @Nullable byte[] payment_preimage) { + long ret = bindings.ChannelManager_send_spontaneous_payment(this.ptr, route == null ? 0 : route.ptr & ~1, payment_preimage); + if (ret < 1024) { return null; } + Result_PaymentHashPaymentSendFailureZ ret_hu_conv = Result_PaymentHashPaymentSendFailureZ.constr_from_ptr(ret); + this.ptrs_to.add(route); + return ret_hu_conv; + } + /** * Call this upon creation of a funding transaction for the given channel. * @@ -256,6 +288,7 @@ public class ChannelManager extends CommonBase { */ public Result_NoneAPIErrorZ funding_transaction_generated(byte[] temporary_channel_id, byte[] funding_transaction) { long ret = bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_transaction); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -395,6 +428,7 @@ public class ChannelManager extends CommonBase { */ public TwoTuple create_inbound_payment(Option_u64Z min_value_msat, int invoice_expiry_delta_secs, long user_payment_id) { long ret = bindings.ChannelManager_create_inbound_payment(this.ptr, min_value_msat.ptr, invoice_expiry_delta_secs, user_payment_id); + if (ret < 1024) { return null; } byte[] ret_a = bindings.LDKC2Tuple_PaymentHashPaymentSecretZ_get_a(ret); byte[] ret_b = bindings.LDKC2Tuple_PaymentHashPaymentSecretZ_get_b(ret); TwoTuple ret_conv = new TwoTuple(ret_a, ret_b, () -> { @@ -414,7 +448,7 @@ public class ChannelManager extends CommonBase { * The [`PaymentHash`] (and corresponding [`PaymentPreimage`]) must be globally unique. This * method may return an Err if another payment with the same payment_hash is still pending. * - * `user_payment_id` will be provided back in [`PaymentReceived::user_payment_id`] events to + * `user_payment_id` will be provided back in [`PaymentPurpose::InvoicePayment::user_payment_id`] events to * allow tracking of which events correspond with which calls to this and * [`create_inbound_payment`]. `user_payment_id` has no meaning inside of LDK, it is simply * copied to events and otherwise ignored. It may be used to correlate PaymentReceived events @@ -448,10 +482,11 @@ public class ChannelManager extends CommonBase { * * [`create_inbound_payment`]: Self::create_inbound_payment * [`PaymentReceived`]: events::Event::PaymentReceived - * [`PaymentReceived::user_payment_id`]: events::Event::PaymentReceived::user_payment_id + * [`PaymentPurpose::InvoicePayment::user_payment_id`]: events::PaymentPurpose::InvoicePayment::user_payment_id */ public Result_PaymentSecretAPIErrorZ create_inbound_payment_for_hash(byte[] payment_hash, Option_u64Z min_value_msat, int invoice_expiry_delta_secs, long user_payment_id) { long ret = bindings.ChannelManager_create_inbound_payment_for_hash(this.ptr, payment_hash, min_value_msat.ptr, invoice_expiry_delta_secs, user_payment_id); + if (ret < 1024) { return null; } Result_PaymentSecretAPIErrorZ ret_hu_conv = Result_PaymentSecretAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -462,6 +497,7 @@ public class ChannelManager extends CommonBase { */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr); + if (ret < 1024) { return null; } MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -473,6 +509,7 @@ public class ChannelManager extends CommonBase { */ public EventsProvider as_EventsProvider() { long ret = bindings.ChannelManager_as_EventsProvider(this.ptr); + if (ret < 1024) { return null; } EventsProvider ret_hu_conv = new EventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -484,6 +521,7 @@ public class ChannelManager extends CommonBase { */ public Listen as_Listen() { long ret = bindings.ChannelManager_as_Listen(this.ptr); + if (ret < 1024) { return null; } Listen ret_hu_conv = new Listen(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -495,6 +533,7 @@ public class ChannelManager extends CommonBase { */ public Confirm as_Confirm() { long ret = bindings.ChannelManager_as_Confirm(this.ptr); + if (ret < 1024) { return null; } Confirm ret_hu_conv = new Confirm(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -527,6 +566,7 @@ public class ChannelManager extends CommonBase { */ public BestBlock current_best_block() { long ret = bindings.ChannelManager_current_best_block(this.ptr); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -538,6 +578,7 @@ public class ChannelManager extends CommonBase { */ public ChannelMessageHandler as_ChannelMessageHandler() { long ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr); + if (ret < 1024) { return null; } ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelManagerPersister.java b/src/main/java/org/ldk/structs/ChannelManagerPersister.java index 1bbc3e30..d159450f 100644 --- a/src/main/java/org/ldk/structs/ChannelManagerPersister.java +++ b/src/main/java/org/ldk/structs/ChannelManagerPersister.java @@ -54,6 +54,7 @@ public class ChannelManagerPersister extends CommonBase { */ public Result_NoneErrorZ persist_manager(ChannelManager channel_manager) { long ret = bindings.ChannelManagerPersister_persist_manager(this.ptr, channel_manager == null ? 0 : channel_manager.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); this.ptrs_to.add(channel_manager); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java b/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java index 8f49dd3f..e49adabc 100644 --- a/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java +++ b/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java @@ -49,6 +49,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public KeysInterface get_keys_manager() { long ret = bindings.ChannelManagerReadArgs_get_keys_manager(this.ptr); + if (ret < 1024) { return null; } KeysInterface ret_hu_conv = new KeysInterface(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -71,6 +72,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public FeeEstimator get_fee_estimator() { long ret = bindings.ChannelManagerReadArgs_get_fee_estimator(this.ptr); + if (ret < 1024) { return null; } FeeEstimator ret_hu_conv = new FeeEstimator(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -95,6 +97,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public Watch get_chain_monitor() { long ret = bindings.ChannelManagerReadArgs_get_chain_monitor(this.ptr); + if (ret < 1024) { return null; } Watch ret_hu_conv = new Watch(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -119,6 +122,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public BroadcasterInterface get_tx_broadcaster() { long ret = bindings.ChannelManagerReadArgs_get_tx_broadcaster(this.ptr); + if (ret < 1024) { return null; } BroadcasterInterface ret_hu_conv = new BroadcasterInterface(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -140,6 +144,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public Logger get_logger() { long ret = bindings.ChannelManagerReadArgs_get_logger(this.ptr); + if (ret < 1024) { return null; } Logger ret_hu_conv = new Logger(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -160,6 +165,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public UserConfig get_default_config() { long ret = bindings.ChannelManagerReadArgs_get_default_config(this.ptr); + if (ret < 1024) { return null; } UserConfig ret_hu_conv = new UserConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -181,6 +187,7 @@ public class ChannelManagerReadArgs extends CommonBase { */ public static ChannelManagerReadArgs of(KeysInterface keys_manager, FeeEstimator fee_estimator, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, UserConfig default_config, ChannelMonitor[] channel_monitors) { long ret = bindings.ChannelManagerReadArgs_new(keys_manager == null ? 0 : keys_manager.ptr, fee_estimator == null ? 0 : fee_estimator.ptr, chain_monitor == null ? 0 : chain_monitor.ptr, tx_broadcaster == null ? 0 : tx_broadcaster.ptr, logger == null ? 0 : logger.ptr, default_config == null ? 0 : default_config.ptr & ~1, Arrays.stream(channel_monitors).mapToLong(channel_monitors_conv_16 -> channel_monitors_conv_16 == null ? 0 : channel_monitors_conv_16.ptr & ~1).toArray()); + if (ret < 1024) { return null; } ChannelManagerReadArgs ret_hu_conv = new ChannelManagerReadArgs(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(keys_manager); diff --git a/src/main/java/org/ldk/structs/ChannelMessageHandler.java b/src/main/java/org/ldk/structs/ChannelMessageHandler.java index c5bb6272..32ea53ac 100644 --- a/src/main/java/org/ldk/structs/ChannelMessageHandler.java +++ b/src/main/java/org/ldk/structs/ChannelMessageHandler.java @@ -202,6 +202,16 @@ public class ChannelMessageHandler extends CommonBase { }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance); return impl_holder.held; } + + /** + * Gets the underlying MessageSendEventsProvider. + */ + public MessageSendEventsProvider get_message_send_events_provider() { + MessageSendEventsProvider res = new MessageSendEventsProvider(null, bindings.LDKChannelMessageHandler_get_MessageSendEventsProvider(this.ptr)); + this.ptrs_to.add(res); + return res; + } + /** * Handle an incoming open_channel message from the given peer. */ diff --git a/src/main/java/org/ldk/structs/ChannelMonitor.java b/src/main/java/org/ldk/structs/ChannelMonitor.java index 68b04ace..d0c0448d 100644 --- a/src/main/java/org/ldk/structs/ChannelMonitor.java +++ b/src/main/java/org/ldk/structs/ChannelMonitor.java @@ -38,6 +38,7 @@ public class ChannelMonitor extends CommonBase { */ public ChannelMonitor clone() { long ret = bindings.ChannelMonitor_clone(this.ptr); + if (ret < 1024) { return null; } ChannelMonitor ret_hu_conv = new ChannelMonitor(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -59,6 +60,7 @@ public class ChannelMonitor extends CommonBase { */ public Result_NoneMonitorUpdateErrorZ update_monitor(ChannelMonitorUpdate updates, BroadcasterInterface broadcaster, FeeEstimator fee_estimator, Logger logger) { long ret = bindings.ChannelMonitor_update_monitor(this.ptr, updates == null ? 0 : updates.ptr & ~1, broadcaster == null ? 0 : broadcaster.ptr, fee_estimator == null ? 0 : fee_estimator.ptr, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } Result_NoneMonitorUpdateErrorZ ret_hu_conv = Result_NoneMonitorUpdateErrorZ.constr_from_ptr(ret); this.ptrs_to.add(updates); this.ptrs_to.add(broadcaster); @@ -81,6 +83,7 @@ public class ChannelMonitor extends CommonBase { */ public TwoTuple get_funding_txo() { long ret = bindings.ChannelMonitor_get_funding_txo(this.ptr); + if (ret < 1024) { return null; } long ret_a = bindings.LDKC2Tuple_OutPointScriptZ_get_a(ret); OutPoint ret_a_hu_conv = new OutPoint(null, ret_a); ret_a_hu_conv.ptrs_to.add(this);; @@ -343,6 +346,7 @@ public class ChannelMonitor extends CommonBase { */ public BestBlock current_best_block() { long ret = bindings.ChannelMonitor_current_best_block(this.ptr); + if (ret < 1024) { return null; } BestBlock ret_hu_conv = new BestBlock(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java b/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java index fec769a5..06c462ec 100644 --- a/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java +++ b/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java @@ -59,6 +59,7 @@ public class ChannelMonitorUpdate extends CommonBase { */ public ChannelMonitorUpdate clone() { long ret = bindings.ChannelMonitorUpdate_clone(this.ptr); + if (ret < 1024) { return null; } ChannelMonitorUpdate ret_hu_conv = new ChannelMonitorUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -77,6 +78,7 @@ public class ChannelMonitorUpdate extends CommonBase { */ public static Result_ChannelMonitorUpdateDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelMonitorUpdate_read(ser); + if (ret < 1024) { return null; } Result_ChannelMonitorUpdateDecodeErrorZ ret_hu_conv = Result_ChannelMonitorUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelPublicKeys.java b/src/main/java/org/ldk/structs/ChannelPublicKeys.java index 1d595299..a0f36a83 100644 --- a/src/main/java/org/ldk/structs/ChannelPublicKeys.java +++ b/src/main/java/org/ldk/structs/ChannelPublicKeys.java @@ -116,6 +116,7 @@ public class ChannelPublicKeys extends CommonBase { */ 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(funding_pubkey_arg, revocation_basepoint_arg, payment_point_arg, delayed_payment_basepoint_arg, htlc_basepoint_arg); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -126,6 +127,7 @@ public class ChannelPublicKeys extends CommonBase { */ public ChannelPublicKeys clone() { long ret = bindings.ChannelPublicKeys_clone(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -144,6 +146,7 @@ public class ChannelPublicKeys extends CommonBase { */ public static Result_ChannelPublicKeysDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelPublicKeys_read(ser); + if (ret < 1024) { return null; } Result_ChannelPublicKeysDecodeErrorZ ret_hu_conv = Result_ChannelPublicKeysDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelReestablish.java b/src/main/java/org/ldk/structs/ChannelReestablish.java index 120a4c04..2736915b 100644 --- a/src/main/java/org/ldk/structs/ChannelReestablish.java +++ b/src/main/java/org/ldk/structs/ChannelReestablish.java @@ -68,6 +68,7 @@ public class ChannelReestablish extends CommonBase { */ public ChannelReestablish clone() { long ret = bindings.ChannelReestablish_clone(this.ptr); + if (ret < 1024) { return null; } ChannelReestablish ret_hu_conv = new ChannelReestablish(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -86,6 +87,7 @@ public class ChannelReestablish extends CommonBase { */ public static Result_ChannelReestablishDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelReestablish_read(ser); + if (ret < 1024) { return null; } Result_ChannelReestablishDecodeErrorZ ret_hu_conv = Result_ChannelReestablishDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelTransactionParameters.java b/src/main/java/org/ldk/structs/ChannelTransactionParameters.java index 747064b2..363f4bb3 100644 --- a/src/main/java/org/ldk/structs/ChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/ChannelTransactionParameters.java @@ -27,6 +27,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public ChannelPublicKeys get_holder_pubkeys() { long ret = bindings.ChannelTransactionParameters_get_holder_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -75,9 +76,13 @@ public class ChannelTransactionParameters extends CommonBase { /** * The late-bound counterparty channel transaction parameters. * These parameters are populated at the point in the protocol where the counterparty provides them. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public CounterpartyChannelTransactionParameters get_counterparty_parameters() { long ret = bindings.ChannelTransactionParameters_get_counterparty_parameters(this.ptr); + if (ret < 1024) { return null; } CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -86,17 +91,23 @@ public class ChannelTransactionParameters extends CommonBase { /** * The late-bound counterparty channel transaction parameters. * These parameters are populated at the point in the protocol where the counterparty provides them. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_counterparty_parameters(CounterpartyChannelTransactionParameters val) { + public void set_counterparty_parameters(@Nullable CounterpartyChannelTransactionParameters val) { bindings.ChannelTransactionParameters_set_counterparty_parameters(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } /** * The late-bound funding outpoint + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public OutPoint get_funding_outpoint() { long ret = bindings.ChannelTransactionParameters_get_funding_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -104,8 +115,10 @@ public class ChannelTransactionParameters extends CommonBase { /** * The late-bound funding outpoint + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_funding_outpoint(OutPoint val) { + public void set_funding_outpoint(@Nullable OutPoint val) { bindings.ChannelTransactionParameters_set_funding_outpoint(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -115,6 +128,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public static ChannelTransactionParameters of(ChannelPublicKeys holder_pubkeys_arg, short holder_selected_contest_delay_arg, boolean is_outbound_from_holder_arg, CounterpartyChannelTransactionParameters counterparty_parameters_arg, OutPoint funding_outpoint_arg) { long ret = bindings.ChannelTransactionParameters_new(holder_pubkeys_arg == null ? 0 : holder_pubkeys_arg.ptr & ~1, holder_selected_contest_delay_arg, is_outbound_from_holder_arg, counterparty_parameters_arg == null ? 0 : counterparty_parameters_arg.ptr & ~1, funding_outpoint_arg == null ? 0 : funding_outpoint_arg.ptr & ~1); + if (ret < 1024) { return null; } ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(holder_pubkeys_arg); @@ -128,6 +142,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public ChannelTransactionParameters clone() { long ret = bindings.ChannelTransactionParameters_clone(this.ptr); + if (ret < 1024) { return null; } ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -149,6 +164,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public DirectedChannelTransactionParameters as_holder_broadcastable() { long ret = bindings.ChannelTransactionParameters_as_holder_broadcastable(this.ptr); + if (ret < 1024) { return null; } DirectedChannelTransactionParameters ret_hu_conv = new DirectedChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -162,6 +178,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public DirectedChannelTransactionParameters as_counterparty_broadcastable() { long ret = bindings.ChannelTransactionParameters_as_counterparty_broadcastable(this.ptr); + if (ret < 1024) { return null; } DirectedChannelTransactionParameters ret_hu_conv = new DirectedChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -180,6 +197,7 @@ public class ChannelTransactionParameters extends CommonBase { */ public static Result_ChannelTransactionParametersDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelTransactionParameters_read(ser); + if (ret < 1024) { return null; } Result_ChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_ChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ChannelUpdate.java b/src/main/java/org/ldk/structs/ChannelUpdate.java index d121b628..b4103271 100644 --- a/src/main/java/org/ldk/structs/ChannelUpdate.java +++ b/src/main/java/org/ldk/structs/ChannelUpdate.java @@ -38,6 +38,7 @@ public class ChannelUpdate extends CommonBase { */ public UnsignedChannelUpdate get_contents() { long ret = bindings.ChannelUpdate_get_contents(this.ptr); + if (ret < 1024) { return null; } UnsignedChannelUpdate ret_hu_conv = new UnsignedChannelUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -56,6 +57,7 @@ public class ChannelUpdate extends CommonBase { */ public static ChannelUpdate of(byte[] signature_arg, UnsignedChannelUpdate contents_arg) { long ret = bindings.ChannelUpdate_new(signature_arg, contents_arg == null ? 0 : contents_arg.ptr & ~1); + if (ret < 1024) { return null; } ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(contents_arg); @@ -67,6 +69,7 @@ public class ChannelUpdate extends CommonBase { */ public ChannelUpdate clone() { long ret = bindings.ChannelUpdate_clone(this.ptr); + if (ret < 1024) { return null; } ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -85,6 +88,7 @@ public class ChannelUpdate extends CommonBase { */ public static Result_ChannelUpdateDecodeErrorZ read(byte[] ser) { long ret = bindings.ChannelUpdate_read(ser); + if (ret < 1024) { return null; } Result_ChannelUpdateDecodeErrorZ ret_hu_conv = Result_ChannelUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ClosingSigned.java b/src/main/java/org/ldk/structs/ClosingSigned.java index cd5070e7..3cb19360 100644 --- a/src/main/java/org/ldk/structs/ClosingSigned.java +++ b/src/main/java/org/ldk/structs/ClosingSigned.java @@ -68,6 +68,7 @@ public class ClosingSigned extends CommonBase { */ public static ClosingSigned of(byte[] channel_id_arg, long fee_satoshis_arg, byte[] signature_arg) { long ret = bindings.ClosingSigned_new(channel_id_arg, fee_satoshis_arg, signature_arg); + if (ret < 1024) { return null; } ClosingSigned ret_hu_conv = new ClosingSigned(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -78,6 +79,7 @@ public class ClosingSigned extends CommonBase { */ public ClosingSigned clone() { long ret = bindings.ClosingSigned_clone(this.ptr); + if (ret < 1024) { return null; } ClosingSigned ret_hu_conv = new ClosingSigned(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -96,6 +98,7 @@ public class ClosingSigned extends CommonBase { */ public static Result_ClosingSignedDecodeErrorZ read(byte[] ser) { long ret = bindings.ClosingSigned_read(ser); + if (ret < 1024) { return null; } Result_ClosingSignedDecodeErrorZ ret_hu_conv = Result_ClosingSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/CommitmentSigned.java b/src/main/java/org/ldk/structs/CommitmentSigned.java index 33893520..41ac7d1a 100644 --- a/src/main/java/org/ldk/structs/CommitmentSigned.java +++ b/src/main/java/org/ldk/structs/CommitmentSigned.java @@ -60,6 +60,7 @@ public class CommitmentSigned extends CommonBase { */ public static CommitmentSigned of(byte[] channel_id_arg, byte[] signature_arg, byte[][] htlc_signatures_arg) { long ret = bindings.CommitmentSigned_new(channel_id_arg, signature_arg, htlc_signatures_arg); + if (ret < 1024) { return null; } CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -70,6 +71,7 @@ public class CommitmentSigned extends CommonBase { */ public CommitmentSigned clone() { long ret = bindings.CommitmentSigned_clone(this.ptr); + if (ret < 1024) { return null; } CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -88,6 +90,7 @@ public class CommitmentSigned extends CommonBase { */ public static Result_CommitmentSignedDecodeErrorZ read(byte[] ser) { long ret = bindings.CommitmentSigned_read(ser); + if (ret < 1024) { return null; } Result_CommitmentSignedDecodeErrorZ ret_hu_conv = Result_CommitmentSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/CommitmentTransaction.java b/src/main/java/org/ldk/structs/CommitmentTransaction.java index 42f044ac..41d1cb37 100644 --- a/src/main/java/org/ldk/structs/CommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/CommitmentTransaction.java @@ -28,6 +28,7 @@ public class CommitmentTransaction extends CommonBase { */ public CommitmentTransaction clone() { long ret = bindings.CommitmentTransaction_clone(this.ptr); + if (ret < 1024) { return null; } CommitmentTransaction ret_hu_conv = new CommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -46,6 +47,7 @@ public class CommitmentTransaction extends CommonBase { */ public static Result_CommitmentTransactionDecodeErrorZ read(byte[] ser) { long ret = bindings.CommitmentTransaction_read(ser); + if (ret < 1024) { return null; } Result_CommitmentTransactionDecodeErrorZ ret_hu_conv = Result_CommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -92,6 +94,7 @@ public class CommitmentTransaction extends CommonBase { */ public TrustedCommitmentTransaction trust() { long ret = bindings.CommitmentTransaction_trust(this.ptr); + if (ret < 1024) { return null; } TrustedCommitmentTransaction ret_hu_conv = new TrustedCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -107,6 +110,7 @@ public class CommitmentTransaction extends CommonBase { */ public Result_TrustedCommitmentTransactionNoneZ verify(DirectedChannelTransactionParameters channel_parameters, ChannelPublicKeys broadcaster_keys, ChannelPublicKeys countersignatory_keys) { long ret = bindings.CommitmentTransaction_verify(this.ptr, channel_parameters == null ? 0 : channel_parameters.ptr & ~1, broadcaster_keys == null ? 0 : broadcaster_keys.ptr & ~1, countersignatory_keys == null ? 0 : countersignatory_keys.ptr & ~1); + if (ret < 1024) { return null; } Result_TrustedCommitmentTransactionNoneZ ret_hu_conv = Result_TrustedCommitmentTransactionNoneZ.constr_from_ptr(ret); this.ptrs_to.add(channel_parameters); this.ptrs_to.add(broadcaster_keys); diff --git a/src/main/java/org/ldk/structs/CommitmentUpdate.java b/src/main/java/org/ldk/structs/CommitmentUpdate.java index dbd15bc6..e9e4b971 100644 --- a/src/main/java/org/ldk/structs/CommitmentUpdate.java +++ b/src/main/java/org/ldk/structs/CommitmentUpdate.java @@ -53,9 +53,13 @@ public class CommitmentUpdate extends CommonBase { /** * An update_fee message which should be sent + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public UpdateFee get_update_fee() { long ret = bindings.CommitmentUpdate_get_update_fee(this.ptr); + if (ret < 1024) { return null; } UpdateFee ret_hu_conv = new UpdateFee(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -63,8 +67,10 @@ public class CommitmentUpdate extends CommonBase { /** * An update_fee message which should be sent + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_update_fee(UpdateFee val) { + public void set_update_fee(@Nullable UpdateFee val) { bindings.CommitmentUpdate_set_update_fee(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -74,6 +80,7 @@ public class CommitmentUpdate extends CommonBase { */ public CommitmentSigned get_commitment_signed() { long ret = bindings.CommitmentUpdate_get_commitment_signed(this.ptr); + if (ret < 1024) { return null; } CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -92,6 +99,7 @@ public class CommitmentUpdate extends CommonBase { */ public static CommitmentUpdate of(UpdateAddHTLC[] update_add_htlcs_arg, UpdateFulfillHTLC[] update_fulfill_htlcs_arg, UpdateFailHTLC[] update_fail_htlcs_arg, UpdateFailMalformedHTLC[] update_fail_malformed_htlcs_arg, UpdateFee update_fee_arg, CommitmentSigned commitment_signed_arg) { long ret = bindings.CommitmentUpdate_new(Arrays.stream(update_add_htlcs_arg).mapToLong(update_add_htlcs_arg_conv_15 -> update_add_htlcs_arg_conv_15 == null ? 0 : update_add_htlcs_arg_conv_15.ptr & ~1).toArray(), Arrays.stream(update_fulfill_htlcs_arg).mapToLong(update_fulfill_htlcs_arg_conv_19 -> update_fulfill_htlcs_arg_conv_19 == null ? 0 : update_fulfill_htlcs_arg_conv_19.ptr & ~1).toArray(), Arrays.stream(update_fail_htlcs_arg).mapToLong(update_fail_htlcs_arg_conv_16 -> update_fail_htlcs_arg_conv_16 == null ? 0 : update_fail_htlcs_arg_conv_16.ptr & ~1).toArray(), Arrays.stream(update_fail_malformed_htlcs_arg).mapToLong(update_fail_malformed_htlcs_arg_conv_25 -> update_fail_malformed_htlcs_arg_conv_25 == null ? 0 : update_fail_malformed_htlcs_arg_conv_25.ptr & ~1).toArray(), update_fee_arg == null ? 0 : update_fee_arg.ptr & ~1, commitment_signed_arg == null ? 0 : commitment_signed_arg.ptr & ~1); + if (ret < 1024) { return null; } CommitmentUpdate ret_hu_conv = new CommitmentUpdate(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); /* TODO 2 UpdateAddHTLC */; @@ -108,6 +116,7 @@ public class CommitmentUpdate extends CommonBase { */ public CommitmentUpdate clone() { long ret = bindings.CommitmentUpdate_clone(this.ptr); + if (ret < 1024) { return null; } CommitmentUpdate ret_hu_conv = new CommitmentUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/CommonBase.java b/src/main/java/org/ldk/structs/CommonBase.java index 1794158b..62398862 100644 --- a/src/main/java/org/ldk/structs/CommonBase.java +++ b/src/main/java/org/ldk/structs/CommonBase.java @@ -3,5 +3,5 @@ import java.util.LinkedList; class CommonBase { long ptr; LinkedList ptrs_to = new LinkedList(); - protected CommonBase(long ptr) { this.ptr = ptr; } + protected CommonBase(long ptr) { assert ptr > 1024; this.ptr = ptr; } } diff --git a/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java b/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java index 887b60ae..2a631f4a 100644 --- a/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java @@ -23,6 +23,7 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { */ public ChannelPublicKeys get_pubkeys() { long ret = bindings.CounterpartyChannelTransactionParameters_get_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -56,6 +57,7 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { */ public static CounterpartyChannelTransactionParameters of(ChannelPublicKeys pubkeys_arg, short selected_contest_delay_arg) { long ret = bindings.CounterpartyChannelTransactionParameters_new(pubkeys_arg == null ? 0 : pubkeys_arg.ptr & ~1, selected_contest_delay_arg); + if (ret < 1024) { return null; } CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(pubkeys_arg); @@ -67,6 +69,7 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { */ public CounterpartyChannelTransactionParameters clone() { long ret = bindings.CounterpartyChannelTransactionParameters_clone(this.ptr); + if (ret < 1024) { return null; } CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -85,6 +88,7 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { */ public static Result_CounterpartyChannelTransactionParametersDecodeErrorZ read(byte[] ser) { long ret = bindings.CounterpartyChannelTransactionParameters_read(ser); + if (ret < 1024) { return null; } Result_CounterpartyChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_CounterpartyChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/DataLossProtect.java b/src/main/java/org/ldk/structs/DataLossProtect.java index 66a6af44..627f11bb 100644 --- a/src/main/java/org/ldk/structs/DataLossProtect.java +++ b/src/main/java/org/ldk/structs/DataLossProtect.java @@ -58,6 +58,7 @@ public class DataLossProtect extends CommonBase { */ public static DataLossProtect of(byte[] your_last_per_commitment_secret_arg, byte[] my_current_per_commitment_point_arg) { long ret = bindings.DataLossProtect_new(your_last_per_commitment_secret_arg, my_current_per_commitment_point_arg); + if (ret < 1024) { return null; } DataLossProtect ret_hu_conv = new DataLossProtect(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -68,6 +69,7 @@ public class DataLossProtect extends CommonBase { */ public DataLossProtect clone() { long ret = bindings.DataLossProtect_clone(this.ptr); + if (ret < 1024) { return null; } DataLossProtect ret_hu_conv = new DataLossProtect(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/DecodeError.java b/src/main/java/org/ldk/structs/DecodeError.java index 5a7703fc..ec49efbd 100644 --- a/src/main/java/org/ldk/structs/DecodeError.java +++ b/src/main/java/org/ldk/structs/DecodeError.java @@ -23,6 +23,7 @@ public class DecodeError extends CommonBase { */ public DecodeError clone() { long ret = bindings.DecodeError_clone(this.ptr); + if (ret < 1024) { return null; } DecodeError ret_hu_conv = new DecodeError(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java b/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java index 855b03ac..b64dc720 100644 --- a/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java @@ -24,6 +24,7 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { */ public OutPoint get_outpoint() { long ret = bindings.DelayedPaymentOutputDescriptor_get_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -132,6 +133,7 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { */ public static DelayedPaymentOutputDescriptor of(OutPoint outpoint_arg, byte[] per_commitment_point_arg, short to_self_delay_arg, 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 & ~1, per_commitment_point_arg, to_self_delay_arg, output_arg.ptr, revocation_pubkey_arg, channel_keys_id_arg, channel_value_satoshis_arg); + if (ret < 1024) { return null; } DelayedPaymentOutputDescriptor ret_hu_conv = new DelayedPaymentOutputDescriptor(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(outpoint_arg); @@ -143,6 +145,7 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { */ public DelayedPaymentOutputDescriptor clone() { long ret = bindings.DelayedPaymentOutputDescriptor_clone(this.ptr); + if (ret < 1024) { return null; } DelayedPaymentOutputDescriptor ret_hu_conv = new DelayedPaymentOutputDescriptor(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -161,6 +164,7 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { */ public static Result_DelayedPaymentOutputDescriptorDecodeErrorZ read(byte[] ser) { long ret = bindings.DelayedPaymentOutputDescriptor_read(ser); + if (ret < 1024) { return null; } Result_DelayedPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_DelayedPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Description.java b/src/main/java/org/ldk/structs/Description.java index b9b165c1..055e3a03 100644 --- a/src/main/java/org/ldk/structs/Description.java +++ b/src/main/java/org/ldk/structs/Description.java @@ -37,6 +37,7 @@ public class Description extends CommonBase { */ public Description clone() { long ret = bindings.Description_clone(this.ptr); + if (ret < 1024) { return null; } Description ret_hu_conv = new Description(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -50,6 +51,7 @@ public class Description extends CommonBase { */ public static Result_DescriptionCreationErrorZ of(String description) { long ret = bindings.Description_new(description); + if (ret < 1024) { return null; } Result_DescriptionCreationErrorZ ret_hu_conv = Result_DescriptionCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java b/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java index 17b9ab0b..0543b797 100644 --- a/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java @@ -27,6 +27,7 @@ public class DirectedChannelTransactionParameters extends CommonBase { */ public ChannelPublicKeys broadcaster_pubkeys() { long ret = bindings.DirectedChannelTransactionParameters_broadcaster_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -37,6 +38,7 @@ public class DirectedChannelTransactionParameters extends CommonBase { */ public ChannelPublicKeys countersignatory_pubkeys() { long ret = bindings.DirectedChannelTransactionParameters_countersignatory_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -67,6 +69,7 @@ public class DirectedChannelTransactionParameters extends CommonBase { */ public OutPoint funding_outpoint() { long ret = bindings.DirectedChannelTransactionParameters_funding_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/DirectionalChannelInfo.java b/src/main/java/org/ldk/structs/DirectionalChannelInfo.java index e2f59c10..1736de65 100644 --- a/src/main/java/org/ldk/structs/DirectionalChannelInfo.java +++ b/src/main/java/org/ldk/structs/DirectionalChannelInfo.java @@ -86,6 +86,7 @@ public class DirectionalChannelInfo extends CommonBase { */ public Option_u64Z get_htlc_maximum_msat() { long ret = bindings.DirectionalChannelInfo_get_htlc_maximum_msat(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -103,6 +104,7 @@ public class DirectionalChannelInfo extends CommonBase { */ public RoutingFees get_fees() { long ret = bindings.DirectionalChannelInfo_get_fees(this.ptr); + if (ret < 1024) { return null; } RoutingFees ret_hu_conv = new RoutingFees(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -121,9 +123,13 @@ public class DirectionalChannelInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public ChannelUpdate get_last_update_message() { long ret = bindings.DirectionalChannelInfo_get_last_update_message(this.ptr); + if (ret < 1024) { return null; } ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -134,8 +140,10 @@ public class DirectionalChannelInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_last_update_message(ChannelUpdate val) { + public void set_last_update_message(@Nullable ChannelUpdate val) { bindings.DirectionalChannelInfo_set_last_update_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -145,6 +153,7 @@ public class DirectionalChannelInfo extends CommonBase { */ public static DirectionalChannelInfo of(int last_update_arg, boolean enabled_arg, short cltv_expiry_delta_arg, long htlc_minimum_msat_arg, Option_u64Z htlc_maximum_msat_arg, RoutingFees fees_arg, ChannelUpdate last_update_message_arg) { long ret = bindings.DirectionalChannelInfo_new(last_update_arg, enabled_arg, cltv_expiry_delta_arg, htlc_minimum_msat_arg, htlc_maximum_msat_arg.ptr, fees_arg == null ? 0 : fees_arg.ptr & ~1, last_update_message_arg == null ? 0 : last_update_message_arg.ptr & ~1); + if (ret < 1024) { return null; } DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(fees_arg); @@ -157,6 +166,7 @@ public class DirectionalChannelInfo extends CommonBase { */ public DirectionalChannelInfo clone() { long ret = bindings.DirectionalChannelInfo_clone(this.ptr); + if (ret < 1024) { return null; } DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -175,6 +185,7 @@ public class DirectionalChannelInfo extends CommonBase { */ public static Result_DirectionalChannelInfoDecodeErrorZ read(byte[] ser) { long ret = bindings.DirectionalChannelInfo_read(ser); + if (ret < 1024) { return null; } Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ErrorAction.java b/src/main/java/org/ldk/structs/ErrorAction.java index 3eb5e9c3..3c1fe74b 100644 --- a/src/main/java/org/ldk/structs/ErrorAction.java +++ b/src/main/java/org/ldk/structs/ErrorAction.java @@ -71,6 +71,7 @@ public class ErrorAction extends CommonBase { */ public ErrorAction clone() { long ret = bindings.ErrorAction_clone(this.ptr); + if (ret < 1024) { return null; } ErrorAction ret_hu_conv = ErrorAction.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ErrorMessage.java b/src/main/java/org/ldk/structs/ErrorMessage.java index c68a56d9..63bd37de 100644 --- a/src/main/java/org/ldk/structs/ErrorMessage.java +++ b/src/main/java/org/ldk/structs/ErrorMessage.java @@ -59,6 +59,7 @@ public class ErrorMessage extends CommonBase { */ public static ErrorMessage of(byte[] channel_id_arg, String data_arg) { long ret = bindings.ErrorMessage_new(channel_id_arg, data_arg); + if (ret < 1024) { return null; } ErrorMessage ret_hu_conv = new ErrorMessage(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -69,6 +70,7 @@ public class ErrorMessage extends CommonBase { */ public ErrorMessage clone() { long ret = bindings.ErrorMessage_clone(this.ptr); + if (ret < 1024) { return null; } ErrorMessage ret_hu_conv = new ErrorMessage(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -87,6 +89,7 @@ public class ErrorMessage extends CommonBase { */ public static Result_ErrorMessageDecodeErrorZ read(byte[] ser) { long ret = bindings.ErrorMessage_read(ser); + if (ret < 1024) { return null; } Result_ErrorMessageDecodeErrorZ ret_hu_conv = Result_ErrorMessageDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ErroringMessageHandler.java b/src/main/java/org/ldk/structs/ErroringMessageHandler.java index ee377ed4..779333bf 100644 --- a/src/main/java/org/ldk/structs/ErroringMessageHandler.java +++ b/src/main/java/org/ldk/structs/ErroringMessageHandler.java @@ -24,6 +24,7 @@ public class ErroringMessageHandler extends CommonBase { */ public static ErroringMessageHandler of() { long ret = bindings.ErroringMessageHandler_new(); + if (ret < 1024) { return null; } ErroringMessageHandler ret_hu_conv = new ErroringMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -35,6 +36,7 @@ public class ErroringMessageHandler extends CommonBase { */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.ErroringMessageHandler_as_MessageSendEventsProvider(this.ptr); + if (ret < 1024) { return null; } MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -46,6 +48,7 @@ public class ErroringMessageHandler extends CommonBase { */ public ChannelMessageHandler as_ChannelMessageHandler() { long ret = bindings.ErroringMessageHandler_as_ChannelMessageHandler(this.ptr); + if (ret < 1024) { return null; } ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Event.java b/src/main/java/org/ldk/structs/Event.java index b519a856..a91a81b4 100644 --- a/src/main/java/org/ldk/structs/Event.java +++ b/src/main/java/org/ldk/structs/Event.java @@ -59,17 +59,16 @@ public class Event extends CommonBase { } public final static class PaymentReceived extends Event { public final byte[] payment_hash; - public final byte[] payment_preimage; - public final byte[] payment_secret; public final long amt; - public final long user_payment_id; + public final PaymentPurpose purpose; private PaymentReceived(long ptr, bindings.LDKEvent.PaymentReceived obj) { super(null, ptr); this.payment_hash = obj.payment_hash; - this.payment_preimage = obj.payment_preimage; - this.payment_secret = obj.payment_secret; this.amt = obj.amt; - this.user_payment_id = obj.user_payment_id; + long purpose = obj.purpose; + PaymentPurpose purpose_hu_conv = PaymentPurpose.constr_from_ptr(purpose); + purpose_hu_conv.ptrs_to.add(this); + this.purpose = purpose_hu_conv; } } public final static class PaymentSent extends Event { @@ -115,6 +114,7 @@ public class Event extends CommonBase { */ public Event clone() { long ret = bindings.Event_clone(this.ptr); + if (ret < 1024) { return null; } Event ret_hu_conv = Event.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/ExpiryTime.java b/src/main/java/org/ldk/structs/ExpiryTime.java index 061b549d..6b652123 100644 --- a/src/main/java/org/ldk/structs/ExpiryTime.java +++ b/src/main/java/org/ldk/structs/ExpiryTime.java @@ -40,6 +40,7 @@ public class ExpiryTime extends CommonBase { */ public ExpiryTime clone() { long ret = bindings.ExpiryTime_clone(this.ptr); + if (ret < 1024) { return null; } ExpiryTime ret_hu_conv = new ExpiryTime(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -52,6 +53,7 @@ public class ExpiryTime extends CommonBase { */ public static Result_ExpiryTimeCreationErrorZ from_seconds(long seconds) { long ret = bindings.ExpiryTime_from_seconds(seconds); + if (ret < 1024) { return null; } Result_ExpiryTimeCreationErrorZ ret_hu_conv = Result_ExpiryTimeCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -63,6 +65,7 @@ public class ExpiryTime extends CommonBase { */ public static Result_ExpiryTimeCreationErrorZ from_duration(long duration) { long ret = bindings.ExpiryTime_from_duration(duration); + if (ret < 1024) { return null; } Result_ExpiryTimeCreationErrorZ ret_hu_conv = Result_ExpiryTimeCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Fallback.java b/src/main/java/org/ldk/structs/Fallback.java index de5495fe..a4585162 100644 --- a/src/main/java/org/ldk/structs/Fallback.java +++ b/src/main/java/org/ldk/structs/Fallback.java @@ -61,6 +61,7 @@ public class Fallback extends CommonBase { */ public Fallback clone() { long ret = bindings.Fallback_clone(this.ptr); + if (ret < 1024) { return null; } Fallback ret_hu_conv = Fallback.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/FilesystemPersister.java b/src/main/java/org/ldk/structs/FilesystemPersister.java index 4df4cb28..0de2d317 100644 --- a/src/main/java/org/ldk/structs/FilesystemPersister.java +++ b/src/main/java/org/ldk/structs/FilesystemPersister.java @@ -35,6 +35,7 @@ public class FilesystemPersister extends CommonBase { */ public static FilesystemPersister of(String path_to_channel_data) { long ret = bindings.FilesystemPersister_new(path_to_channel_data); + if (ret < 1024) { return null; } FilesystemPersister ret_hu_conv = new FilesystemPersister(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -53,6 +54,7 @@ public class FilesystemPersister extends CommonBase { */ public Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ read_channelmonitors(KeysInterface keys_manager) { long ret = bindings.FilesystemPersister_read_channelmonitors(this.ptr, keys_manager == null ? 0 : keys_manager.ptr); + if (ret < 1024) { return null; } Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ ret_hu_conv = Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.constr_from_ptr(ret); this.ptrs_to.add(keys_manager); return ret_hu_conv; @@ -64,6 +66,7 @@ public class FilesystemPersister extends CommonBase { */ public Persist as_Persist() { long ret = bindings.FilesystemPersister_as_Persist(this.ptr); + if (ret < 1024) { return null; } Persist ret_hu_conv = new Persist(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Filter.java b/src/main/java/org/ldk/structs/Filter.java index e1dc712c..ac15b01a 100644 --- a/src/main/java/org/ldk/structs/Filter.java +++ b/src/main/java/org/ldk/structs/Filter.java @@ -98,6 +98,7 @@ public class Filter extends CommonBase { */ public Option_C2Tuple_usizeTransactionZZ register_output(WatchedOutput output) { long ret = bindings.Filter_register_output(this.ptr, output == null ? 0 : output.ptr & ~1); + if (ret < 1024) { return null; } Option_C2Tuple_usizeTransactionZZ ret_hu_conv = Option_C2Tuple_usizeTransactionZZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); this.ptrs_to.add(output); diff --git a/src/main/java/org/ldk/structs/FundingCreated.java b/src/main/java/org/ldk/structs/FundingCreated.java index a49682c5..c270d9c9 100644 --- a/src/main/java/org/ldk/structs/FundingCreated.java +++ b/src/main/java/org/ldk/structs/FundingCreated.java @@ -83,6 +83,7 @@ public class FundingCreated extends CommonBase { */ public static FundingCreated of(byte[] temporary_channel_id_arg, byte[] funding_txid_arg, short funding_output_index_arg, byte[] signature_arg) { long ret = bindings.FundingCreated_new(temporary_channel_id_arg, funding_txid_arg, funding_output_index_arg, signature_arg); + if (ret < 1024) { return null; } FundingCreated ret_hu_conv = new FundingCreated(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -93,6 +94,7 @@ public class FundingCreated extends CommonBase { */ public FundingCreated clone() { long ret = bindings.FundingCreated_clone(this.ptr); + if (ret < 1024) { return null; } FundingCreated ret_hu_conv = new FundingCreated(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -111,6 +113,7 @@ public class FundingCreated extends CommonBase { */ public static Result_FundingCreatedDecodeErrorZ read(byte[] ser) { long ret = bindings.FundingCreated_read(ser); + if (ret < 1024) { return null; } Result_FundingCreatedDecodeErrorZ ret_hu_conv = Result_FundingCreatedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/FundingLocked.java b/src/main/java/org/ldk/structs/FundingLocked.java index 4f5daef2..9d7adabc 100644 --- a/src/main/java/org/ldk/structs/FundingLocked.java +++ b/src/main/java/org/ldk/structs/FundingLocked.java @@ -53,6 +53,7 @@ public class FundingLocked extends CommonBase { */ public static FundingLocked of(byte[] channel_id_arg, byte[] next_per_commitment_point_arg) { long ret = bindings.FundingLocked_new(channel_id_arg, next_per_commitment_point_arg); + if (ret < 1024) { return null; } FundingLocked ret_hu_conv = new FundingLocked(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -63,6 +64,7 @@ public class FundingLocked extends CommonBase { */ public FundingLocked clone() { long ret = bindings.FundingLocked_clone(this.ptr); + if (ret < 1024) { return null; } FundingLocked ret_hu_conv = new FundingLocked(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +83,7 @@ public class FundingLocked extends CommonBase { */ public static Result_FundingLockedDecodeErrorZ read(byte[] ser) { long ret = bindings.FundingLocked_read(ser); + if (ret < 1024) { return null; } Result_FundingLockedDecodeErrorZ ret_hu_conv = Result_FundingLockedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/FundingSigned.java b/src/main/java/org/ldk/structs/FundingSigned.java index 5755a5b5..51e6f4ce 100644 --- a/src/main/java/org/ldk/structs/FundingSigned.java +++ b/src/main/java/org/ldk/structs/FundingSigned.java @@ -53,6 +53,7 @@ public class FundingSigned extends CommonBase { */ public static FundingSigned of(byte[] channel_id_arg, byte[] signature_arg) { long ret = bindings.FundingSigned_new(channel_id_arg, signature_arg); + if (ret < 1024) { return null; } FundingSigned ret_hu_conv = new FundingSigned(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -63,6 +64,7 @@ public class FundingSigned extends CommonBase { */ public FundingSigned clone() { long ret = bindings.FundingSigned_clone(this.ptr); + if (ret < 1024) { return null; } FundingSigned ret_hu_conv = new FundingSigned(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +83,7 @@ public class FundingSigned extends CommonBase { */ public static Result_FundingSignedDecodeErrorZ read(byte[] ser) { long ret = bindings.FundingSigned_read(ser); + if (ret < 1024) { return null; } Result_FundingSignedDecodeErrorZ ret_hu_conv = Result_FundingSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/GossipTimestampFilter.java b/src/main/java/org/ldk/structs/GossipTimestampFilter.java index b9602b43..f4bdfd4f 100644 --- a/src/main/java/org/ldk/structs/GossipTimestampFilter.java +++ b/src/main/java/org/ldk/structs/GossipTimestampFilter.java @@ -70,6 +70,7 @@ public class GossipTimestampFilter extends CommonBase { */ public static GossipTimestampFilter of(byte[] chain_hash_arg, int first_timestamp_arg, int timestamp_range_arg) { long ret = bindings.GossipTimestampFilter_new(chain_hash_arg, first_timestamp_arg, timestamp_range_arg); + if (ret < 1024) { return null; } GossipTimestampFilter ret_hu_conv = new GossipTimestampFilter(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -80,6 +81,7 @@ public class GossipTimestampFilter extends CommonBase { */ public GossipTimestampFilter clone() { long ret = bindings.GossipTimestampFilter_clone(this.ptr); + if (ret < 1024) { return null; } GossipTimestampFilter ret_hu_conv = new GossipTimestampFilter(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -90,6 +92,7 @@ public class GossipTimestampFilter extends CommonBase { */ public static Result_GossipTimestampFilterDecodeErrorZ read(byte[] ser) { long ret = bindings.GossipTimestampFilter_read(ser); + if (ret < 1024) { return null; } Result_GossipTimestampFilterDecodeErrorZ ret_hu_conv = Result_GossipTimestampFilterDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java b/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java index 7ce939f9..0f8c3c5e 100644 --- a/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java +++ b/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java @@ -66,6 +66,7 @@ public class HTLCFailChannelUpdate extends CommonBase { */ public HTLCFailChannelUpdate clone() { long ret = bindings.HTLCFailChannelUpdate_clone(this.ptr); + if (ret < 1024) { return null; } HTLCFailChannelUpdate ret_hu_conv = HTLCFailChannelUpdate.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java b/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java index 97a054bf..f12e9f00 100644 --- a/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java +++ b/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java @@ -93,6 +93,7 @@ public class HTLCOutputInCommitment extends CommonBase { */ public Option_u32Z get_transaction_output_index() { long ret = bindings.HTLCOutputInCommitment_get_transaction_output_index(this.ptr); + if (ret < 1024) { return null; } Option_u32Z ret_hu_conv = Option_u32Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -112,6 +113,7 @@ public class HTLCOutputInCommitment extends CommonBase { */ public static HTLCOutputInCommitment of(boolean offered_arg, long amount_msat_arg, int cltv_expiry_arg, byte[] payment_hash_arg, Option_u32Z transaction_output_index_arg) { long ret = bindings.HTLCOutputInCommitment_new(offered_arg, amount_msat_arg, cltv_expiry_arg, payment_hash_arg, transaction_output_index_arg.ptr); + if (ret < 1024) { return null; } HTLCOutputInCommitment ret_hu_conv = new HTLCOutputInCommitment(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -122,6 +124,7 @@ public class HTLCOutputInCommitment extends CommonBase { */ public HTLCOutputInCommitment clone() { long ret = bindings.HTLCOutputInCommitment_clone(this.ptr); + if (ret < 1024) { return null; } HTLCOutputInCommitment ret_hu_conv = new HTLCOutputInCommitment(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -140,6 +143,7 @@ public class HTLCOutputInCommitment extends CommonBase { */ public static Result_HTLCOutputInCommitmentDecodeErrorZ read(byte[] ser) { long ret = bindings.HTLCOutputInCommitment_read(ser); + if (ret < 1024) { return null; } Result_HTLCOutputInCommitmentDecodeErrorZ ret_hu_conv = Result_HTLCOutputInCommitmentDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/HTLCUpdate.java b/src/main/java/org/ldk/structs/HTLCUpdate.java index 6f6a08f7..994c1358 100644 --- a/src/main/java/org/ldk/structs/HTLCUpdate.java +++ b/src/main/java/org/ldk/structs/HTLCUpdate.java @@ -25,6 +25,7 @@ public class HTLCUpdate extends CommonBase { */ public HTLCUpdate clone() { long ret = bindings.HTLCUpdate_clone(this.ptr); + if (ret < 1024) { return null; } HTLCUpdate ret_hu_conv = new HTLCUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -43,6 +44,7 @@ public class HTLCUpdate extends CommonBase { */ public static Result_HTLCUpdateDecodeErrorZ read(byte[] ser) { long ret = bindings.HTLCUpdate_read(ser); + if (ret < 1024) { return null; } Result_HTLCUpdateDecodeErrorZ ret_hu_conv = Result_HTLCUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java b/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java index 11310a21..4b09169c 100644 --- a/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java @@ -47,6 +47,7 @@ public class HolderCommitmentTransaction extends CommonBase { */ public HolderCommitmentTransaction clone() { long ret = bindings.HolderCommitmentTransaction_clone(this.ptr); + if (ret < 1024) { return null; } HolderCommitmentTransaction ret_hu_conv = new HolderCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -65,6 +66,7 @@ public class HolderCommitmentTransaction extends CommonBase { */ public static Result_HolderCommitmentTransactionDecodeErrorZ read(byte[] ser) { long ret = bindings.HolderCommitmentTransaction_read(ser); + if (ret < 1024) { return null; } Result_HolderCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -75,6 +77,7 @@ public class HolderCommitmentTransaction extends CommonBase { */ public static HolderCommitmentTransaction of(CommitmentTransaction commitment_tx, byte[] counterparty_sig, byte[][] counterparty_htlc_sigs, byte[] holder_funding_key, byte[] counterparty_funding_key) { long ret = bindings.HolderCommitmentTransaction_new(commitment_tx == null ? 0 : commitment_tx.ptr & ~1, counterparty_sig, counterparty_htlc_sigs, holder_funding_key, counterparty_funding_key); + if (ret < 1024) { return null; } HolderCommitmentTransaction ret_hu_conv = new HolderCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(commitment_tx); diff --git a/src/main/java/org/ldk/structs/IgnoringMessageHandler.java b/src/main/java/org/ldk/structs/IgnoringMessageHandler.java index eb7a7fdc..2c5888f4 100644 --- a/src/main/java/org/ldk/structs/IgnoringMessageHandler.java +++ b/src/main/java/org/ldk/structs/IgnoringMessageHandler.java @@ -24,6 +24,7 @@ public class IgnoringMessageHandler extends CommonBase { */ public static IgnoringMessageHandler of() { long ret = bindings.IgnoringMessageHandler_new(); + if (ret < 1024) { return null; } IgnoringMessageHandler ret_hu_conv = new IgnoringMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -35,6 +36,7 @@ public class IgnoringMessageHandler extends CommonBase { */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.IgnoringMessageHandler_as_MessageSendEventsProvider(this.ptr); + if (ret < 1024) { return null; } MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -46,6 +48,7 @@ public class IgnoringMessageHandler extends CommonBase { */ public RoutingMessageHandler as_RoutingMessageHandler() { long ret = bindings.IgnoringMessageHandler_as_RoutingMessageHandler(this.ptr); + if (ret < 1024) { return null; } RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/InMemorySigner.java b/src/main/java/org/ldk/structs/InMemorySigner.java index 94b5af18..be5e2887 100644 --- a/src/main/java/org/ldk/structs/InMemorySigner.java +++ b/src/main/java/org/ldk/structs/InMemorySigner.java @@ -116,6 +116,7 @@ public class InMemorySigner extends CommonBase { */ public InMemorySigner clone() { long ret = bindings.InMemorySigner_clone(this.ptr); + if (ret < 1024) { return null; } InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -126,6 +127,7 @@ public class InMemorySigner extends CommonBase { */ public static InMemorySigner of(byte[] funding_key, byte[] revocation_base_key, byte[] payment_key, byte[] delayed_payment_base_key, byte[] htlc_base_key, byte[] commitment_seed, long channel_value_satoshis, byte[] channel_keys_id) { long ret = bindings.InMemorySigner_new(funding_key, revocation_base_key, payment_key, delayed_payment_base_key, htlc_base_key, commitment_seed, channel_value_satoshis, channel_keys_id); + if (ret < 1024) { return null; } InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -137,6 +139,7 @@ public class InMemorySigner extends CommonBase { */ public ChannelPublicKeys counterparty_pubkeys() { long ret = bindings.InMemorySigner_counterparty_pubkeys(this.ptr); + if (ret < 1024) { return null; } ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -179,6 +182,7 @@ public class InMemorySigner extends CommonBase { */ public OutPoint funding_outpoint() { long ret = bindings.InMemorySigner_funding_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -192,6 +196,7 @@ public class InMemorySigner extends CommonBase { */ public ChannelTransactionParameters get_channel_parameters() { long ret = bindings.InMemorySigner_get_channel_parameters(this.ptr); + if (ret < 1024) { return null; } ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -206,6 +211,7 @@ public class InMemorySigner extends CommonBase { */ public Result_CVec_CVec_u8ZZNoneZ sign_counterparty_payment_input(byte[] spend_tx, long input_idx, StaticPaymentOutputDescriptor descriptor) { long ret = bindings.InMemorySigner_sign_counterparty_payment_input(this.ptr, spend_tx, input_idx, descriptor == null ? 0 : descriptor.ptr & ~1); + if (ret < 1024) { return null; } Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); this.ptrs_to.add(descriptor); return ret_hu_conv; @@ -221,6 +227,7 @@ public class InMemorySigner extends CommonBase { */ public Result_CVec_CVec_u8ZZNoneZ sign_dynamic_p2wsh_input(byte[] spend_tx, long input_idx, DelayedPaymentOutputDescriptor descriptor) { long ret = bindings.InMemorySigner_sign_dynamic_p2wsh_input(this.ptr, spend_tx, input_idx, descriptor == null ? 0 : descriptor.ptr & ~1); + if (ret < 1024) { return null; } Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); this.ptrs_to.add(descriptor); return ret_hu_conv; @@ -232,6 +239,7 @@ public class InMemorySigner extends CommonBase { */ public BaseSign as_BaseSign() { long ret = bindings.InMemorySigner_as_BaseSign(this.ptr); + if (ret < 1024) { return null; } BaseSign ret_hu_conv = new BaseSign(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -243,6 +251,7 @@ public class InMemorySigner extends CommonBase { */ public Sign as_Sign() { long ret = bindings.InMemorySigner_as_Sign(this.ptr); + if (ret < 1024) { return null; } Sign ret_hu_conv = new Sign(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -261,6 +270,7 @@ public class InMemorySigner extends CommonBase { */ public static Result_InMemorySignerDecodeErrorZ read(byte[] ser) { long ret = bindings.InMemorySigner_read(ser); + if (ret < 1024) { return null; } Result_InMemorySignerDecodeErrorZ ret_hu_conv = Result_InMemorySignerDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Init.java b/src/main/java/org/ldk/structs/Init.java index dd30adba..7e8bcd81 100644 --- a/src/main/java/org/ldk/structs/Init.java +++ b/src/main/java/org/ldk/structs/Init.java @@ -23,6 +23,7 @@ public class Init extends CommonBase { */ public InitFeatures get_features() { long ret = bindings.Init_get_features(this.ptr); + if (ret < 1024) { return null; } InitFeatures ret_hu_conv = new InitFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -41,6 +42,7 @@ public class Init extends CommonBase { */ public static Init of(InitFeatures features_arg) { long ret = bindings.Init_new(features_arg == null ? 0 : features_arg.ptr & ~1); + if (ret < 1024) { return null; } Init ret_hu_conv = new Init(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(features_arg); @@ -52,6 +54,7 @@ public class Init extends CommonBase { */ public Init clone() { long ret = bindings.Init_clone(this.ptr); + if (ret < 1024) { return null; } Init ret_hu_conv = new Init(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -70,6 +73,7 @@ public class Init extends CommonBase { */ public static Result_InitDecodeErrorZ read(byte[] ser) { long ret = bindings.Init_read(ser); + if (ret < 1024) { return null; } Result_InitDecodeErrorZ ret_hu_conv = Result_InitDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/InitFeatures.java b/src/main/java/org/ldk/structs/InitFeatures.java index 1844618d..60fe3d13 100644 --- a/src/main/java/org/ldk/structs/InitFeatures.java +++ b/src/main/java/org/ldk/structs/InitFeatures.java @@ -34,6 +34,7 @@ public class InitFeatures extends CommonBase { */ public InitFeatures clone() { long ret = bindings.InitFeatures_clone(this.ptr); + if (ret < 1024) { return null; } InitFeatures ret_hu_conv = new InitFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -44,6 +45,7 @@ public class InitFeatures extends CommonBase { */ public static InitFeatures empty() { long ret = bindings.InitFeatures_empty(); + if (ret < 1024) { return null; } InitFeatures ret_hu_conv = new InitFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -54,6 +56,7 @@ public class InitFeatures extends CommonBase { */ public static InitFeatures known() { long ret = bindings.InitFeatures_known(); + if (ret < 1024) { return null; } InitFeatures ret_hu_conv = new InitFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -80,6 +83,7 @@ public class InitFeatures extends CommonBase { */ public static Result_InitFeaturesDecodeErrorZ read(byte[] ser) { long ret = bindings.InitFeatures_read(ser); + if (ret < 1024) { return null; } Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Invoice.java b/src/main/java/org/ldk/structs/Invoice.java index 695f35de..6243231d 100644 --- a/src/main/java/org/ldk/structs/Invoice.java +++ b/src/main/java/org/ldk/structs/Invoice.java @@ -39,6 +39,7 @@ public class Invoice extends CommonBase { */ public Invoice clone() { long ret = bindings.Invoice_clone(this.ptr); + if (ret < 1024) { return null; } Invoice ret_hu_conv = new Invoice(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -49,6 +50,7 @@ public class Invoice extends CommonBase { */ public SignedRawInvoice into_signed_raw() { long ret = bindings.Invoice_into_signed_raw(this.ptr); + if (ret < 1024) { return null; } SignedRawInvoice ret_hu_conv = new SignedRawInvoice(null, ret); ret_hu_conv.ptrs_to.add(this); this.ptrs_to.add(this); @@ -60,6 +62,7 @@ public class Invoice extends CommonBase { */ public Result_NoneSemanticErrorZ check_signature() { long ret = bindings.Invoice_check_signature(this.ptr); + if (ret < 1024) { return null; } Result_NoneSemanticErrorZ ret_hu_conv = Result_NoneSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -81,6 +84,7 @@ public class Invoice extends CommonBase { */ public static Result_InvoiceSemanticErrorZ from_signed(SignedRawInvoice signed_invoice) { long ret = bindings.Invoice_from_signed(signed_invoice == null ? 0 : signed_invoice.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceSemanticErrorZ ret_hu_conv = Result_InvoiceSemanticErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(signed_invoice); return ret_hu_conv; @@ -104,7 +108,10 @@ public class Invoice extends CommonBase { /** * Get the payee's public key if one was included in the invoice + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public byte[] payee_pub_key() { byte[] ret = bindings.Invoice_payee_pub_key(this.ptr); return ret; @@ -112,7 +119,10 @@ public class Invoice extends CommonBase { /** * Get the payment secret if one was included in the invoice + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public byte[] payment_secret() { byte[] ret = bindings.Invoice_payment_secret(this.ptr); return ret; @@ -120,9 +130,13 @@ public class Invoice extends CommonBase { /** * Get the invoice features if they were included in the invoice + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public InvoiceFeatures features() { long ret = bindings.Invoice_features(this.ptr); + if (ret < 1024) { return null; } InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -196,6 +210,7 @@ public class Invoice extends CommonBase { */ public Option_u64Z amount_pico_btc() { long ret = bindings.Invoice_amount_pico_btc(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -206,6 +221,7 @@ public class Invoice extends CommonBase { */ public static Result_InvoiceNoneZ from_str(String s) { long ret = bindings.Invoice_from_str(s); + if (ret < 1024) { return null; } Result_InvoiceNoneZ ret_hu_conv = Result_InvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/InvoiceFeatures.java b/src/main/java/org/ldk/structs/InvoiceFeatures.java index fd3bc29a..33bfc660 100644 --- a/src/main/java/org/ldk/structs/InvoiceFeatures.java +++ b/src/main/java/org/ldk/structs/InvoiceFeatures.java @@ -34,6 +34,7 @@ public class InvoiceFeatures extends CommonBase { */ public InvoiceFeatures clone() { long ret = bindings.InvoiceFeatures_clone(this.ptr); + if (ret < 1024) { return null; } InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -44,6 +45,7 @@ public class InvoiceFeatures extends CommonBase { */ public static InvoiceFeatures empty() { long ret = bindings.InvoiceFeatures_empty(); + if (ret < 1024) { return null; } InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -54,6 +56,7 @@ public class InvoiceFeatures extends CommonBase { */ public static InvoiceFeatures known() { long ret = bindings.InvoiceFeatures_known(); + if (ret < 1024) { return null; } InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -80,6 +83,7 @@ public class InvoiceFeatures extends CommonBase { */ public static Result_InvoiceFeaturesDecodeErrorZ read(byte[] ser) { long ret = bindings.InvoiceFeatures_read(ser); + if (ret < 1024) { return null; } Result_InvoiceFeaturesDecodeErrorZ ret_hu_conv = Result_InvoiceFeaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/InvoiceSignature.java b/src/main/java/org/ldk/structs/InvoiceSignature.java index 417ac79a..1e6c736d 100644 --- a/src/main/java/org/ldk/structs/InvoiceSignature.java +++ b/src/main/java/org/ldk/structs/InvoiceSignature.java @@ -34,6 +34,7 @@ public class InvoiceSignature extends CommonBase { */ public InvoiceSignature clone() { long ret = bindings.InvoiceSignature_clone(this.ptr); + if (ret < 1024) { return null; } InvoiceSignature ret_hu_conv = new InvoiceSignature(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/KeysInterface.java b/src/main/java/org/ldk/structs/KeysInterface.java index 743c7544..16482e2a 100644 --- a/src/main/java/org/ldk/structs/KeysInterface.java +++ b/src/main/java/org/ldk/structs/KeysInterface.java @@ -156,6 +156,7 @@ public class KeysInterface extends CommonBase { */ public Sign get_channel_signer(boolean inbound, long channel_value_satoshis) { long ret = bindings.KeysInterface_get_channel_signer(this.ptr, inbound, channel_value_satoshis); + if (ret < 1024) { return null; } Sign ret_hu_conv = new Sign(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -183,6 +184,7 @@ public class KeysInterface extends CommonBase { */ public Result_SignDecodeErrorZ read_chan_signer(byte[] reader) { long ret = bindings.KeysInterface_read_chan_signer(this.ptr, reader); + if (ret < 1024) { return null; } Result_SignDecodeErrorZ ret_hu_conv = Result_SignDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -195,6 +197,7 @@ public class KeysInterface extends CommonBase { */ public Result_RecoverableSignatureNoneZ sign_invoice(byte[] invoice_preimage) { long ret = bindings.KeysInterface_sign_invoice(this.ptr, invoice_preimage); + if (ret < 1024) { return null; } Result_RecoverableSignatureNoneZ ret_hu_conv = Result_RecoverableSignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/KeysManager.java b/src/main/java/org/ldk/structs/KeysManager.java index 047ef055..9a6de12e 100644 --- a/src/main/java/org/ldk/structs/KeysManager.java +++ b/src/main/java/org/ldk/structs/KeysManager.java @@ -47,6 +47,7 @@ public class KeysManager extends CommonBase { */ public static KeysManager of(byte[] seed, long starting_time_secs, int starting_time_nanos) { long ret = bindings.KeysManager_new(seed, starting_time_secs, starting_time_nanos); + if (ret < 1024) { return null; } KeysManager ret_hu_conv = new KeysManager(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -61,6 +62,7 @@ public class KeysManager extends CommonBase { */ public InMemorySigner derive_channel_keys(long channel_value_satoshis, byte[] params) { long ret = bindings.KeysManager_derive_channel_keys(this.ptr, channel_value_satoshis, params); + if (ret < 1024) { return null; } InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +83,7 @@ public class KeysManager extends CommonBase { */ public Result_TransactionNoneZ spend_spendable_outputs(SpendableOutputDescriptor[] descriptors, TxOut[] outputs, byte[] change_destination_script, int feerate_sat_per_1000_weight) { long ret = bindings.KeysManager_spend_spendable_outputs(this.ptr, Arrays.stream(descriptors).mapToLong(descriptors_conv_27 -> descriptors_conv_27.ptr).toArray(), Arrays.stream(outputs).mapToLong(outputs_conv_7 -> outputs_conv_7.ptr).toArray(), change_destination_script, feerate_sat_per_1000_weight); + if (ret < 1024) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); /* TODO 2 SpendableOutputDescriptor */; /* TODO 2 TxOut */; @@ -93,6 +96,7 @@ public class KeysManager extends CommonBase { */ public KeysInterface as_KeysInterface() { long ret = bindings.KeysManager_as_KeysInterface(this.ptr); + if (ret < 1024) { return null; } KeysInterface ret_hu_conv = new KeysInterface(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/LightningError.java b/src/main/java/org/ldk/structs/LightningError.java index fa2b562d..1ba368ed 100644 --- a/src/main/java/org/ldk/structs/LightningError.java +++ b/src/main/java/org/ldk/structs/LightningError.java @@ -38,6 +38,7 @@ public class LightningError extends CommonBase { */ public ErrorAction get_action() { long ret = bindings.LightningError_get_action(this.ptr); + if (ret < 1024) { return null; } ErrorAction ret_hu_conv = ErrorAction.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -55,6 +56,7 @@ public class LightningError extends CommonBase { */ public static LightningError of(String err_arg, ErrorAction action_arg) { long ret = bindings.LightningError_new(err_arg, action_arg.ptr); + if (ret < 1024) { return null; } LightningError ret_hu_conv = new LightningError(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -65,6 +67,7 @@ public class LightningError extends CommonBase { */ public LightningError clone() { long ret = bindings.LightningError_clone(this.ptr); + if (ret < 1024) { return null; } LightningError ret_hu_conv = new LightningError(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/LockedNetworkGraph.java b/src/main/java/org/ldk/structs/LockedNetworkGraph.java index c77af379..2f5f61c8 100644 --- a/src/main/java/org/ldk/structs/LockedNetworkGraph.java +++ b/src/main/java/org/ldk/structs/LockedNetworkGraph.java @@ -23,6 +23,7 @@ public class LockedNetworkGraph extends CommonBase implements AutoCloseable { */ public NetworkGraph graph() { long ret = bindings.LockedNetworkGraph_graph(this.ptr); + if (ret < 1024) { return null; } NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/MessageHandler.java b/src/main/java/org/ldk/structs/MessageHandler.java index 7077b4a2..06a55cd4 100644 --- a/src/main/java/org/ldk/structs/MessageHandler.java +++ b/src/main/java/org/ldk/structs/MessageHandler.java @@ -26,6 +26,7 @@ public class MessageHandler extends CommonBase { */ public ChannelMessageHandler get_chan_handler() { long ret = bindings.MessageHandler_get_chan_handler(this.ptr); + if (ret < 1024) { return null; } ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -51,6 +52,7 @@ public class MessageHandler extends CommonBase { */ public RoutingMessageHandler get_route_handler() { long ret = bindings.MessageHandler_get_route_handler(this.ptr); + if (ret < 1024) { return null; } RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -73,6 +75,7 @@ public class MessageHandler extends CommonBase { */ public static MessageHandler of(ChannelMessageHandler chan_handler_arg, RoutingMessageHandler route_handler_arg) { long ret = bindings.MessageHandler_new(chan_handler_arg == null ? 0 : chan_handler_arg.ptr, route_handler_arg == null ? 0 : route_handler_arg.ptr); + if (ret < 1024) { return null; } MessageHandler ret_hu_conv = new MessageHandler(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(chan_handler_arg); diff --git a/src/main/java/org/ldk/structs/MessageSendEvent.java b/src/main/java/org/ldk/structs/MessageSendEvent.java index 2885e0ca..fd57d563 100644 --- a/src/main/java/org/ldk/structs/MessageSendEvent.java +++ b/src/main/java/org/ldk/structs/MessageSendEvent.java @@ -326,6 +326,7 @@ public class MessageSendEvent extends CommonBase { */ public MessageSendEvent clone() { long ret = bindings.MessageSendEvent_clone(this.ptr); + if (ret < 1024) { return null; } MessageSendEvent ret_hu_conv = MessageSendEvent.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/MinFinalCltvExpiry.java b/src/main/java/org/ldk/structs/MinFinalCltvExpiry.java index ec25b972..2bbbefbc 100644 --- a/src/main/java/org/ldk/structs/MinFinalCltvExpiry.java +++ b/src/main/java/org/ldk/structs/MinFinalCltvExpiry.java @@ -34,6 +34,7 @@ public class MinFinalCltvExpiry extends CommonBase { */ public MinFinalCltvExpiry clone() { long ret = bindings.MinFinalCltvExpiry_clone(this.ptr); + if (ret < 1024) { return null; } MinFinalCltvExpiry ret_hu_conv = new MinFinalCltvExpiry(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/MonitorEvent.java b/src/main/java/org/ldk/structs/MonitorEvent.java index 68421e71..eb6a203b 100644 --- a/src/main/java/org/ldk/structs/MonitorEvent.java +++ b/src/main/java/org/ldk/structs/MonitorEvent.java @@ -53,6 +53,7 @@ public class MonitorEvent extends CommonBase { */ public MonitorEvent clone() { long ret = bindings.MonitorEvent_clone(this.ptr); + if (ret < 1024) { return null; } MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/MonitorUpdateError.java b/src/main/java/org/ldk/structs/MonitorUpdateError.java index 6c6c2783..aa6ed4a0 100644 --- a/src/main/java/org/ldk/structs/MonitorUpdateError.java +++ b/src/main/java/org/ldk/structs/MonitorUpdateError.java @@ -27,6 +27,7 @@ public class MonitorUpdateError extends CommonBase { */ public MonitorUpdateError clone() { long ret = bindings.MonitorUpdateError_clone(this.ptr); + if (ret < 1024) { return null; } MonitorUpdateError ret_hu_conv = new MonitorUpdateError(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/NetAddress.java b/src/main/java/org/ldk/structs/NetAddress.java index 83b2c27e..3e7d2aff 100644 --- a/src/main/java/org/ldk/structs/NetAddress.java +++ b/src/main/java/org/ldk/structs/NetAddress.java @@ -79,6 +79,7 @@ public class NetAddress extends CommonBase { */ public NetAddress clone() { long ret = bindings.NetAddress_clone(this.ptr); + if (ret < 1024) { return null; } NetAddress ret_hu_conv = NetAddress.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -97,6 +98,7 @@ public class NetAddress extends CommonBase { */ public static Result_NetAddressDecodeErrorZ read(byte[] ser) { long ret = bindings.NetAddress_read(ser); + if (ret < 1024) { return null; } Result_NetAddressDecodeErrorZ ret_hu_conv = Result_NetAddressDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/NetGraphMsgHandler.java b/src/main/java/org/ldk/structs/NetGraphMsgHandler.java index 977e197a..41d54233 100644 --- a/src/main/java/org/ldk/structs/NetGraphMsgHandler.java +++ b/src/main/java/org/ldk/structs/NetGraphMsgHandler.java @@ -28,9 +28,12 @@ public class NetGraphMsgHandler extends CommonBase { * Chain monitor is used to make sure announced channels exist on-chain, * channel data is correct, and that the announcement is signed with * channel owners' keys. + * + * Note that chain_access (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static NetGraphMsgHandler of(byte[] genesis_hash, Access chain_access, Logger logger) { + public static NetGraphMsgHandler of(byte[] genesis_hash, @Nullable Access chain_access, Logger logger) { long ret = bindings.NetGraphMsgHandler_new(genesis_hash, chain_access == null ? 0 : chain_access.ptr, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } NetGraphMsgHandler ret_hu_conv = new NetGraphMsgHandler(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(chain_access); @@ -41,9 +44,12 @@ public class NetGraphMsgHandler extends CommonBase { /** * Creates a new tracker of the actual state of the network of channels and nodes, * assuming an existing Network Graph. + * + * Note that chain_access (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static NetGraphMsgHandler from_net_graph(Access chain_access, Logger logger, NetworkGraph network_graph) { + public static NetGraphMsgHandler from_net_graph(@Nullable Access chain_access, Logger logger, NetworkGraph network_graph) { long ret = bindings.NetGraphMsgHandler_from_net_graph(chain_access == null ? 0 : chain_access.ptr, logger == null ? 0 : logger.ptr, network_graph == null ? 0 : network_graph.ptr & ~1); + if (ret < 1024) { return null; } NetGraphMsgHandler ret_hu_conv = new NetGraphMsgHandler(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(chain_access); @@ -56,8 +62,10 @@ public class NetGraphMsgHandler extends CommonBase { * Adds a provider used to check new announcements. Does not affect * existing announcements unless they are updated. * Add, update or remove the provider would replace the current one. + * + * Note that chain_access (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void add_chain_access(Access chain_access) { + public void add_chain_access(@Nullable Access chain_access) { bindings.NetGraphMsgHandler_add_chain_access(this.ptr, chain_access == null ? 0 : chain_access.ptr); this.ptrs_to.add(chain_access); } @@ -70,6 +78,7 @@ public class NetGraphMsgHandler extends CommonBase { */ public LockedNetworkGraph read_locked_graph() { long ret = bindings.NetGraphMsgHandler_read_locked_graph(this.ptr); + if (ret < 1024) { return null; } LockedNetworkGraph ret_hu_conv = new LockedNetworkGraph(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +90,7 @@ public class NetGraphMsgHandler extends CommonBase { */ public RoutingMessageHandler as_RoutingMessageHandler() { long ret = bindings.NetGraphMsgHandler_as_RoutingMessageHandler(this.ptr); + if (ret < 1024) { return null; } RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -92,6 +102,7 @@ public class NetGraphMsgHandler extends CommonBase { */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.NetGraphMsgHandler_as_MessageSendEventsProvider(this.ptr); + if (ret < 1024) { return null; } MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/NetworkGraph.java b/src/main/java/org/ldk/structs/NetworkGraph.java index 69d615ed..1f191d71 100644 --- a/src/main/java/org/ldk/structs/NetworkGraph.java +++ b/src/main/java/org/ldk/structs/NetworkGraph.java @@ -23,6 +23,7 @@ public class NetworkGraph extends CommonBase { */ public NetworkGraph clone() { long ret = bindings.NetworkGraph_clone(this.ptr); + if (ret < 1024) { return null; } NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -41,6 +42,7 @@ public class NetworkGraph extends CommonBase { */ public static Result_NetworkGraphDecodeErrorZ read(byte[] ser) { long ret = bindings.NetworkGraph_read(ser); + if (ret < 1024) { return null; } Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -50,6 +52,7 @@ public class NetworkGraph extends CommonBase { */ public static NetworkGraph of(byte[] genesis_hash) { long ret = bindings.NetworkGraph_new(genesis_hash); + if (ret < 1024) { return null; } NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -65,6 +68,7 @@ public class NetworkGraph extends CommonBase { */ public Result_NoneLightningErrorZ update_node_from_announcement(NodeAnnouncement msg) { long ret = bindings.NetworkGraph_update_node_from_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -78,6 +82,7 @@ public class NetworkGraph extends CommonBase { */ public Result_NoneLightningErrorZ update_node_from_unsigned_announcement(UnsignedNodeAnnouncement msg) { long ret = bindings.NetworkGraph_update_node_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -92,9 +97,12 @@ public class NetworkGraph extends CommonBase { * * If a `chain::Access` object is provided via `chain_access`, it will be called to verify * the corresponding UTXO exists on chain and is correctly-formatted. + * + * Note that chain_access (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public Result_NoneLightningErrorZ update_channel_from_announcement(ChannelAnnouncement msg, Access chain_access) { + public Result_NoneLightningErrorZ update_channel_from_announcement(ChannelAnnouncement msg, @Nullable Access chain_access) { long ret = bindings.NetworkGraph_update_channel_from_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1, chain_access == null ? 0 : chain_access.ptr); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); this.ptrs_to.add(chain_access); @@ -108,9 +116,12 @@ public class NetworkGraph extends CommonBase { * * If a `chain::Access` object is provided via `chain_access`, it will be called to verify * the corresponding UTXO exists on chain and is correctly-formatted. + * + * Note that chain_access (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public Result_NoneLightningErrorZ update_channel_from_unsigned_announcement(UnsignedChannelAnnouncement msg, Access chain_access) { + public Result_NoneLightningErrorZ update_channel_from_unsigned_announcement(UnsignedChannelAnnouncement msg, @Nullable Access chain_access) { long ret = bindings.NetworkGraph_update_channel_from_unsigned_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1, chain_access == null ? 0 : chain_access.ptr); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); this.ptrs_to.add(chain_access); @@ -137,6 +148,7 @@ public class NetworkGraph extends CommonBase { */ public Result_NoneLightningErrorZ update_channel(ChannelUpdate msg) { long ret = bindings.NetworkGraph_update_channel(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -149,6 +161,7 @@ public class NetworkGraph extends CommonBase { */ public Result_NoneLightningErrorZ update_channel_unsigned(UnsignedChannelUpdate msg) { long ret = bindings.NetworkGraph_update_channel_unsigned(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/NodeAnnouncement.java b/src/main/java/org/ldk/structs/NodeAnnouncement.java index 57c76501..569696c1 100644 --- a/src/main/java/org/ldk/structs/NodeAnnouncement.java +++ b/src/main/java/org/ldk/structs/NodeAnnouncement.java @@ -38,6 +38,7 @@ public class NodeAnnouncement extends CommonBase { */ public UnsignedNodeAnnouncement get_contents() { long ret = bindings.NodeAnnouncement_get_contents(this.ptr); + if (ret < 1024) { return null; } UnsignedNodeAnnouncement ret_hu_conv = new UnsignedNodeAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -56,6 +57,7 @@ public class NodeAnnouncement extends CommonBase { */ public static NodeAnnouncement of(byte[] signature_arg, UnsignedNodeAnnouncement contents_arg) { long ret = bindings.NodeAnnouncement_new(signature_arg, contents_arg == null ? 0 : contents_arg.ptr & ~1); + if (ret < 1024) { return null; } NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(contents_arg); @@ -67,6 +69,7 @@ public class NodeAnnouncement extends CommonBase { */ public NodeAnnouncement clone() { long ret = bindings.NodeAnnouncement_clone(this.ptr); + if (ret < 1024) { return null; } NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -85,6 +88,7 @@ public class NodeAnnouncement extends CommonBase { */ public static Result_NodeAnnouncementDecodeErrorZ read(byte[] ser) { long ret = bindings.NodeAnnouncement_read(ser); + if (ret < 1024) { return null; } Result_NodeAnnouncementDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java b/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java index a44826ab..e6684185 100644 --- a/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java +++ b/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java @@ -23,6 +23,7 @@ public class NodeAnnouncementInfo extends CommonBase { */ public NodeFeatures get_features() { long ret = bindings.NodeAnnouncementInfo_get_features(this.ptr); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -100,9 +101,13 @@ public class NodeAnnouncementInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public NodeAnnouncement get_announcement_message() { long ret = bindings.NodeAnnouncementInfo_get_announcement_message(this.ptr); + if (ret < 1024) { return null; } NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -113,8 +118,10 @@ public class NodeAnnouncementInfo extends CommonBase { * Mostly redundant with the data we store in fields explicitly. * Everything else is useful only for sending out for initial routing sync. * Not stored if contains excess data to prevent DoS. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_announcement_message(NodeAnnouncement val) { + public void set_announcement_message(@Nullable NodeAnnouncement val) { bindings.NodeAnnouncementInfo_set_announcement_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -124,6 +131,7 @@ public class NodeAnnouncementInfo extends CommonBase { */ public static NodeAnnouncementInfo of(NodeFeatures features_arg, int last_update_arg, byte[] rgb_arg, byte[] alias_arg, NetAddress[] addresses_arg, NodeAnnouncement announcement_message_arg) { long ret = bindings.NodeAnnouncementInfo_new(features_arg == null ? 0 : features_arg.ptr & ~1, last_update_arg, rgb_arg, alias_arg, Arrays.stream(addresses_arg).mapToLong(addresses_arg_conv_12 -> addresses_arg_conv_12.ptr).toArray(), announcement_message_arg == null ? 0 : announcement_message_arg.ptr & ~1); + if (ret < 1024) { return null; } NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(features_arg); @@ -137,6 +145,7 @@ public class NodeAnnouncementInfo extends CommonBase { */ public NodeAnnouncementInfo clone() { long ret = bindings.NodeAnnouncementInfo_clone(this.ptr); + if (ret < 1024) { return null; } NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -155,6 +164,7 @@ public class NodeAnnouncementInfo extends CommonBase { */ public static Result_NodeAnnouncementInfoDecodeErrorZ read(byte[] ser) { long ret = bindings.NodeAnnouncementInfo_read(ser); + if (ret < 1024) { return null; } Result_NodeAnnouncementInfoDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/NodeFeatures.java b/src/main/java/org/ldk/structs/NodeFeatures.java index 04f3c55c..bc2fb979 100644 --- a/src/main/java/org/ldk/structs/NodeFeatures.java +++ b/src/main/java/org/ldk/structs/NodeFeatures.java @@ -34,6 +34,7 @@ public class NodeFeatures extends CommonBase { */ public NodeFeatures clone() { long ret = bindings.NodeFeatures_clone(this.ptr); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -44,6 +45,7 @@ public class NodeFeatures extends CommonBase { */ public static NodeFeatures empty() { long ret = bindings.NodeFeatures_empty(); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -54,6 +56,7 @@ public class NodeFeatures extends CommonBase { */ public static NodeFeatures known() { long ret = bindings.NodeFeatures_known(); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -80,6 +83,7 @@ public class NodeFeatures extends CommonBase { */ public static Result_NodeFeaturesDecodeErrorZ read(byte[] ser) { long ret = bindings.NodeFeatures_read(ser); + if (ret < 1024) { return null; } Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/NodeInfo.java b/src/main/java/org/ldk/structs/NodeInfo.java index 68a027a4..de29e3d5 100644 --- a/src/main/java/org/ldk/structs/NodeInfo.java +++ b/src/main/java/org/ldk/structs/NodeInfo.java @@ -29,9 +29,13 @@ public class NodeInfo extends CommonBase { * Lowest fees enabling routing via any of the enabled, known channels to a node. * The two fields (flat and proportional fee) are independent, * meaning they don't have to refer to the same channel. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public RoutingFees get_lowest_inbound_channel_fees() { long ret = bindings.NodeInfo_get_lowest_inbound_channel_fees(this.ptr); + if (ret < 1024) { return null; } RoutingFees ret_hu_conv = new RoutingFees(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -41,8 +45,10 @@ public class NodeInfo extends CommonBase { * Lowest fees enabling routing via any of the enabled, known channels to a node. * The two fields (flat and proportional fee) are independent, * meaning they don't have to refer to the same channel. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_lowest_inbound_channel_fees(RoutingFees val) { + public void set_lowest_inbound_channel_fees(@Nullable RoutingFees val) { bindings.NodeInfo_set_lowest_inbound_channel_fees(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -51,9 +57,13 @@ public class NodeInfo extends CommonBase { * More information about a node from node_announcement. * Optional because we store a Node entry after learning about it from * a channel announcement, but before receiving a node announcement. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public NodeAnnouncementInfo get_announcement_info() { long ret = bindings.NodeInfo_get_announcement_info(this.ptr); + if (ret < 1024) { return null; } NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -63,8 +73,10 @@ public class NodeInfo extends CommonBase { * More information about a node from node_announcement. * Optional because we store a Node entry after learning about it from * a channel announcement, but before receiving a node announcement. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_announcement_info(NodeAnnouncementInfo val) { + public void set_announcement_info(@Nullable NodeAnnouncementInfo val) { bindings.NodeInfo_set_announcement_info(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } @@ -74,6 +86,7 @@ public class NodeInfo extends CommonBase { */ public static NodeInfo of(long[] channels_arg, RoutingFees lowest_inbound_channel_fees_arg, NodeAnnouncementInfo announcement_info_arg) { long ret = bindings.NodeInfo_new(channels_arg, lowest_inbound_channel_fees_arg == null ? 0 : lowest_inbound_channel_fees_arg.ptr & ~1, announcement_info_arg == null ? 0 : announcement_info_arg.ptr & ~1); + if (ret < 1024) { return null; } NodeInfo ret_hu_conv = new NodeInfo(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(lowest_inbound_channel_fees_arg); @@ -86,6 +99,7 @@ public class NodeInfo extends CommonBase { */ public NodeInfo clone() { long ret = bindings.NodeInfo_clone(this.ptr); + if (ret < 1024) { return null; } NodeInfo ret_hu_conv = new NodeInfo(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -104,6 +118,7 @@ public class NodeInfo extends CommonBase { */ public static Result_NodeInfoDecodeErrorZ read(byte[] ser) { long ret = bindings.NodeInfo_read(ser); + if (ret < 1024) { return null; } Result_NodeInfoDecodeErrorZ ret_hu_conv = Result_NodeInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/OpenChannel.java b/src/main/java/org/ldk/structs/OpenChannel.java index f0e80eba..15aecc85 100644 --- a/src/main/java/org/ldk/structs/OpenChannel.java +++ b/src/main/java/org/ldk/structs/OpenChannel.java @@ -293,6 +293,7 @@ public class OpenChannel extends CommonBase { */ public OpenChannel clone() { long ret = bindings.OpenChannel_clone(this.ptr); + if (ret < 1024) { return null; } OpenChannel ret_hu_conv = new OpenChannel(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -311,6 +312,7 @@ public class OpenChannel extends CommonBase { */ public static Result_OpenChannelDecodeErrorZ read(byte[] ser) { long ret = bindings.OpenChannel_read(ser); + if (ret < 1024) { return null; } Result_OpenChannelDecodeErrorZ ret_hu_conv = Result_OpenChannelDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Option_C2Tuple_usizeTransactionZZ.java b/src/main/java/org/ldk/structs/Option_C2Tuple_usizeTransactionZZ.java index dc441bbc..2afb299c 100644 --- a/src/main/java/org/ldk/structs/Option_C2Tuple_usizeTransactionZZ.java +++ b/src/main/java/org/ldk/structs/Option_C2Tuple_usizeTransactionZZ.java @@ -51,6 +51,7 @@ public class Option_C2Tuple_usizeTransactionZZ extends CommonBase { */ public static Option_C2Tuple_usizeTransactionZZ some(TwoTuple o) { long ret = bindings.COption_C2Tuple_usizeTransactionZZ_some(bindings.C2Tuple_usizeTransactionZ_new(o.a, o.b)); + if (ret < 1024) { return null; } Option_C2Tuple_usizeTransactionZZ ret_hu_conv = Option_C2Tuple_usizeTransactionZZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -61,6 +62,7 @@ public class Option_C2Tuple_usizeTransactionZZ extends CommonBase { */ public static Option_C2Tuple_usizeTransactionZZ none() { long ret = bindings.COption_C2Tuple_usizeTransactionZZ_none(); + if (ret < 1024) { return null; } Option_C2Tuple_usizeTransactionZZ ret_hu_conv = Option_C2Tuple_usizeTransactionZZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -72,6 +74,7 @@ public class Option_C2Tuple_usizeTransactionZZ extends CommonBase { */ public Option_C2Tuple_usizeTransactionZZ clone() { long ret = bindings.COption_C2Tuple_usizeTransactionZZ_clone(this.ptr); + if (ret < 1024) { return null; } Option_C2Tuple_usizeTransactionZZ ret_hu_conv = Option_C2Tuple_usizeTransactionZZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Option_u16Z.java b/src/main/java/org/ldk/structs/Option_u16Z.java index 57a4c742..c79e4448 100644 --- a/src/main/java/org/ldk/structs/Option_u16Z.java +++ b/src/main/java/org/ldk/structs/Option_u16Z.java @@ -45,6 +45,7 @@ public class Option_u16Z extends CommonBase { */ public static Option_u16Z some(short o) { long ret = bindings.COption_u16Z_some(o); + if (ret < 1024) { return null; } Option_u16Z ret_hu_conv = Option_u16Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Option_u16Z extends CommonBase { */ public static Option_u16Z none() { long ret = bindings.COption_u16Z_none(); + if (ret < 1024) { return null; } Option_u16Z ret_hu_conv = Option_u16Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Option_u16Z extends CommonBase { */ public Option_u16Z clone() { long ret = bindings.COption_u16Z_clone(this.ptr); + if (ret < 1024) { return null; } Option_u16Z ret_hu_conv = Option_u16Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Option_u32Z.java b/src/main/java/org/ldk/structs/Option_u32Z.java index 1b88a593..0556c6de 100644 --- a/src/main/java/org/ldk/structs/Option_u32Z.java +++ b/src/main/java/org/ldk/structs/Option_u32Z.java @@ -45,6 +45,7 @@ public class Option_u32Z extends CommonBase { */ public static Option_u32Z some(int o) { long ret = bindings.COption_u32Z_some(o); + if (ret < 1024) { return null; } Option_u32Z ret_hu_conv = Option_u32Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Option_u32Z extends CommonBase { */ public static Option_u32Z none() { long ret = bindings.COption_u32Z_none(); + if (ret < 1024) { return null; } Option_u32Z ret_hu_conv = Option_u32Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Option_u32Z extends CommonBase { */ public Option_u32Z clone() { long ret = bindings.COption_u32Z_clone(this.ptr); + if (ret < 1024) { return null; } Option_u32Z ret_hu_conv = Option_u32Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Option_u64Z.java b/src/main/java/org/ldk/structs/Option_u64Z.java index 59e8b595..6015ce37 100644 --- a/src/main/java/org/ldk/structs/Option_u64Z.java +++ b/src/main/java/org/ldk/structs/Option_u64Z.java @@ -45,6 +45,7 @@ public class Option_u64Z extends CommonBase { */ public static Option_u64Z some(long o) { long ret = bindings.COption_u64Z_some(o); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Option_u64Z extends CommonBase { */ public static Option_u64Z none() { long ret = bindings.COption_u64Z_none(); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Option_u64Z extends CommonBase { */ public Option_u64Z clone() { long ret = bindings.COption_u64Z_clone(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/OutPoint.java b/src/main/java/org/ldk/structs/OutPoint.java index a44b61e2..5e68cc6c 100644 --- a/src/main/java/org/ldk/structs/OutPoint.java +++ b/src/main/java/org/ldk/structs/OutPoint.java @@ -56,6 +56,7 @@ public class OutPoint extends CommonBase { */ public static OutPoint of(byte[] txid_arg, short index_arg) { long ret = bindings.OutPoint_new(txid_arg, index_arg); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -66,6 +67,7 @@ public class OutPoint extends CommonBase { */ public OutPoint clone() { long ret = bindings.OutPoint_clone(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -111,6 +113,7 @@ public class OutPoint extends CommonBase { */ public static Result_OutPointDecodeErrorZ read(byte[] ser) { long ret = bindings.OutPoint_read(ser); + if (ret < 1024) { return null; } Result_OutPointDecodeErrorZ ret_hu_conv = Result_OutPointDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/PayeePubKey.java b/src/main/java/org/ldk/structs/PayeePubKey.java index 9437f0f7..5f50af0d 100644 --- a/src/main/java/org/ldk/structs/PayeePubKey.java +++ b/src/main/java/org/ldk/structs/PayeePubKey.java @@ -34,6 +34,7 @@ public class PayeePubKey extends CommonBase { */ public PayeePubKey clone() { long ret = bindings.PayeePubKey_clone(this.ptr); + if (ret < 1024) { return null; } PayeePubKey ret_hu_conv = new PayeePubKey(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/PaymentPurpose.java b/src/main/java/org/ldk/structs/PaymentPurpose.java new file mode 100644 index 00000000..4a3e1a63 --- /dev/null +++ b/src/main/java/org/ldk/structs/PaymentPurpose.java @@ -0,0 +1,61 @@ +package org.ldk.structs; + +import org.ldk.impl.bindings; +import org.ldk.enums.*; +import org.ldk.util.*; +import java.util.Arrays; + + +/** + * Some information provided on receipt of payment depends on whether the payment received is a + * spontaneous payment or a \"conventional\" lightning payment that's paying an invoice. + */ +@SuppressWarnings("unchecked") // We correctly assign various generic arrays +public class PaymentPurpose extends CommonBase { + private PaymentPurpose(Object _dummy, long ptr) { super(ptr); } + @Override @SuppressWarnings("deprecation") + protected void finalize() throws Throwable { + super.finalize(); + if (ptr != 0) { bindings.PaymentPurpose_free(ptr); } + } + static PaymentPurpose constr_from_ptr(long ptr) { + bindings.LDKPaymentPurpose raw_val = bindings.LDKPaymentPurpose_ref_from_ptr(ptr); + if (raw_val.getClass() == bindings.LDKPaymentPurpose.InvoicePayment.class) { + return new InvoicePayment(ptr, (bindings.LDKPaymentPurpose.InvoicePayment)raw_val); + } + if (raw_val.getClass() == bindings.LDKPaymentPurpose.SpontaneousPayment.class) { + return new SpontaneousPayment(ptr, (bindings.LDKPaymentPurpose.SpontaneousPayment)raw_val); + } + assert false; return null; // Unreachable without extending the (internal) bindings interface + } + + public final static class InvoicePayment extends PaymentPurpose { + public final byte[] payment_preimage; + public final byte[] payment_secret; + public final long user_payment_id; + private InvoicePayment(long ptr, bindings.LDKPaymentPurpose.InvoicePayment obj) { + super(null, ptr); + this.payment_preimage = obj.payment_preimage; + this.payment_secret = obj.payment_secret; + this.user_payment_id = obj.user_payment_id; + } + } + public final static class SpontaneousPayment extends PaymentPurpose { + public final byte[] spontaneous_payment; + private SpontaneousPayment(long ptr, bindings.LDKPaymentPurpose.SpontaneousPayment obj) { + super(null, ptr); + this.spontaneous_payment = obj.spontaneous_payment; + } + } + /** + * Creates a copy of the PaymentPurpose + */ + public PaymentPurpose clone() { + long ret = bindings.PaymentPurpose_clone(this.ptr); + if (ret < 1024) { return null; } + PaymentPurpose ret_hu_conv = PaymentPurpose.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(this); + return ret_hu_conv; + } + +} diff --git a/src/main/java/org/ldk/structs/PaymentSendFailure.java b/src/main/java/org/ldk/structs/PaymentSendFailure.java index 4e9bb149..5320ed25 100644 --- a/src/main/java/org/ldk/structs/PaymentSendFailure.java +++ b/src/main/java/org/ldk/structs/PaymentSendFailure.java @@ -94,6 +94,7 @@ public class PaymentSendFailure extends CommonBase { */ public PaymentSendFailure clone() { long ret = bindings.PaymentSendFailure_clone(this.ptr); + if (ret < 1024) { return null; } PaymentSendFailure ret_hu_conv = PaymentSendFailure.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/PeerHandleError.java b/src/main/java/org/ldk/structs/PeerHandleError.java index 37e984ad..bcbcee01 100644 --- a/src/main/java/org/ldk/structs/PeerHandleError.java +++ b/src/main/java/org/ldk/structs/PeerHandleError.java @@ -42,6 +42,7 @@ public class PeerHandleError extends CommonBase { */ public static PeerHandleError of(boolean no_connection_possible_arg) { long ret = bindings.PeerHandleError_new(no_connection_possible_arg); + if (ret < 1024) { return null; } PeerHandleError ret_hu_conv = new PeerHandleError(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -52,6 +53,7 @@ public class PeerHandleError extends CommonBase { */ public PeerHandleError clone() { long ret = bindings.PeerHandleError_clone(this.ptr); + if (ret < 1024) { return null; } PeerHandleError ret_hu_conv = new PeerHandleError(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/PeerManager.java b/src/main/java/org/ldk/structs/PeerManager.java index 3903b56b..7ee7c0ab 100644 --- a/src/main/java/org/ldk/structs/PeerManager.java +++ b/src/main/java/org/ldk/structs/PeerManager.java @@ -43,6 +43,7 @@ public class PeerManager extends CommonBase { */ public static PeerManager of(ChannelMessageHandler message_handler_chan_handler_arg, RoutingMessageHandler message_handler_route_handler_arg, byte[] our_node_secret, byte[] ephemeral_random_data, Logger logger) { long ret = bindings.PeerManager_new(bindings.MessageHandler_new(message_handler_chan_handler_arg == null ? 0 : message_handler_chan_handler_arg.ptr, message_handler_route_handler_arg == null ? 0 : message_handler_route_handler_arg.ptr), our_node_secret, ephemeral_random_data, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } PeerManager ret_hu_conv = new PeerManager(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(message_handler_chan_handler_arg); @@ -77,6 +78,7 @@ public class PeerManager extends CommonBase { */ public Result_CVec_u8ZPeerHandleErrorZ new_outbound_connection(byte[] their_node_id, SocketDescriptor descriptor) { long ret = bindings.PeerManager_new_outbound_connection(this.ptr, their_node_id, descriptor == null ? 0 : descriptor.ptr); + if (ret < 1024) { return null; } Result_CVec_u8ZPeerHandleErrorZ ret_hu_conv = Result_CVec_u8ZPeerHandleErrorZ.constr_from_ptr(ret); this.ptrs_to.add(descriptor); return ret_hu_conv; @@ -97,6 +99,7 @@ public class PeerManager extends CommonBase { */ public Result_NonePeerHandleErrorZ new_inbound_connection(SocketDescriptor descriptor) { long ret = bindings.PeerManager_new_inbound_connection(this.ptr, descriptor == null ? 0 : descriptor.ptr); + if (ret < 1024) { return null; } Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); this.ptrs_to.add(descriptor); return ret_hu_conv; @@ -118,6 +121,7 @@ public class PeerManager extends CommonBase { */ public Result_NonePeerHandleErrorZ write_buffer_space_avail(SocketDescriptor descriptor) { long ret = bindings.PeerManager_write_buffer_space_avail(this.ptr, descriptor == null ? 0 : descriptor.ptr); + if (ret < 1024) { return null; } Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); this.ptrs_to.add(descriptor); return ret_hu_conv; @@ -141,6 +145,7 @@ public class PeerManager extends CommonBase { */ public Result_boolPeerHandleErrorZ read_event(SocketDescriptor peer_descriptor, byte[] data) { long ret = bindings.PeerManager_read_event(this.ptr, peer_descriptor == null ? 0 : peer_descriptor.ptr, data); + if (ret < 1024) { return null; } Result_boolPeerHandleErrorZ ret_hu_conv = Result_boolPeerHandleErrorZ.constr_from_ptr(ret); this.ptrs_to.add(peer_descriptor); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Persist.java b/src/main/java/org/ldk/structs/Persist.java index ef36c425..496cf8c9 100644 --- a/src/main/java/org/ldk/structs/Persist.java +++ b/src/main/java/org/ldk/structs/Persist.java @@ -106,6 +106,7 @@ public class Persist extends CommonBase { */ public Result_NoneChannelMonitorUpdateErrZ persist_new_channel(OutPoint id, ChannelMonitor data) { long ret = bindings.Persist_persist_new_channel(this.ptr, id == null ? 0 : id.ptr & ~1, data == null ? 0 : data.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); this.ptrs_to.add(id); this.ptrs_to.add(data); @@ -138,6 +139,7 @@ public class Persist extends CommonBase { */ public Result_NoneChannelMonitorUpdateErrZ update_persisted_channel(OutPoint id, ChannelMonitorUpdate update, ChannelMonitor data) { long ret = bindings.Persist_update_persisted_channel(this.ptr, id == null ? 0 : id.ptr & ~1, update == null ? 0 : update.ptr & ~1, data == null ? 0 : data.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); this.ptrs_to.add(id); this.ptrs_to.add(update); diff --git a/src/main/java/org/ldk/structs/Ping.java b/src/main/java/org/ldk/structs/Ping.java index d893cf3a..ecd53a4c 100644 --- a/src/main/java/org/ldk/structs/Ping.java +++ b/src/main/java/org/ldk/structs/Ping.java @@ -55,6 +55,7 @@ public class Ping extends CommonBase { */ public static Ping of(short ponglen_arg, short byteslen_arg) { long ret = bindings.Ping_new(ponglen_arg, byteslen_arg); + if (ret < 1024) { return null; } Ping ret_hu_conv = new Ping(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -65,6 +66,7 @@ public class Ping extends CommonBase { */ public Ping clone() { long ret = bindings.Ping_clone(this.ptr); + if (ret < 1024) { return null; } Ping ret_hu_conv = new Ping(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -83,6 +85,7 @@ public class Ping extends CommonBase { */ public static Result_PingDecodeErrorZ read(byte[] ser) { long ret = bindings.Ping_read(ser); + if (ret < 1024) { return null; } Result_PingDecodeErrorZ ret_hu_conv = Result_PingDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Pong.java b/src/main/java/org/ldk/structs/Pong.java index f95040f8..a0c47de5 100644 --- a/src/main/java/org/ldk/structs/Pong.java +++ b/src/main/java/org/ldk/structs/Pong.java @@ -40,6 +40,7 @@ public class Pong extends CommonBase { */ public static Pong of(short byteslen_arg) { long ret = bindings.Pong_new(byteslen_arg); + if (ret < 1024) { return null; } Pong ret_hu_conv = new Pong(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -50,6 +51,7 @@ public class Pong extends CommonBase { */ public Pong clone() { long ret = bindings.Pong_clone(this.ptr); + if (ret < 1024) { return null; } Pong ret_hu_conv = new Pong(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -68,6 +70,7 @@ public class Pong extends CommonBase { */ public static Result_PongDecodeErrorZ read(byte[] ser) { long ret = bindings.Pong_read(ser); + if (ret < 1024) { return null; } Result_PongDecodeErrorZ ret_hu_conv = Result_PongDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/PositiveTimestamp.java b/src/main/java/org/ldk/structs/PositiveTimestamp.java index 2a5af091..c874c81a 100644 --- a/src/main/java/org/ldk/structs/PositiveTimestamp.java +++ b/src/main/java/org/ldk/structs/PositiveTimestamp.java @@ -39,6 +39,7 @@ public class PositiveTimestamp extends CommonBase { */ public PositiveTimestamp clone() { long ret = bindings.PositiveTimestamp_clone(this.ptr); + if (ret < 1024) { return null; } PositiveTimestamp ret_hu_conv = new PositiveTimestamp(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -51,6 +52,7 @@ public class PositiveTimestamp extends CommonBase { */ public static Result_PositiveTimestampCreationErrorZ from_unix_timestamp(long unix_seconds) { long ret = bindings.PositiveTimestamp_from_unix_timestamp(unix_seconds); + if (ret < 1024) { return null; } Result_PositiveTimestampCreationErrorZ ret_hu_conv = Result_PositiveTimestampCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class PositiveTimestamp extends CommonBase { */ public static Result_PositiveTimestampCreationErrorZ from_system_time(long time) { long ret = bindings.PositiveTimestamp_from_system_time(time); + if (ret < 1024) { return null; } Result_PositiveTimestampCreationErrorZ ret_hu_conv = Result_PositiveTimestampCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/PrivateRoute.java b/src/main/java/org/ldk/structs/PrivateRoute.java index 74c1bbb9..5c195ed3 100644 --- a/src/main/java/org/ldk/structs/PrivateRoute.java +++ b/src/main/java/org/ldk/structs/PrivateRoute.java @@ -37,6 +37,7 @@ public class PrivateRoute extends CommonBase { */ public PrivateRoute clone() { long ret = bindings.PrivateRoute_clone(this.ptr); + if (ret < 1024) { return null; } PrivateRoute ret_hu_conv = new PrivateRoute(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -47,6 +48,7 @@ public class PrivateRoute extends CommonBase { */ public static Result_PrivateRouteCreationErrorZ of(RouteHint hops) { long ret = bindings.PrivateRoute_new(hops == null ? 0 : hops.ptr & ~1); + if (ret < 1024) { return null; } Result_PrivateRouteCreationErrorZ ret_hu_conv = Result_PrivateRouteCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(hops); return ret_hu_conv; @@ -57,6 +59,7 @@ public class PrivateRoute extends CommonBase { */ public RouteHint into_inner() { long ret = bindings.PrivateRoute_into_inner(this.ptr); + if (ret < 1024) { return null; } RouteHint ret_hu_conv = new RouteHint(null, ret); ret_hu_conv.ptrs_to.add(this); this.ptrs_to.add(this); diff --git a/src/main/java/org/ldk/structs/QueryChannelRange.java b/src/main/java/org/ldk/structs/QueryChannelRange.java index 0392ad3b..02769338 100644 --- a/src/main/java/org/ldk/structs/QueryChannelRange.java +++ b/src/main/java/org/ldk/structs/QueryChannelRange.java @@ -71,6 +71,7 @@ public class QueryChannelRange extends CommonBase { */ public static QueryChannelRange of(byte[] chain_hash_arg, int first_blocknum_arg, int number_of_blocks_arg) { long ret = bindings.QueryChannelRange_new(chain_hash_arg, first_blocknum_arg, number_of_blocks_arg); + if (ret < 1024) { return null; } QueryChannelRange ret_hu_conv = new QueryChannelRange(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -81,6 +82,7 @@ public class QueryChannelRange extends CommonBase { */ public QueryChannelRange clone() { long ret = bindings.QueryChannelRange_clone(this.ptr); + if (ret < 1024) { return null; } QueryChannelRange ret_hu_conv = new QueryChannelRange(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -99,6 +101,7 @@ public class QueryChannelRange extends CommonBase { */ public static Result_QueryChannelRangeDecodeErrorZ read(byte[] ser) { long ret = bindings.QueryChannelRange_read(ser); + if (ret < 1024) { return null; } Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/QueryShortChannelIds.java b/src/main/java/org/ldk/structs/QueryShortChannelIds.java index e5123b64..bda76248 100644 --- a/src/main/java/org/ldk/structs/QueryShortChannelIds.java +++ b/src/main/java/org/ldk/structs/QueryShortChannelIds.java @@ -52,6 +52,7 @@ public class QueryShortChannelIds extends CommonBase { */ public static QueryShortChannelIds of(byte[] chain_hash_arg, long[] short_channel_ids_arg) { long ret = bindings.QueryShortChannelIds_new(chain_hash_arg, short_channel_ids_arg); + if (ret < 1024) { return null; } QueryShortChannelIds ret_hu_conv = new QueryShortChannelIds(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -62,6 +63,7 @@ public class QueryShortChannelIds extends CommonBase { */ public QueryShortChannelIds clone() { long ret = bindings.QueryShortChannelIds_clone(this.ptr); + if (ret < 1024) { return null; } QueryShortChannelIds ret_hu_conv = new QueryShortChannelIds(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -72,6 +74,7 @@ public class QueryShortChannelIds extends CommonBase { */ public static Result_QueryShortChannelIdsDecodeErrorZ read(byte[] ser) { long ret = bindings.QueryShortChannelIds_read(ser); + if (ret < 1024) { return null; } Result_QueryShortChannelIdsDecodeErrorZ ret_hu_conv = Result_QueryShortChannelIdsDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/RawDataPart.java b/src/main/java/org/ldk/structs/RawDataPart.java index c76d4dc9..253ba7a0 100644 --- a/src/main/java/org/ldk/structs/RawDataPart.java +++ b/src/main/java/org/ldk/structs/RawDataPart.java @@ -23,6 +23,7 @@ public class RawDataPart extends CommonBase { */ public PositiveTimestamp get_timestamp() { long ret = bindings.RawDataPart_get_timestamp(this.ptr); + if (ret < 1024) { return null; } PositiveTimestamp ret_hu_conv = new PositiveTimestamp(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -52,6 +53,7 @@ public class RawDataPart extends CommonBase { */ public RawDataPart clone() { long ret = bindings.RawDataPart_clone(this.ptr); + if (ret < 1024) { return null; } RawDataPart ret_hu_conv = new RawDataPart(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/RawInvoice.java b/src/main/java/org/ldk/structs/RawInvoice.java index a63dc0b3..82bc5172 100644 --- a/src/main/java/org/ldk/structs/RawInvoice.java +++ b/src/main/java/org/ldk/structs/RawInvoice.java @@ -27,6 +27,7 @@ public class RawInvoice extends CommonBase { */ public RawDataPart get_data() { long ret = bindings.RawInvoice_get_data(this.ptr); + if (ret < 1024) { return null; } RawDataPart ret_hu_conv = new RawDataPart(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -56,6 +57,7 @@ public class RawInvoice extends CommonBase { */ public RawInvoice clone() { long ret = bindings.RawInvoice_clone(this.ptr); + if (ret < 1024) { return null; } RawInvoice ret_hu_conv = new RawInvoice(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -69,60 +71,102 @@ public class RawInvoice extends CommonBase { return ret; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public Sha256 payment_hash() { long ret = bindings.RawInvoice_payment_hash(this.ptr); + if (ret < 1024) { return null; } Sha256 ret_hu_conv = new Sha256(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public Description description() { long ret = bindings.RawInvoice_description(this.ptr); + if (ret < 1024) { return null; } Description ret_hu_conv = new Description(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public PayeePubKey payee_pub_key() { long ret = bindings.RawInvoice_payee_pub_key(this.ptr); + if (ret < 1024) { return null; } PayeePubKey ret_hu_conv = new PayeePubKey(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public Sha256 description_hash() { long ret = bindings.RawInvoice_description_hash(this.ptr); + if (ret < 1024) { return null; } Sha256 ret_hu_conv = new Sha256(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public ExpiryTime expiry_time() { long ret = bindings.RawInvoice_expiry_time(this.ptr); + if (ret < 1024) { return null; } ExpiryTime ret_hu_conv = new ExpiryTime(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public MinFinalCltvExpiry min_final_cltv_expiry() { long ret = bindings.RawInvoice_min_final_cltv_expiry(this.ptr); + if (ret < 1024) { return null; } MinFinalCltvExpiry ret_hu_conv = new MinFinalCltvExpiry(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public byte[] payment_secret() { byte[] ret = bindings.RawInvoice_payment_secret(this.ptr); return ret; } + /** + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + @Nullable public InvoiceFeatures features() { long ret = bindings.RawInvoice_features(this.ptr); + if (ret < 1024) { return null; } InvoiceFeatures ret_hu_conv = new InvoiceFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * + */ public PrivateRoute[] private_routes() { long[] ret = bindings.RawInvoice_private_routes(this.ptr); PrivateRoute[] ret_conv_14_arr = new PrivateRoute[ret.length]; @@ -135,13 +179,20 @@ public class RawInvoice extends CommonBase { return ret_conv_14_arr; } + /** + * + */ public Option_u64Z amount_pico_btc() { long ret = bindings.RawInvoice_amount_pico_btc(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; } + /** + * + */ public Currency currency() { Currency ret = bindings.RawInvoice_currency(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/ReplyChannelRange.java b/src/main/java/org/ldk/structs/ReplyChannelRange.java index b02a8587..876781e8 100644 --- a/src/main/java/org/ldk/structs/ReplyChannelRange.java +++ b/src/main/java/org/ldk/structs/ReplyChannelRange.java @@ -96,6 +96,7 @@ public class ReplyChannelRange extends CommonBase { */ public static ReplyChannelRange of(byte[] chain_hash_arg, int first_blocknum_arg, int number_of_blocks_arg, boolean sync_complete_arg, long[] short_channel_ids_arg) { long ret = bindings.ReplyChannelRange_new(chain_hash_arg, first_blocknum_arg, number_of_blocks_arg, sync_complete_arg, short_channel_ids_arg); + if (ret < 1024) { return null; } ReplyChannelRange ret_hu_conv = new ReplyChannelRange(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -106,6 +107,7 @@ public class ReplyChannelRange extends CommonBase { */ public ReplyChannelRange clone() { long ret = bindings.ReplyChannelRange_clone(this.ptr); + if (ret < 1024) { return null; } ReplyChannelRange ret_hu_conv = new ReplyChannelRange(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -116,6 +118,7 @@ public class ReplyChannelRange extends CommonBase { */ public static Result_ReplyChannelRangeDecodeErrorZ read(byte[] ser) { long ret = bindings.ReplyChannelRange_read(ser); + if (ret < 1024) { return null; } Result_ReplyChannelRangeDecodeErrorZ ret_hu_conv = Result_ReplyChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java b/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java index eb34da2a..8ddcf7d9 100644 --- a/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java +++ b/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java @@ -58,6 +58,7 @@ public class ReplyShortChannelIdsEnd extends CommonBase { */ public static ReplyShortChannelIdsEnd of(byte[] chain_hash_arg, boolean full_information_arg) { long ret = bindings.ReplyShortChannelIdsEnd_new(chain_hash_arg, full_information_arg); + if (ret < 1024) { return null; } ReplyShortChannelIdsEnd ret_hu_conv = new ReplyShortChannelIdsEnd(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -68,6 +69,7 @@ public class ReplyShortChannelIdsEnd extends CommonBase { */ public ReplyShortChannelIdsEnd clone() { long ret = bindings.ReplyShortChannelIdsEnd_clone(this.ptr); + if (ret < 1024) { return null; } ReplyShortChannelIdsEnd ret_hu_conv = new ReplyShortChannelIdsEnd(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -78,6 +80,7 @@ public class ReplyShortChannelIdsEnd extends CommonBase { */ public static Result_ReplyShortChannelIdsEndDecodeErrorZ read(byte[] ser) { long ret = bindings.ReplyShortChannelIdsEnd_read(ser); + if (ret < 1024) { return null; } Result_ReplyShortChannelIdsEndDecodeErrorZ ret_hu_conv = Result_ReplyShortChannelIdsEndDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java index 0606b503..eb084466 100644 --- a/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_AcceptChannelDecodeErrorZ extends CommonBase { */ public static Result_AcceptChannelDecodeErrorZ ok(AcceptChannel o) { long ret = bindings.CResult_AcceptChannelDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_AcceptChannelDecodeErrorZ ret_hu_conv = Result_AcceptChannelDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_AcceptChannelDecodeErrorZ extends CommonBase { */ public static Result_AcceptChannelDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_AcceptChannelDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_AcceptChannelDecodeErrorZ ret_hu_conv = Result_AcceptChannelDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_AcceptChannelDecodeErrorZ extends CommonBase { */ public Result_AcceptChannelDecodeErrorZ clone() { long ret = bindings.CResult_AcceptChannelDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_AcceptChannelDecodeErrorZ ret_hu_conv = Result_AcceptChannelDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java index 1b747988..d98fcc3e 100644 --- a/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_AnnouncementSignaturesDecodeErrorZ extends CommonBase { */ public static Result_AnnouncementSignaturesDecodeErrorZ ok(AnnouncementSignatures o) { long ret = bindings.CResult_AnnouncementSignaturesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_AnnouncementSignaturesDecodeErrorZ ret_hu_conv = Result_AnnouncementSignaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_AnnouncementSignaturesDecodeErrorZ extends CommonBase { */ public static Result_AnnouncementSignaturesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_AnnouncementSignaturesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_AnnouncementSignaturesDecodeErrorZ ret_hu_conv = Result_AnnouncementSignaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_AnnouncementSignaturesDecodeErrorZ extends CommonBase { */ public Result_AnnouncementSignaturesDecodeErrorZ clone() { long ret = bindings.CResult_AnnouncementSignaturesDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_AnnouncementSignaturesDecodeErrorZ ret_hu_conv = Result_AnnouncementSignaturesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java index 3fed27fa..11a6352f 100644 --- a/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_BuiltCommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_BuiltCommitmentTransactionDecodeErrorZ ok(BuiltCommitmentTransaction o) { long ret = bindings.CResult_BuiltCommitmentTransactionDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_BuiltCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_BuiltCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_BuiltCommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_BuiltCommitmentTransactionDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_BuiltCommitmentTransactionDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_BuiltCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_BuiltCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_BuiltCommitmentTransactionDecodeErrorZ extends CommonBase { */ public Result_BuiltCommitmentTransactionDecodeErrorZ clone() { long ret = bindings.CResult_BuiltCommitmentTransactionDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_BuiltCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_BuiltCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java index 2ee985a5..f49d7660 100644 --- a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java @@ -51,6 +51,7 @@ public class Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ extends CommonB */ public static Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ ok(TwoTuple o) { long ret = bindings.CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_ok(bindings.C2Tuple_BlockHashChannelManagerZ_new(o.a, o.b == null ? 0 : o.b.ptr & ~1)); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o.b); // Due to rust's strict-ownership memory model, in some cases we need to "move" @@ -69,6 +70,7 @@ public class Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ extends CommonB */ public static Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java index c46d45be..6a21fb3c 100644 --- a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java @@ -51,6 +51,7 @@ public class Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ extends CommonB */ public static Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ ok(TwoTuple o) { long ret = bindings.CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_ok(bindings.C2Tuple_BlockHashChannelMonitorZ_new(o.a, o.b == null ? 0 : o.b.ptr & ~1)); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o.b); return ret_hu_conv; @@ -61,6 +62,7 @@ public class Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ extends CommonB */ public static Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.java b/src/main/java/org/ldk/structs/Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.java index 1840e40b..b9a92dab 100644 --- a/src/main/java/org/ldk/structs/Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.java @@ -43,6 +43,7 @@ public class Result_C2Tuple_SignatureCVec_SignatureZZNoneZ extends CommonBase { */ public static Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ok(TwoTuple o) { long ret = bindings.CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_ok(bindings.C2Tuple_SignatureCVec_SignatureZZ_new(o.a, o.b)); + if (ret < 1024) { return null; } Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -52,6 +53,7 @@ public class Result_C2Tuple_SignatureCVec_SignatureZZNoneZ extends CommonBase { */ public static Result_C2Tuple_SignatureCVec_SignatureZZNoneZ err() { long ret = bindings.CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_err(); + if (ret < 1024) { return null; } Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_C2Tuple_SignatureCVec_SignatureZZNoneZ extends CommonBase { */ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ clone() { long ret = bindings.CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java index ff4cd359..24a9e58b 100644 --- a/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java @@ -44,6 +44,7 @@ public class Result_CResult_NetAddressu8ZDecodeErrorZ extends CommonBase { */ public static Result_CResult_NetAddressu8ZDecodeErrorZ ok(Result_NetAddressu8Z o) { long ret = bindings.CResult_CResult_NetAddressu8ZDecodeErrorZ_ok(o != null ? o.ptr : 0); + if (ret < 1024) { return null; } Result_CResult_NetAddressu8ZDecodeErrorZ ret_hu_conv = Result_CResult_NetAddressu8ZDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -53,6 +54,7 @@ public class Result_CResult_NetAddressu8ZDecodeErrorZ extends CommonBase { */ public static Result_CResult_NetAddressu8ZDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_CResult_NetAddressu8ZDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_CResult_NetAddressu8ZDecodeErrorZ ret_hu_conv = Result_CResult_NetAddressu8ZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -64,6 +66,7 @@ public class Result_CResult_NetAddressu8ZDecodeErrorZ extends CommonBase { */ public Result_CResult_NetAddressu8ZDecodeErrorZ clone() { long ret = bindings.CResult_CResult_NetAddressu8ZDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CResult_NetAddressu8ZDecodeErrorZ ret_hu_conv = Result_CResult_NetAddressu8ZDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.java b/src/main/java/org/ldk/structs/Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.java index a1a74e7c..0fd55196 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.java @@ -53,6 +53,7 @@ public class Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ extends CommonB */ public static Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ ok(TwoTuple[] o) { long ret = bindings.CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ_ok(Arrays.stream(o).mapToLong(o_conv_34 -> bindings.C2Tuple_BlockHashChannelMonitorZ_new(o_conv_34.a, o_conv_34.b == null ? 0 : o_conv_34.b.ptr & ~1)).toArray()); + if (ret < 1024) { return null; } Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ ret_hu_conv = Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.constr_from_ptr(ret); /* TODO 2 TwoTuple */; return ret_hu_conv; @@ -63,6 +64,7 @@ public class Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ extends CommonB */ public static Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ err(IOError e) { long ret = bindings.CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ_err(e); + if (ret < 1024) { return null; } Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ ret_hu_conv = Result_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.java b/src/main/java/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.java index 21c109e9..23c4609d 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_CVec_u8ZZNoneZ.java @@ -37,6 +37,7 @@ public class Result_CVec_CVec_u8ZZNoneZ extends CommonBase { */ public static Result_CVec_CVec_u8ZZNoneZ ok(byte[][] o) { long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_ok(o); + if (ret < 1024) { return null; } Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_CVec_CVec_u8ZZNoneZ extends CommonBase { */ public static Result_CVec_CVec_u8ZZNoneZ err() { long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_err(); + if (ret < 1024) { return null; } Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_CVec_CVec_u8ZZNoneZ extends CommonBase { */ public Result_CVec_CVec_u8ZZNoneZ clone() { long ret = bindings.CResult_CVec_CVec_u8ZZNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java b/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java index 8cdf986d..8688f73d 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java @@ -37,6 +37,7 @@ public class Result_CVec_SignatureZNoneZ extends CommonBase { */ public static Result_CVec_SignatureZNoneZ ok(byte[][] o) { long ret = bindings.CResult_CVec_SignatureZNoneZ_ok(o); + if (ret < 1024) { return null; } Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_CVec_SignatureZNoneZ extends CommonBase { */ public static Result_CVec_SignatureZNoneZ err() { long ret = bindings.CResult_CVec_SignatureZNoneZ_err(); + if (ret < 1024) { return null; } Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_CVec_SignatureZNoneZ extends CommonBase { */ public Result_CVec_SignatureZNoneZ clone() { long ret = bindings.CResult_CVec_SignatureZNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java b/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java index 7a393992..179d1024 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java @@ -42,6 +42,7 @@ public class Result_CVec_u8ZPeerHandleErrorZ extends CommonBase { */ public static Result_CVec_u8ZPeerHandleErrorZ ok(byte[] o) { long ret = bindings.CResult_CVec_u8ZPeerHandleErrorZ_ok(o); + if (ret < 1024) { return null; } Result_CVec_u8ZPeerHandleErrorZ ret_hu_conv = Result_CVec_u8ZPeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -51,6 +52,7 @@ public class Result_CVec_u8ZPeerHandleErrorZ extends CommonBase { */ public static Result_CVec_u8ZPeerHandleErrorZ err(PeerHandleError e) { long ret = bindings.CResult_CVec_u8ZPeerHandleErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_CVec_u8ZPeerHandleErrorZ ret_hu_conv = Result_CVec_u8ZPeerHandleErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -62,6 +64,7 @@ public class Result_CVec_u8ZPeerHandleErrorZ extends CommonBase { */ public Result_CVec_u8ZPeerHandleErrorZ clone() { long ret = bindings.CResult_CVec_u8ZPeerHandleErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CVec_u8ZPeerHandleErrorZ ret_hu_conv = Result_CVec_u8ZPeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java index 5121b6db..d6a8086e 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_ChannelAnnouncementDecodeErrorZ ok(ChannelAnnouncement o) { long ret = bindings.CResult_ChannelAnnouncementDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_ChannelAnnouncementDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelAnnouncementDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelAnnouncementDecodeErrorZ extends CommonBase { */ public Result_ChannelAnnouncementDecodeErrorZ clone() { long ret = bindings.CResult_ChannelAnnouncementDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java index b5f2ee1f..6d3673c3 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelConfigDecodeErrorZ extends CommonBase { */ public static Result_ChannelConfigDecodeErrorZ ok(ChannelConfig o) { long ret = bindings.CResult_ChannelConfigDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelConfigDecodeErrorZ ret_hu_conv = Result_ChannelConfigDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelConfigDecodeErrorZ extends CommonBase { */ public static Result_ChannelConfigDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelConfigDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelConfigDecodeErrorZ ret_hu_conv = Result_ChannelConfigDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelConfigDecodeErrorZ extends CommonBase { */ public Result_ChannelConfigDecodeErrorZ clone() { long ret = bindings.CResult_ChannelConfigDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelConfigDecodeErrorZ ret_hu_conv = Result_ChannelConfigDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java index e78155d8..24048d50 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelFeaturesDecodeErrorZ extends CommonBase { */ public static Result_ChannelFeaturesDecodeErrorZ ok(ChannelFeatures o) { long ret = bindings.CResult_ChannelFeaturesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelFeaturesDecodeErrorZ ret_hu_conv = Result_ChannelFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelFeaturesDecodeErrorZ extends CommonBase { */ public static Result_ChannelFeaturesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelFeaturesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelFeaturesDecodeErrorZ ret_hu_conv = Result_ChannelFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java index f92708a2..f56e9228 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelInfoDecodeErrorZ extends CommonBase { */ public static Result_ChannelInfoDecodeErrorZ ok(ChannelInfo o) { long ret = bindings.CResult_ChannelInfoDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelInfoDecodeErrorZ ret_hu_conv = Result_ChannelInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelInfoDecodeErrorZ extends CommonBase { */ public static Result_ChannelInfoDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelInfoDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelInfoDecodeErrorZ ret_hu_conv = Result_ChannelInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelInfoDecodeErrorZ extends CommonBase { */ public Result_ChannelInfoDecodeErrorZ clone() { long ret = bindings.CResult_ChannelInfoDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelInfoDecodeErrorZ ret_hu_conv = Result_ChannelInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java index b38139f9..3721af3c 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelMonitorUpdateDecodeErrorZ extends CommonBase { */ public static Result_ChannelMonitorUpdateDecodeErrorZ ok(ChannelMonitorUpdate o) { long ret = bindings.CResult_ChannelMonitorUpdateDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelMonitorUpdateDecodeErrorZ ret_hu_conv = Result_ChannelMonitorUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelMonitorUpdateDecodeErrorZ extends CommonBase { */ public static Result_ChannelMonitorUpdateDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelMonitorUpdateDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelMonitorUpdateDecodeErrorZ ret_hu_conv = Result_ChannelMonitorUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelMonitorUpdateDecodeErrorZ extends CommonBase { */ public Result_ChannelMonitorUpdateDecodeErrorZ clone() { long ret = bindings.CResult_ChannelMonitorUpdateDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelMonitorUpdateDecodeErrorZ ret_hu_conv = Result_ChannelMonitorUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java index 1cc29851..ee26de69 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelPublicKeysDecodeErrorZ extends CommonBase { */ public static Result_ChannelPublicKeysDecodeErrorZ ok(ChannelPublicKeys o) { long ret = bindings.CResult_ChannelPublicKeysDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelPublicKeysDecodeErrorZ ret_hu_conv = Result_ChannelPublicKeysDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelPublicKeysDecodeErrorZ extends CommonBase { */ public static Result_ChannelPublicKeysDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelPublicKeysDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelPublicKeysDecodeErrorZ ret_hu_conv = Result_ChannelPublicKeysDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelPublicKeysDecodeErrorZ extends CommonBase { */ public Result_ChannelPublicKeysDecodeErrorZ clone() { long ret = bindings.CResult_ChannelPublicKeysDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelPublicKeysDecodeErrorZ ret_hu_conv = Result_ChannelPublicKeysDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java index 5ebd6f14..1d139d93 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelReestablishDecodeErrorZ extends CommonBase { */ public static Result_ChannelReestablishDecodeErrorZ ok(ChannelReestablish o) { long ret = bindings.CResult_ChannelReestablishDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelReestablishDecodeErrorZ ret_hu_conv = Result_ChannelReestablishDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelReestablishDecodeErrorZ extends CommonBase { */ public static Result_ChannelReestablishDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelReestablishDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelReestablishDecodeErrorZ ret_hu_conv = Result_ChannelReestablishDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelReestablishDecodeErrorZ extends CommonBase { */ public Result_ChannelReestablishDecodeErrorZ clone() { long ret = bindings.CResult_ChannelReestablishDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelReestablishDecodeErrorZ ret_hu_conv = Result_ChannelReestablishDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java index fabf67b4..d51f669b 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelTransactionParametersDecodeErrorZ extends CommonBase */ public static Result_ChannelTransactionParametersDecodeErrorZ ok(ChannelTransactionParameters o) { long ret = bindings.CResult_ChannelTransactionParametersDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_ChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelTransactionParametersDecodeErrorZ extends CommonBase */ public static Result_ChannelTransactionParametersDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelTransactionParametersDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_ChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelTransactionParametersDecodeErrorZ extends CommonBase */ public Result_ChannelTransactionParametersDecodeErrorZ clone() { long ret = bindings.CResult_ChannelTransactionParametersDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_ChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java index 532d6c6d..9f3f4a69 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ChannelUpdateDecodeErrorZ extends CommonBase { */ public static Result_ChannelUpdateDecodeErrorZ ok(ChannelUpdate o) { long ret = bindings.CResult_ChannelUpdateDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelUpdateDecodeErrorZ ret_hu_conv = Result_ChannelUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ChannelUpdateDecodeErrorZ extends CommonBase { */ public static Result_ChannelUpdateDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ChannelUpdateDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ChannelUpdateDecodeErrorZ ret_hu_conv = Result_ChannelUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ChannelUpdateDecodeErrorZ extends CommonBase { */ public Result_ChannelUpdateDecodeErrorZ clone() { long ret = bindings.CResult_ChannelUpdateDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ChannelUpdateDecodeErrorZ ret_hu_conv = Result_ChannelUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java index 7a4262d9..543711be 100644 --- a/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ClosingSignedDecodeErrorZ extends CommonBase { */ public static Result_ClosingSignedDecodeErrorZ ok(ClosingSigned o) { long ret = bindings.CResult_ClosingSignedDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ClosingSignedDecodeErrorZ ret_hu_conv = Result_ClosingSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ClosingSignedDecodeErrorZ extends CommonBase { */ public static Result_ClosingSignedDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ClosingSignedDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ClosingSignedDecodeErrorZ ret_hu_conv = Result_ClosingSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ClosingSignedDecodeErrorZ extends CommonBase { */ public Result_ClosingSignedDecodeErrorZ clone() { long ret = bindings.CResult_ClosingSignedDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ClosingSignedDecodeErrorZ ret_hu_conv = Result_ClosingSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java index 32452b31..b9aee52d 100644 --- a/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_CommitmentSignedDecodeErrorZ extends CommonBase { */ public static Result_CommitmentSignedDecodeErrorZ ok(CommitmentSigned o) { long ret = bindings.CResult_CommitmentSignedDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_CommitmentSignedDecodeErrorZ ret_hu_conv = Result_CommitmentSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_CommitmentSignedDecodeErrorZ extends CommonBase { */ public static Result_CommitmentSignedDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_CommitmentSignedDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_CommitmentSignedDecodeErrorZ ret_hu_conv = Result_CommitmentSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_CommitmentSignedDecodeErrorZ extends CommonBase { */ public Result_CommitmentSignedDecodeErrorZ clone() { long ret = bindings.CResult_CommitmentSignedDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CommitmentSignedDecodeErrorZ ret_hu_conv = Result_CommitmentSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java index 19118833..ec250602 100644 --- a/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_CommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_CommitmentTransactionDecodeErrorZ ok(CommitmentTransaction o) { long ret = bindings.CResult_CommitmentTransactionDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_CommitmentTransactionDecodeErrorZ ret_hu_conv = Result_CommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_CommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_CommitmentTransactionDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_CommitmentTransactionDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_CommitmentTransactionDecodeErrorZ ret_hu_conv = Result_CommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_CommitmentTransactionDecodeErrorZ extends CommonBase { */ public Result_CommitmentTransactionDecodeErrorZ clone() { long ret = bindings.CResult_CommitmentTransactionDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CommitmentTransactionDecodeErrorZ ret_hu_conv = Result_CommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java index fdb5d93f..435afdfa 100644 --- a/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_CounterpartyChannelTransactionParametersDecodeErrorZ extends */ public static Result_CounterpartyChannelTransactionParametersDecodeErrorZ ok(CounterpartyChannelTransactionParameters o) { long ret = bindings.CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_CounterpartyChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_CounterpartyChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_CounterpartyChannelTransactionParametersDecodeErrorZ extends */ public static Result_CounterpartyChannelTransactionParametersDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_CounterpartyChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_CounterpartyChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_CounterpartyChannelTransactionParametersDecodeErrorZ extends */ public Result_CounterpartyChannelTransactionParametersDecodeErrorZ clone() { long ret = bindings.CResult_CounterpartyChannelTransactionParametersDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_CounterpartyChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_CounterpartyChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_DelayedPaymentOutputDescriptorDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_DelayedPaymentOutputDescriptorDecodeErrorZ.java index 7cc68cb6..5495b55e 100644 --- a/src/main/java/org/ldk/structs/Result_DelayedPaymentOutputDescriptorDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_DelayedPaymentOutputDescriptorDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_DelayedPaymentOutputDescriptorDecodeErrorZ extends CommonBas */ public static Result_DelayedPaymentOutputDescriptorDecodeErrorZ ok(DelayedPaymentOutputDescriptor o) { long ret = bindings.CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_DelayedPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_DelayedPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_DelayedPaymentOutputDescriptorDecodeErrorZ extends CommonBas */ public static Result_DelayedPaymentOutputDescriptorDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_DelayedPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_DelayedPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_DelayedPaymentOutputDescriptorDecodeErrorZ extends CommonBas */ public Result_DelayedPaymentOutputDescriptorDecodeErrorZ clone() { long ret = bindings.CResult_DelayedPaymentOutputDescriptorDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_DelayedPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_DelayedPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_DescriptionCreationErrorZ.java b/src/main/java/org/ldk/structs/Result_DescriptionCreationErrorZ.java index 476b8d7a..d5f3a64b 100644 --- a/src/main/java/org/ldk/structs/Result_DescriptionCreationErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_DescriptionCreationErrorZ.java @@ -42,6 +42,7 @@ public class Result_DescriptionCreationErrorZ extends CommonBase { */ public static Result_DescriptionCreationErrorZ ok(Description o) { long ret = bindings.CResult_DescriptionCreationErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_DescriptionCreationErrorZ ret_hu_conv = Result_DescriptionCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_DescriptionCreationErrorZ extends CommonBase { */ public static Result_DescriptionCreationErrorZ err(CreationError e) { long ret = bindings.CResult_DescriptionCreationErrorZ_err(e); + if (ret < 1024) { return null; } Result_DescriptionCreationErrorZ ret_hu_conv = Result_DescriptionCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_DescriptionCreationErrorZ extends CommonBase { */ public Result_DescriptionCreationErrorZ clone() { long ret = bindings.CResult_DescriptionCreationErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_DescriptionCreationErrorZ ret_hu_conv = Result_DescriptionCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java index 49972e5e..a84c08a7 100644 --- a/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_DirectionalChannelInfoDecodeErrorZ extends CommonBase { */ public static Result_DirectionalChannelInfoDecodeErrorZ ok(DirectionalChannelInfo o) { long ret = bindings.CResult_DirectionalChannelInfoDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_DirectionalChannelInfoDecodeErrorZ extends CommonBase { */ public static Result_DirectionalChannelInfoDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_DirectionalChannelInfoDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_DirectionalChannelInfoDecodeErrorZ extends CommonBase { */ public Result_DirectionalChannelInfoDecodeErrorZ clone() { long ret = bindings.CResult_DirectionalChannelInfoDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java index 0faea6e7..60b92bec 100644 --- a/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ErrorMessageDecodeErrorZ extends CommonBase { */ public static Result_ErrorMessageDecodeErrorZ ok(ErrorMessage o) { long ret = bindings.CResult_ErrorMessageDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ErrorMessageDecodeErrorZ ret_hu_conv = Result_ErrorMessageDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ErrorMessageDecodeErrorZ extends CommonBase { */ public static Result_ErrorMessageDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ErrorMessageDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ErrorMessageDecodeErrorZ ret_hu_conv = Result_ErrorMessageDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ErrorMessageDecodeErrorZ extends CommonBase { */ public Result_ErrorMessageDecodeErrorZ clone() { long ret = bindings.CResult_ErrorMessageDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ErrorMessageDecodeErrorZ ret_hu_conv = Result_ErrorMessageDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ExpiryTimeCreationErrorZ.java b/src/main/java/org/ldk/structs/Result_ExpiryTimeCreationErrorZ.java index 03540b91..2389d8a1 100644 --- a/src/main/java/org/ldk/structs/Result_ExpiryTimeCreationErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ExpiryTimeCreationErrorZ.java @@ -42,6 +42,7 @@ public class Result_ExpiryTimeCreationErrorZ extends CommonBase { */ public static Result_ExpiryTimeCreationErrorZ ok(ExpiryTime o) { long ret = bindings.CResult_ExpiryTimeCreationErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ExpiryTimeCreationErrorZ ret_hu_conv = Result_ExpiryTimeCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_ExpiryTimeCreationErrorZ extends CommonBase { */ public static Result_ExpiryTimeCreationErrorZ err(CreationError e) { long ret = bindings.CResult_ExpiryTimeCreationErrorZ_err(e); + if (ret < 1024) { return null; } Result_ExpiryTimeCreationErrorZ ret_hu_conv = Result_ExpiryTimeCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_ExpiryTimeCreationErrorZ extends CommonBase { */ public Result_ExpiryTimeCreationErrorZ clone() { long ret = bindings.CResult_ExpiryTimeCreationErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ExpiryTimeCreationErrorZ ret_hu_conv = Result_ExpiryTimeCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java index f2b34220..04304b1d 100644 --- a/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_FundingCreatedDecodeErrorZ extends CommonBase { */ public static Result_FundingCreatedDecodeErrorZ ok(FundingCreated o) { long ret = bindings.CResult_FundingCreatedDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingCreatedDecodeErrorZ ret_hu_conv = Result_FundingCreatedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_FundingCreatedDecodeErrorZ extends CommonBase { */ public static Result_FundingCreatedDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_FundingCreatedDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingCreatedDecodeErrorZ ret_hu_conv = Result_FundingCreatedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_FundingCreatedDecodeErrorZ extends CommonBase { */ public Result_FundingCreatedDecodeErrorZ clone() { long ret = bindings.CResult_FundingCreatedDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_FundingCreatedDecodeErrorZ ret_hu_conv = Result_FundingCreatedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java index 390fad32..55336577 100644 --- a/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_FundingLockedDecodeErrorZ extends CommonBase { */ public static Result_FundingLockedDecodeErrorZ ok(FundingLocked o) { long ret = bindings.CResult_FundingLockedDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingLockedDecodeErrorZ ret_hu_conv = Result_FundingLockedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_FundingLockedDecodeErrorZ extends CommonBase { */ public static Result_FundingLockedDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_FundingLockedDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingLockedDecodeErrorZ ret_hu_conv = Result_FundingLockedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_FundingLockedDecodeErrorZ extends CommonBase { */ public Result_FundingLockedDecodeErrorZ clone() { long ret = bindings.CResult_FundingLockedDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_FundingLockedDecodeErrorZ ret_hu_conv = Result_FundingLockedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java index fa305347..165e7be6 100644 --- a/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_FundingSignedDecodeErrorZ extends CommonBase { */ public static Result_FundingSignedDecodeErrorZ ok(FundingSigned o) { long ret = bindings.CResult_FundingSignedDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingSignedDecodeErrorZ ret_hu_conv = Result_FundingSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_FundingSignedDecodeErrorZ extends CommonBase { */ public static Result_FundingSignedDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_FundingSignedDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_FundingSignedDecodeErrorZ ret_hu_conv = Result_FundingSignedDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_FundingSignedDecodeErrorZ extends CommonBase { */ public Result_FundingSignedDecodeErrorZ clone() { long ret = bindings.CResult_FundingSignedDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_FundingSignedDecodeErrorZ ret_hu_conv = Result_FundingSignedDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java index 7ea14db7..cf7d29fa 100644 --- a/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_GossipTimestampFilterDecodeErrorZ extends CommonBase { */ public static Result_GossipTimestampFilterDecodeErrorZ ok(GossipTimestampFilter o) { long ret = bindings.CResult_GossipTimestampFilterDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_GossipTimestampFilterDecodeErrorZ ret_hu_conv = Result_GossipTimestampFilterDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_GossipTimestampFilterDecodeErrorZ extends CommonBase { */ public static Result_GossipTimestampFilterDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_GossipTimestampFilterDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_GossipTimestampFilterDecodeErrorZ ret_hu_conv = Result_GossipTimestampFilterDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_GossipTimestampFilterDecodeErrorZ extends CommonBase { */ public Result_GossipTimestampFilterDecodeErrorZ clone() { long ret = bindings.CResult_GossipTimestampFilterDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_GossipTimestampFilterDecodeErrorZ ret_hu_conv = Result_GossipTimestampFilterDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java index 46c008a2..5882ea82 100644 --- a/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_HTLCOutputInCommitmentDecodeErrorZ extends CommonBase { */ public static Result_HTLCOutputInCommitmentDecodeErrorZ ok(HTLCOutputInCommitment o) { long ret = bindings.CResult_HTLCOutputInCommitmentDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_HTLCOutputInCommitmentDecodeErrorZ ret_hu_conv = Result_HTLCOutputInCommitmentDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_HTLCOutputInCommitmentDecodeErrorZ extends CommonBase { */ public static Result_HTLCOutputInCommitmentDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_HTLCOutputInCommitmentDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_HTLCOutputInCommitmentDecodeErrorZ ret_hu_conv = Result_HTLCOutputInCommitmentDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_HTLCOutputInCommitmentDecodeErrorZ extends CommonBase { */ public Result_HTLCOutputInCommitmentDecodeErrorZ clone() { long ret = bindings.CResult_HTLCOutputInCommitmentDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_HTLCOutputInCommitmentDecodeErrorZ ret_hu_conv = Result_HTLCOutputInCommitmentDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java index 1dfa8b79..882a9f64 100644 --- a/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_HTLCUpdateDecodeErrorZ extends CommonBase { */ public static Result_HTLCUpdateDecodeErrorZ ok(HTLCUpdate o) { long ret = bindings.CResult_HTLCUpdateDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_HTLCUpdateDecodeErrorZ ret_hu_conv = Result_HTLCUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_HTLCUpdateDecodeErrorZ extends CommonBase { */ public static Result_HTLCUpdateDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_HTLCUpdateDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_HTLCUpdateDecodeErrorZ ret_hu_conv = Result_HTLCUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_HTLCUpdateDecodeErrorZ extends CommonBase { */ public Result_HTLCUpdateDecodeErrorZ clone() { long ret = bindings.CResult_HTLCUpdateDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_HTLCUpdateDecodeErrorZ ret_hu_conv = Result_HTLCUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java index c02782e2..62a87677 100644 --- a/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_HolderCommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_HolderCommitmentTransactionDecodeErrorZ ok(HolderCommitmentTransaction o) { long ret = bindings.CResult_HolderCommitmentTransactionDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_HolderCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_HolderCommitmentTransactionDecodeErrorZ extends CommonBase { */ public static Result_HolderCommitmentTransactionDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_HolderCommitmentTransactionDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_HolderCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_HolderCommitmentTransactionDecodeErrorZ extends CommonBase { */ public Result_HolderCommitmentTransactionDecodeErrorZ clone() { long ret = bindings.CResult_HolderCommitmentTransactionDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_HolderCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java index 730a92d4..8db24f9e 100644 --- a/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_InMemorySignerDecodeErrorZ extends CommonBase { */ public static Result_InMemorySignerDecodeErrorZ ok(InMemorySigner o) { long ret = bindings.CResult_InMemorySignerDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InMemorySignerDecodeErrorZ ret_hu_conv = Result_InMemorySignerDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_InMemorySignerDecodeErrorZ extends CommonBase { */ public static Result_InMemorySignerDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_InMemorySignerDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_InMemorySignerDecodeErrorZ ret_hu_conv = Result_InMemorySignerDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_InMemorySignerDecodeErrorZ extends CommonBase { */ public Result_InMemorySignerDecodeErrorZ clone() { long ret = bindings.CResult_InMemorySignerDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_InMemorySignerDecodeErrorZ ret_hu_conv = Result_InMemorySignerDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java index 22e8cfef..45fd8ce3 100644 --- a/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_InitDecodeErrorZ extends CommonBase { */ public static Result_InitDecodeErrorZ ok(Init o) { long ret = bindings.CResult_InitDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InitDecodeErrorZ ret_hu_conv = Result_InitDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_InitDecodeErrorZ extends CommonBase { */ public static Result_InitDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_InitDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_InitDecodeErrorZ ret_hu_conv = Result_InitDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_InitDecodeErrorZ extends CommonBase { */ public Result_InitDecodeErrorZ clone() { long ret = bindings.CResult_InitDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_InitDecodeErrorZ ret_hu_conv = Result_InitDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java index 49e16ec7..cdee7ef3 100644 --- a/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_InitFeaturesDecodeErrorZ extends CommonBase { */ public static Result_InitFeaturesDecodeErrorZ ok(InitFeatures o) { long ret = bindings.CResult_InitFeaturesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_InitFeaturesDecodeErrorZ extends CommonBase { */ public static Result_InitFeaturesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_InitFeaturesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_InvoiceFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InvoiceFeaturesDecodeErrorZ.java index 01af7fb3..e944749f 100644 --- a/src/main/java/org/ldk/structs/Result_InvoiceFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InvoiceFeaturesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_InvoiceFeaturesDecodeErrorZ extends CommonBase { */ public static Result_InvoiceFeaturesDecodeErrorZ ok(InvoiceFeatures o) { long ret = bindings.CResult_InvoiceFeaturesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceFeaturesDecodeErrorZ ret_hu_conv = Result_InvoiceFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_InvoiceFeaturesDecodeErrorZ extends CommonBase { */ public static Result_InvoiceFeaturesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_InvoiceFeaturesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceFeaturesDecodeErrorZ ret_hu_conv = Result_InvoiceFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_InvoiceNoneZ.java b/src/main/java/org/ldk/structs/Result_InvoiceNoneZ.java index 0d4057e3..20e49cc5 100644 --- a/src/main/java/org/ldk/structs/Result_InvoiceNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_InvoiceNoneZ.java @@ -40,6 +40,7 @@ public class Result_InvoiceNoneZ extends CommonBase { */ public static Result_InvoiceNoneZ ok(Invoice o) { long ret = bindings.CResult_InvoiceNoneZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceNoneZ ret_hu_conv = Result_InvoiceNoneZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -50,6 +51,7 @@ public class Result_InvoiceNoneZ extends CommonBase { */ public static Result_InvoiceNoneZ err() { long ret = bindings.CResult_InvoiceNoneZ_err(); + if (ret < 1024) { return null; } Result_InvoiceNoneZ ret_hu_conv = Result_InvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -60,6 +62,7 @@ public class Result_InvoiceNoneZ extends CommonBase { */ public Result_InvoiceNoneZ clone() { long ret = bindings.CResult_InvoiceNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_InvoiceNoneZ ret_hu_conv = Result_InvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_InvoiceSemanticErrorZ.java b/src/main/java/org/ldk/structs/Result_InvoiceSemanticErrorZ.java index fb15d5a8..8a466f36 100644 --- a/src/main/java/org/ldk/structs/Result_InvoiceSemanticErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InvoiceSemanticErrorZ.java @@ -42,6 +42,7 @@ public class Result_InvoiceSemanticErrorZ extends CommonBase { */ public static Result_InvoiceSemanticErrorZ ok(Invoice o) { long ret = bindings.CResult_InvoiceSemanticErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceSemanticErrorZ ret_hu_conv = Result_InvoiceSemanticErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_InvoiceSemanticErrorZ extends CommonBase { */ public static Result_InvoiceSemanticErrorZ err(SemanticError e) { long ret = bindings.CResult_InvoiceSemanticErrorZ_err(e); + if (ret < 1024) { return null; } Result_InvoiceSemanticErrorZ ret_hu_conv = Result_InvoiceSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_InvoiceSemanticErrorZ extends CommonBase { */ public Result_InvoiceSemanticErrorZ clone() { long ret = bindings.CResult_InvoiceSemanticErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_InvoiceSemanticErrorZ ret_hu_conv = Result_InvoiceSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_InvoiceSignOrCreationErrorZ.java b/src/main/java/org/ldk/structs/Result_InvoiceSignOrCreationErrorZ.java index bcd3dd20..4e0fcb48 100644 --- a/src/main/java/org/ldk/structs/Result_InvoiceSignOrCreationErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InvoiceSignOrCreationErrorZ.java @@ -45,6 +45,7 @@ public class Result_InvoiceSignOrCreationErrorZ extends CommonBase { */ public static Result_InvoiceSignOrCreationErrorZ ok(Invoice o) { long ret = bindings.CResult_InvoiceSignOrCreationErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_InvoiceSignOrCreationErrorZ ret_hu_conv = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_InvoiceSignOrCreationErrorZ extends CommonBase { */ public static Result_InvoiceSignOrCreationErrorZ err(SignOrCreationError e) { long ret = bindings.CResult_InvoiceSignOrCreationErrorZ_err(e.ptr); + if (ret < 1024) { return null; } Result_InvoiceSignOrCreationErrorZ ret_hu_conv = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -65,6 +67,7 @@ public class Result_InvoiceSignOrCreationErrorZ extends CommonBase { */ public Result_InvoiceSignOrCreationErrorZ clone() { long ret = bindings.CResult_InvoiceSignOrCreationErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_InvoiceSignOrCreationErrorZ ret_hu_conv = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NetAddressDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NetAddressDecodeErrorZ.java index 92093a1d..a1e180f1 100644 --- a/src/main/java/org/ldk/structs/Result_NetAddressDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NetAddressDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NetAddressDecodeErrorZ extends CommonBase { */ public static Result_NetAddressDecodeErrorZ ok(NetAddress o) { long ret = bindings.CResult_NetAddressDecodeErrorZ_ok(o.ptr); + if (ret < 1024) { return null; } Result_NetAddressDecodeErrorZ ret_hu_conv = Result_NetAddressDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -54,6 +55,7 @@ public class Result_NetAddressDecodeErrorZ extends CommonBase { */ public static Result_NetAddressDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NetAddressDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NetAddressDecodeErrorZ ret_hu_conv = Result_NetAddressDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -65,6 +67,7 @@ public class Result_NetAddressDecodeErrorZ extends CommonBase { */ public Result_NetAddressDecodeErrorZ clone() { long ret = bindings.CResult_NetAddressDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NetAddressDecodeErrorZ ret_hu_conv = Result_NetAddressDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java b/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java index d8f987ce..3b5eee91 100644 --- a/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java +++ b/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java @@ -42,6 +42,7 @@ public class Result_NetAddressu8Z extends CommonBase { */ public static Result_NetAddressu8Z ok(NetAddress o) { long ret = bindings.CResult_NetAddressu8Z_ok(o.ptr); + if (ret < 1024) { return null; } Result_NetAddressu8Z ret_hu_conv = Result_NetAddressu8Z.constr_from_ptr(ret); return ret_hu_conv; } @@ -51,6 +52,7 @@ public class Result_NetAddressu8Z extends CommonBase { */ public static Result_NetAddressu8Z err(byte e) { long ret = bindings.CResult_NetAddressu8Z_err(e); + if (ret < 1024) { return null; } Result_NetAddressu8Z ret_hu_conv = Result_NetAddressu8Z.constr_from_ptr(ret); return ret_hu_conv; } @@ -61,6 +63,7 @@ public class Result_NetAddressu8Z extends CommonBase { */ public Result_NetAddressu8Z clone() { long ret = bindings.CResult_NetAddressu8Z_clone(this.ptr); + if (ret < 1024) { return null; } Result_NetAddressu8Z ret_hu_conv = Result_NetAddressu8Z.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java index 3f4bcf95..375eceb9 100644 --- a/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NetworkGraphDecodeErrorZ extends CommonBase { */ public static Result_NetworkGraphDecodeErrorZ ok(NetworkGraph o) { long ret = bindings.CResult_NetworkGraphDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_NetworkGraphDecodeErrorZ extends CommonBase { */ public static Result_NetworkGraphDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NetworkGraphDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_NetworkGraphDecodeErrorZ extends CommonBase { */ public Result_NetworkGraphDecodeErrorZ clone() { long ret = bindings.CResult_NetworkGraphDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java index f15357b0..4527c8e0 100644 --- a/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NodeAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_NodeAnnouncementDecodeErrorZ ok(NodeAnnouncement o) { long ret = bindings.CResult_NodeAnnouncementDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeAnnouncementDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_NodeAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_NodeAnnouncementDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NodeAnnouncementDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeAnnouncementDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_NodeAnnouncementDecodeErrorZ extends CommonBase { */ public Result_NodeAnnouncementDecodeErrorZ clone() { long ret = bindings.CResult_NodeAnnouncementDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NodeAnnouncementDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java index f9765aee..16152b3d 100644 --- a/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NodeAnnouncementInfoDecodeErrorZ extends CommonBase { */ public static Result_NodeAnnouncementInfoDecodeErrorZ ok(NodeAnnouncementInfo o) { long ret = bindings.CResult_NodeAnnouncementInfoDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeAnnouncementInfoDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_NodeAnnouncementInfoDecodeErrorZ extends CommonBase { */ public static Result_NodeAnnouncementInfoDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NodeAnnouncementInfoDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeAnnouncementInfoDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_NodeAnnouncementInfoDecodeErrorZ extends CommonBase { */ public Result_NodeAnnouncementInfoDecodeErrorZ clone() { long ret = bindings.CResult_NodeAnnouncementInfoDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NodeAnnouncementInfoDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java index 628c6f5f..931ce338 100644 --- a/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NodeFeaturesDecodeErrorZ extends CommonBase { */ public static Result_NodeFeaturesDecodeErrorZ ok(NodeFeatures o) { long ret = bindings.CResult_NodeFeaturesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_NodeFeaturesDecodeErrorZ extends CommonBase { */ public static Result_NodeFeaturesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NodeFeaturesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java index a864a371..0b80d3d9 100644 --- a/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_NodeInfoDecodeErrorZ extends CommonBase { */ public static Result_NodeInfoDecodeErrorZ ok(NodeInfo o) { long ret = bindings.CResult_NodeInfoDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeInfoDecodeErrorZ ret_hu_conv = Result_NodeInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_NodeInfoDecodeErrorZ extends CommonBase { */ public static Result_NodeInfoDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_NodeInfoDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NodeInfoDecodeErrorZ ret_hu_conv = Result_NodeInfoDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_NodeInfoDecodeErrorZ extends CommonBase { */ public Result_NodeInfoDecodeErrorZ clone() { long ret = bindings.CResult_NodeInfoDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NodeInfoDecodeErrorZ ret_hu_conv = Result_NodeInfoDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java index 82ace246..3bd9049e 100644 --- a/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java @@ -40,6 +40,7 @@ public class Result_NoneAPIErrorZ extends CommonBase { */ public static Result_NoneAPIErrorZ ok() { long ret = bindings.CResult_NoneAPIErrorZ_ok(); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -49,6 +50,7 @@ public class Result_NoneAPIErrorZ extends CommonBase { */ public static Result_NoneAPIErrorZ err(APIError e) { long ret = bindings.CResult_NoneAPIErrorZ_err(e.ptr); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -59,6 +61,7 @@ public class Result_NoneAPIErrorZ extends CommonBase { */ public Result_NoneAPIErrorZ clone() { long ret = bindings.CResult_NoneAPIErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java b/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java index df21ffcd..f126ce63 100644 --- a/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java @@ -37,6 +37,7 @@ public class Result_NoneChannelMonitorUpdateErrZ extends CommonBase { */ public static Result_NoneChannelMonitorUpdateErrZ ok() { long ret = bindings.CResult_NoneChannelMonitorUpdateErrZ_ok(); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_NoneChannelMonitorUpdateErrZ extends CommonBase { */ public static Result_NoneChannelMonitorUpdateErrZ err(ChannelMonitorUpdateErr e) { long ret = bindings.CResult_NoneChannelMonitorUpdateErrZ_err(e); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_NoneChannelMonitorUpdateErrZ extends CommonBase { */ public Result_NoneChannelMonitorUpdateErrZ clone() { long ret = bindings.CResult_NoneChannelMonitorUpdateErrZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneErrorZ.java index 533d2e06..8c050f74 100644 --- a/src/main/java/org/ldk/structs/Result_NoneErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneErrorZ.java @@ -37,6 +37,7 @@ public class Result_NoneErrorZ extends CommonBase { */ public static Result_NoneErrorZ ok() { long ret = bindings.CResult_NoneErrorZ_ok(); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_NoneErrorZ extends CommonBase { */ public static Result_NoneErrorZ err(IOError e) { long ret = bindings.CResult_NoneErrorZ_err(e); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_NoneErrorZ extends CommonBase { */ public Result_NoneErrorZ clone() { long ret = bindings.CResult_NoneErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java index 57efa327..c12eea94 100644 --- a/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java @@ -40,6 +40,7 @@ public class Result_NoneLightningErrorZ extends CommonBase { */ public static Result_NoneLightningErrorZ ok() { long ret = bindings.CResult_NoneLightningErrorZ_ok(); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -49,6 +50,7 @@ public class Result_NoneLightningErrorZ extends CommonBase { */ public static Result_NoneLightningErrorZ err(LightningError e) { long ret = bindings.CResult_NoneLightningErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -60,6 +62,7 @@ public class Result_NoneLightningErrorZ extends CommonBase { */ public Result_NoneLightningErrorZ clone() { long ret = bindings.CResult_NoneLightningErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java index ea7ded42..5b093b2a 100644 --- a/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java @@ -40,6 +40,7 @@ public class Result_NoneMonitorUpdateErrorZ extends CommonBase { */ public static Result_NoneMonitorUpdateErrorZ ok() { long ret = bindings.CResult_NoneMonitorUpdateErrorZ_ok(); + if (ret < 1024) { return null; } Result_NoneMonitorUpdateErrorZ ret_hu_conv = Result_NoneMonitorUpdateErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -49,6 +50,7 @@ public class Result_NoneMonitorUpdateErrorZ extends CommonBase { */ public static Result_NoneMonitorUpdateErrorZ err(MonitorUpdateError e) { long ret = bindings.CResult_NoneMonitorUpdateErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneMonitorUpdateErrorZ ret_hu_conv = Result_NoneMonitorUpdateErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -60,6 +62,7 @@ public class Result_NoneMonitorUpdateErrorZ extends CommonBase { */ public Result_NoneMonitorUpdateErrorZ clone() { long ret = bindings.CResult_NoneMonitorUpdateErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneMonitorUpdateErrorZ ret_hu_conv = Result_NoneMonitorUpdateErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java b/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java index 977614dd..abcb55ee 100644 --- a/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java +++ b/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java @@ -40,6 +40,7 @@ public class Result_NonePaymentSendFailureZ extends CommonBase { */ public static Result_NonePaymentSendFailureZ ok() { long ret = bindings.CResult_NonePaymentSendFailureZ_ok(); + if (ret < 1024) { return null; } Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -49,6 +50,7 @@ public class Result_NonePaymentSendFailureZ extends CommonBase { */ public static Result_NonePaymentSendFailureZ err(PaymentSendFailure e) { long ret = bindings.CResult_NonePaymentSendFailureZ_err(e.ptr); + if (ret < 1024) { return null; } Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -59,6 +61,7 @@ public class Result_NonePaymentSendFailureZ extends CommonBase { */ public Result_NonePaymentSendFailureZ clone() { long ret = bindings.CResult_NonePaymentSendFailureZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java b/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java index 95f9c6a7..c05d357a 100644 --- a/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java @@ -40,6 +40,7 @@ public class Result_NonePeerHandleErrorZ extends CommonBase { */ public static Result_NonePeerHandleErrorZ ok() { long ret = bindings.CResult_NonePeerHandleErrorZ_ok(); + if (ret < 1024) { return null; } Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -49,6 +50,7 @@ public class Result_NonePeerHandleErrorZ extends CommonBase { */ public static Result_NonePeerHandleErrorZ err(PeerHandleError e) { long ret = bindings.CResult_NonePeerHandleErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -60,6 +62,7 @@ public class Result_NonePeerHandleErrorZ extends CommonBase { */ public Result_NonePeerHandleErrorZ clone() { long ret = bindings.CResult_NonePeerHandleErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_NoneSemanticErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneSemanticErrorZ.java index 80f9537b..bed72c1a 100644 --- a/src/main/java/org/ldk/structs/Result_NoneSemanticErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneSemanticErrorZ.java @@ -37,6 +37,7 @@ public class Result_NoneSemanticErrorZ extends CommonBase { */ public static Result_NoneSemanticErrorZ ok() { long ret = bindings.CResult_NoneSemanticErrorZ_ok(); + if (ret < 1024) { return null; } Result_NoneSemanticErrorZ ret_hu_conv = Result_NoneSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_NoneSemanticErrorZ extends CommonBase { */ public static Result_NoneSemanticErrorZ err(SemanticError e) { long ret = bindings.CResult_NoneSemanticErrorZ_err(e); + if (ret < 1024) { return null; } Result_NoneSemanticErrorZ ret_hu_conv = Result_NoneSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_NoneSemanticErrorZ extends CommonBase { */ public Result_NoneSemanticErrorZ clone() { long ret = bindings.CResult_NoneSemanticErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_NoneSemanticErrorZ ret_hu_conv = Result_NoneSemanticErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java index 149a15f0..0b7f8eed 100644 --- a/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_OpenChannelDecodeErrorZ extends CommonBase { */ public static Result_OpenChannelDecodeErrorZ ok(OpenChannel o) { long ret = bindings.CResult_OpenChannelDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_OpenChannelDecodeErrorZ ret_hu_conv = Result_OpenChannelDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_OpenChannelDecodeErrorZ extends CommonBase { */ public static Result_OpenChannelDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_OpenChannelDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_OpenChannelDecodeErrorZ ret_hu_conv = Result_OpenChannelDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_OpenChannelDecodeErrorZ extends CommonBase { */ public Result_OpenChannelDecodeErrorZ clone() { long ret = bindings.CResult_OpenChannelDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_OpenChannelDecodeErrorZ ret_hu_conv = Result_OpenChannelDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java index 4eb02c3b..e346972e 100644 --- a/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_OutPointDecodeErrorZ extends CommonBase { */ public static Result_OutPointDecodeErrorZ ok(OutPoint o) { long ret = bindings.CResult_OutPointDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_OutPointDecodeErrorZ ret_hu_conv = Result_OutPointDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_OutPointDecodeErrorZ extends CommonBase { */ public static Result_OutPointDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_OutPointDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_OutPointDecodeErrorZ ret_hu_conv = Result_OutPointDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_OutPointDecodeErrorZ extends CommonBase { */ public Result_OutPointDecodeErrorZ clone() { long ret = bindings.CResult_OutPointDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_OutPointDecodeErrorZ ret_hu_conv = Result_OutPointDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PayeePubKeyErrorZ.java b/src/main/java/org/ldk/structs/Result_PayeePubKeyErrorZ.java index 3f4ef2f6..f505ff36 100644 --- a/src/main/java/org/ldk/structs/Result_PayeePubKeyErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PayeePubKeyErrorZ.java @@ -42,6 +42,7 @@ public class Result_PayeePubKeyErrorZ extends CommonBase { */ public static Result_PayeePubKeyErrorZ ok(PayeePubKey o) { long ret = bindings.CResult_PayeePubKeyErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_PayeePubKeyErrorZ ret_hu_conv = Result_PayeePubKeyErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_PayeePubKeyErrorZ extends CommonBase { */ public static Result_PayeePubKeyErrorZ err(Secp256k1Error e) { long ret = bindings.CResult_PayeePubKeyErrorZ_err(e); + if (ret < 1024) { return null; } Result_PayeePubKeyErrorZ ret_hu_conv = Result_PayeePubKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_PayeePubKeyErrorZ extends CommonBase { */ public Result_PayeePubKeyErrorZ clone() { long ret = bindings.CResult_PayeePubKeyErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PayeePubKeyErrorZ ret_hu_conv = Result_PayeePubKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PaymentHashPaymentSendFailureZ.java b/src/main/java/org/ldk/structs/Result_PaymentHashPaymentSendFailureZ.java new file mode 100644 index 00000000..747eb847 --- /dev/null +++ b/src/main/java/org/ldk/structs/Result_PaymentHashPaymentSendFailureZ.java @@ -0,0 +1,71 @@ +package org.ldk.structs; + +import org.ldk.impl.bindings; +import org.ldk.enums.*; +import org.ldk.util.*; +import java.util.Arrays; + +public class Result_PaymentHashPaymentSendFailureZ extends CommonBase { + private Result_PaymentHashPaymentSendFailureZ(Object _dummy, long ptr) { super(ptr); } + protected void finalize() throws Throwable { + if (ptr != 0) { bindings.CResult_PaymentHashPaymentSendFailureZ_free(ptr); } super.finalize(); + } + + static Result_PaymentHashPaymentSendFailureZ constr_from_ptr(long ptr) { + if (bindings.LDKCResult_PaymentHashPaymentSendFailureZ_result_ok(ptr)) { + return new Result_PaymentHashPaymentSendFailureZ_OK(null, ptr); + } else { + return new Result_PaymentHashPaymentSendFailureZ_Err(null, ptr); + } + } + public static final class Result_PaymentHashPaymentSendFailureZ_OK extends Result_PaymentHashPaymentSendFailureZ { + public final byte[] res; + private Result_PaymentHashPaymentSendFailureZ_OK(Object _dummy, long ptr) { + super(_dummy, ptr); + this.res = bindings.LDKCResult_PaymentHashPaymentSendFailureZ_get_ok(ptr); + } + } + + public static final class Result_PaymentHashPaymentSendFailureZ_Err extends Result_PaymentHashPaymentSendFailureZ { + public final PaymentSendFailure err; + private Result_PaymentHashPaymentSendFailureZ_Err(Object _dummy, long ptr) { + super(_dummy, ptr); + long err = bindings.LDKCResult_PaymentHashPaymentSendFailureZ_get_err(ptr); + PaymentSendFailure err_hu_conv = PaymentSendFailure.constr_from_ptr(err); + err_hu_conv.ptrs_to.add(this); + this.err = err_hu_conv; + } + } + + /** + * Creates a new CResult_PaymentHashPaymentSendFailureZ in the success state. + */ + public static Result_PaymentHashPaymentSendFailureZ ok(byte[] o) { + long ret = bindings.CResult_PaymentHashPaymentSendFailureZ_ok(o); + if (ret < 1024) { return null; } + Result_PaymentHashPaymentSendFailureZ ret_hu_conv = Result_PaymentHashPaymentSendFailureZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_PaymentHashPaymentSendFailureZ in the error state. + */ + public static Result_PaymentHashPaymentSendFailureZ err(PaymentSendFailure e) { + long ret = bindings.CResult_PaymentHashPaymentSendFailureZ_err(e.ptr); + if (ret < 1024) { return null; } + Result_PaymentHashPaymentSendFailureZ ret_hu_conv = Result_PaymentHashPaymentSendFailureZ.constr_from_ptr(ret); + return ret_hu_conv; + } + + /** + * Creates a new CResult_PaymentHashPaymentSendFailureZ which has the same data as `orig` + * but with all dynamically-allocated buffers duplicated in new buffers. + */ + public Result_PaymentHashPaymentSendFailureZ clone() { + long ret = bindings.CResult_PaymentHashPaymentSendFailureZ_clone(this.ptr); + if (ret < 1024) { return null; } + Result_PaymentHashPaymentSendFailureZ ret_hu_conv = Result_PaymentHashPaymentSendFailureZ.constr_from_ptr(ret); + return ret_hu_conv; + } + +} diff --git a/src/main/java/org/ldk/structs/Result_PaymentSecretAPIErrorZ.java b/src/main/java/org/ldk/structs/Result_PaymentSecretAPIErrorZ.java index ce489271..6da50736 100644 --- a/src/main/java/org/ldk/structs/Result_PaymentSecretAPIErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PaymentSecretAPIErrorZ.java @@ -42,6 +42,7 @@ public class Result_PaymentSecretAPIErrorZ extends CommonBase { */ public static Result_PaymentSecretAPIErrorZ ok(byte[] o) { long ret = bindings.CResult_PaymentSecretAPIErrorZ_ok(o); + if (ret < 1024) { return null; } Result_PaymentSecretAPIErrorZ ret_hu_conv = Result_PaymentSecretAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -51,6 +52,7 @@ public class Result_PaymentSecretAPIErrorZ extends CommonBase { */ public static Result_PaymentSecretAPIErrorZ err(APIError e) { long ret = bindings.CResult_PaymentSecretAPIErrorZ_err(e.ptr); + if (ret < 1024) { return null; } Result_PaymentSecretAPIErrorZ ret_hu_conv = Result_PaymentSecretAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -61,6 +63,7 @@ public class Result_PaymentSecretAPIErrorZ extends CommonBase { */ public Result_PaymentSecretAPIErrorZ clone() { long ret = bindings.CResult_PaymentSecretAPIErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PaymentSecretAPIErrorZ ret_hu_conv = Result_PaymentSecretAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java index 871d6a3a..acc27b83 100644 --- a/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_PingDecodeErrorZ extends CommonBase { */ public static Result_PingDecodeErrorZ ok(Ping o) { long ret = bindings.CResult_PingDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_PingDecodeErrorZ ret_hu_conv = Result_PingDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_PingDecodeErrorZ extends CommonBase { */ public static Result_PingDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_PingDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_PingDecodeErrorZ ret_hu_conv = Result_PingDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_PingDecodeErrorZ extends CommonBase { */ public Result_PingDecodeErrorZ clone() { long ret = bindings.CResult_PingDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PingDecodeErrorZ ret_hu_conv = Result_PingDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java index ce60e19e..3bd21b78 100644 --- a/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_PongDecodeErrorZ extends CommonBase { */ public static Result_PongDecodeErrorZ ok(Pong o) { long ret = bindings.CResult_PongDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_PongDecodeErrorZ ret_hu_conv = Result_PongDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_PongDecodeErrorZ extends CommonBase { */ public static Result_PongDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_PongDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_PongDecodeErrorZ ret_hu_conv = Result_PongDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_PongDecodeErrorZ extends CommonBase { */ public Result_PongDecodeErrorZ clone() { long ret = bindings.CResult_PongDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PongDecodeErrorZ ret_hu_conv = Result_PongDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PositiveTimestampCreationErrorZ.java b/src/main/java/org/ldk/structs/Result_PositiveTimestampCreationErrorZ.java index a0c935bb..87a7a40c 100644 --- a/src/main/java/org/ldk/structs/Result_PositiveTimestampCreationErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PositiveTimestampCreationErrorZ.java @@ -42,6 +42,7 @@ public class Result_PositiveTimestampCreationErrorZ extends CommonBase { */ public static Result_PositiveTimestampCreationErrorZ ok(PositiveTimestamp o) { long ret = bindings.CResult_PositiveTimestampCreationErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_PositiveTimestampCreationErrorZ ret_hu_conv = Result_PositiveTimestampCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_PositiveTimestampCreationErrorZ extends CommonBase { */ public static Result_PositiveTimestampCreationErrorZ err(CreationError e) { long ret = bindings.CResult_PositiveTimestampCreationErrorZ_err(e); + if (ret < 1024) { return null; } Result_PositiveTimestampCreationErrorZ ret_hu_conv = Result_PositiveTimestampCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_PositiveTimestampCreationErrorZ extends CommonBase { */ public Result_PositiveTimestampCreationErrorZ clone() { long ret = bindings.CResult_PositiveTimestampCreationErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PositiveTimestampCreationErrorZ ret_hu_conv = Result_PositiveTimestampCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PrivateRouteCreationErrorZ.java b/src/main/java/org/ldk/structs/Result_PrivateRouteCreationErrorZ.java index c6d50d9d..379bc101 100644 --- a/src/main/java/org/ldk/structs/Result_PrivateRouteCreationErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PrivateRouteCreationErrorZ.java @@ -42,6 +42,7 @@ public class Result_PrivateRouteCreationErrorZ extends CommonBase { */ public static Result_PrivateRouteCreationErrorZ ok(PrivateRoute o) { long ret = bindings.CResult_PrivateRouteCreationErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_PrivateRouteCreationErrorZ ret_hu_conv = Result_PrivateRouteCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_PrivateRouteCreationErrorZ extends CommonBase { */ public static Result_PrivateRouteCreationErrorZ err(CreationError e) { long ret = bindings.CResult_PrivateRouteCreationErrorZ_err(e); + if (ret < 1024) { return null; } Result_PrivateRouteCreationErrorZ ret_hu_conv = Result_PrivateRouteCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_PrivateRouteCreationErrorZ extends CommonBase { */ public Result_PrivateRouteCreationErrorZ clone() { long ret = bindings.CResult_PrivateRouteCreationErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PrivateRouteCreationErrorZ ret_hu_conv = Result_PrivateRouteCreationErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java b/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java index e633ee53..f4148883 100644 --- a/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java @@ -39,6 +39,7 @@ public class Result_PublicKeyErrorZ extends CommonBase { */ public static Result_PublicKeyErrorZ ok(byte[] o) { long ret = bindings.CResult_PublicKeyErrorZ_ok(o); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -48,6 +49,7 @@ public class Result_PublicKeyErrorZ extends CommonBase { */ public static Result_PublicKeyErrorZ err(Secp256k1Error e) { long ret = bindings.CResult_PublicKeyErrorZ_err(e); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -58,6 +60,7 @@ public class Result_PublicKeyErrorZ extends CommonBase { */ public Result_PublicKeyErrorZ clone() { long ret = bindings.CResult_PublicKeyErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java index 802f94a9..a15b6a02 100644 --- a/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_QueryChannelRangeDecodeErrorZ extends CommonBase { */ public static Result_QueryChannelRangeDecodeErrorZ ok(QueryChannelRange o) { long ret = bindings.CResult_QueryChannelRangeDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_QueryChannelRangeDecodeErrorZ extends CommonBase { */ public static Result_QueryChannelRangeDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_QueryChannelRangeDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_QueryChannelRangeDecodeErrorZ extends CommonBase { */ public Result_QueryChannelRangeDecodeErrorZ clone() { long ret = bindings.CResult_QueryChannelRangeDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java index 0cab2673..ac64eece 100644 --- a/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_QueryShortChannelIdsDecodeErrorZ extends CommonBase { */ public static Result_QueryShortChannelIdsDecodeErrorZ ok(QueryShortChannelIds o) { long ret = bindings.CResult_QueryShortChannelIdsDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_QueryShortChannelIdsDecodeErrorZ ret_hu_conv = Result_QueryShortChannelIdsDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_QueryShortChannelIdsDecodeErrorZ extends CommonBase { */ public static Result_QueryShortChannelIdsDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_QueryShortChannelIdsDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_QueryShortChannelIdsDecodeErrorZ ret_hu_conv = Result_QueryShortChannelIdsDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_QueryShortChannelIdsDecodeErrorZ extends CommonBase { */ public Result_QueryShortChannelIdsDecodeErrorZ clone() { long ret = bindings.CResult_QueryShortChannelIdsDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_QueryShortChannelIdsDecodeErrorZ ret_hu_conv = Result_QueryShortChannelIdsDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RecoverableSignatureNoneZ.java b/src/main/java/org/ldk/structs/Result_RecoverableSignatureNoneZ.java index ebe4c6ef..3d10fad6 100644 --- a/src/main/java/org/ldk/structs/Result_RecoverableSignatureNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_RecoverableSignatureNoneZ.java @@ -37,6 +37,7 @@ public class Result_RecoverableSignatureNoneZ extends CommonBase { */ public static Result_RecoverableSignatureNoneZ ok(byte[] arg) { long ret = bindings.CResult_RecoverableSignatureNoneZ_ok(arg); + if (ret < 1024) { return null; } Result_RecoverableSignatureNoneZ ret_hu_conv = Result_RecoverableSignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_RecoverableSignatureNoneZ extends CommonBase { */ public static Result_RecoverableSignatureNoneZ err() { long ret = bindings.CResult_RecoverableSignatureNoneZ_err(); + if (ret < 1024) { return null; } Result_RecoverableSignatureNoneZ ret_hu_conv = Result_RecoverableSignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_RecoverableSignatureNoneZ extends CommonBase { */ public Result_RecoverableSignatureNoneZ clone() { long ret = bindings.CResult_RecoverableSignatureNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RecoverableSignatureNoneZ ret_hu_conv = Result_RecoverableSignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java index 40eb3053..8e304d2f 100644 --- a/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ReplyChannelRangeDecodeErrorZ extends CommonBase { */ public static Result_ReplyChannelRangeDecodeErrorZ ok(ReplyChannelRange o) { long ret = bindings.CResult_ReplyChannelRangeDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ReplyChannelRangeDecodeErrorZ ret_hu_conv = Result_ReplyChannelRangeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ReplyChannelRangeDecodeErrorZ extends CommonBase { */ public static Result_ReplyChannelRangeDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ReplyChannelRangeDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ReplyChannelRangeDecodeErrorZ ret_hu_conv = Result_ReplyChannelRangeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ReplyChannelRangeDecodeErrorZ extends CommonBase { */ public Result_ReplyChannelRangeDecodeErrorZ clone() { long ret = bindings.CResult_ReplyChannelRangeDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ReplyChannelRangeDecodeErrorZ ret_hu_conv = Result_ReplyChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java index 5e19c47a..71f2ba45 100644 --- a/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ReplyShortChannelIdsEndDecodeErrorZ extends CommonBase { */ public static Result_ReplyShortChannelIdsEndDecodeErrorZ ok(ReplyShortChannelIdsEnd o) { long ret = bindings.CResult_ReplyShortChannelIdsEndDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ReplyShortChannelIdsEndDecodeErrorZ ret_hu_conv = Result_ReplyShortChannelIdsEndDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ReplyShortChannelIdsEndDecodeErrorZ extends CommonBase { */ public static Result_ReplyShortChannelIdsEndDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ReplyShortChannelIdsEndDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ReplyShortChannelIdsEndDecodeErrorZ ret_hu_conv = Result_ReplyShortChannelIdsEndDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ReplyShortChannelIdsEndDecodeErrorZ extends CommonBase { */ public Result_ReplyShortChannelIdsEndDecodeErrorZ clone() { long ret = bindings.CResult_ReplyShortChannelIdsEndDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ReplyShortChannelIdsEndDecodeErrorZ ret_hu_conv = Result_ReplyShortChannelIdsEndDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java index 4253c0a9..220c9150 100644 --- a/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_RevokeAndACKDecodeErrorZ extends CommonBase { */ public static Result_RevokeAndACKDecodeErrorZ ok(RevokeAndACK o) { long ret = bindings.CResult_RevokeAndACKDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_RevokeAndACKDecodeErrorZ ret_hu_conv = Result_RevokeAndACKDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_RevokeAndACKDecodeErrorZ extends CommonBase { */ public static Result_RevokeAndACKDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_RevokeAndACKDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_RevokeAndACKDecodeErrorZ ret_hu_conv = Result_RevokeAndACKDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_RevokeAndACKDecodeErrorZ extends CommonBase { */ public Result_RevokeAndACKDecodeErrorZ clone() { long ret = bindings.CResult_RevokeAndACKDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RevokeAndACKDecodeErrorZ ret_hu_conv = Result_RevokeAndACKDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java index 34801154..255b3ab7 100644 --- a/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_RouteDecodeErrorZ extends CommonBase { */ public static Result_RouteDecodeErrorZ ok(Route o) { long ret = bindings.CResult_RouteDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteDecodeErrorZ ret_hu_conv = Result_RouteDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_RouteDecodeErrorZ extends CommonBase { */ public static Result_RouteDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_RouteDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteDecodeErrorZ ret_hu_conv = Result_RouteDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_RouteDecodeErrorZ extends CommonBase { */ public Result_RouteDecodeErrorZ clone() { long ret = bindings.CResult_RouteDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RouteDecodeErrorZ ret_hu_conv = Result_RouteDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RouteHopDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RouteHopDecodeErrorZ.java index 0dc4faeb..409cf237 100644 --- a/src/main/java/org/ldk/structs/Result_RouteHopDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RouteHopDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_RouteHopDecodeErrorZ extends CommonBase { */ public static Result_RouteHopDecodeErrorZ ok(RouteHop o) { long ret = bindings.CResult_RouteHopDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteHopDecodeErrorZ ret_hu_conv = Result_RouteHopDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_RouteHopDecodeErrorZ extends CommonBase { */ public static Result_RouteHopDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_RouteHopDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteHopDecodeErrorZ ret_hu_conv = Result_RouteHopDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_RouteHopDecodeErrorZ extends CommonBase { */ public Result_RouteHopDecodeErrorZ clone() { long ret = bindings.CResult_RouteHopDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RouteHopDecodeErrorZ ret_hu_conv = Result_RouteHopDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java index f6a02435..677b95ee 100644 --- a/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java @@ -45,6 +45,7 @@ public class Result_RouteLightningErrorZ extends CommonBase { */ public static Result_RouteLightningErrorZ ok(Route o) { long ret = bindings.CResult_RouteLightningErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteLightningErrorZ ret_hu_conv = Result_RouteLightningErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_RouteLightningErrorZ extends CommonBase { */ public static Result_RouteLightningErrorZ err(LightningError e) { long ret = bindings.CResult_RouteLightningErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_RouteLightningErrorZ ret_hu_conv = Result_RouteLightningErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_RouteLightningErrorZ extends CommonBase { */ public Result_RouteLightningErrorZ clone() { long ret = bindings.CResult_RouteLightningErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RouteLightningErrorZ ret_hu_conv = Result_RouteLightningErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java index 335f379a..f30667aa 100644 --- a/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_RoutingFeesDecodeErrorZ extends CommonBase { */ public static Result_RoutingFeesDecodeErrorZ ok(RoutingFees o) { long ret = bindings.CResult_RoutingFeesDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_RoutingFeesDecodeErrorZ ret_hu_conv = Result_RoutingFeesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_RoutingFeesDecodeErrorZ extends CommonBase { */ public static Result_RoutingFeesDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_RoutingFeesDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_RoutingFeesDecodeErrorZ ret_hu_conv = Result_RoutingFeesDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_RoutingFeesDecodeErrorZ extends CommonBase { */ public Result_RoutingFeesDecodeErrorZ clone() { long ret = bindings.CResult_RoutingFeesDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_RoutingFeesDecodeErrorZ ret_hu_conv = Result_RoutingFeesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java b/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java index 83e0574c..aada0a15 100644 --- a/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java @@ -39,6 +39,7 @@ public class Result_SecretKeyErrorZ extends CommonBase { */ public static Result_SecretKeyErrorZ ok(byte[] o) { long ret = bindings.CResult_SecretKeyErrorZ_ok(o); + if (ret < 1024) { return null; } Result_SecretKeyErrorZ ret_hu_conv = Result_SecretKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -48,6 +49,7 @@ public class Result_SecretKeyErrorZ extends CommonBase { */ public static Result_SecretKeyErrorZ err(Secp256k1Error e) { long ret = bindings.CResult_SecretKeyErrorZ_err(e); + if (ret < 1024) { return null; } Result_SecretKeyErrorZ ret_hu_conv = Result_SecretKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java index 15b23462..06d5cf9b 100644 --- a/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_ShutdownDecodeErrorZ extends CommonBase { */ public static Result_ShutdownDecodeErrorZ ok(Shutdown o) { long ret = bindings.CResult_ShutdownDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_ShutdownDecodeErrorZ ret_hu_conv = Result_ShutdownDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_ShutdownDecodeErrorZ extends CommonBase { */ public static Result_ShutdownDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_ShutdownDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_ShutdownDecodeErrorZ ret_hu_conv = Result_ShutdownDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_ShutdownDecodeErrorZ extends CommonBase { */ public Result_ShutdownDecodeErrorZ clone() { long ret = bindings.CResult_ShutdownDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_ShutdownDecodeErrorZ ret_hu_conv = Result_ShutdownDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SiPrefixNoneZ.java b/src/main/java/org/ldk/structs/Result_SiPrefixNoneZ.java index a49e15c6..a2fd6b7c 100644 --- a/src/main/java/org/ldk/structs/Result_SiPrefixNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_SiPrefixNoneZ.java @@ -37,6 +37,7 @@ public class Result_SiPrefixNoneZ extends CommonBase { */ public static Result_SiPrefixNoneZ ok(SiPrefix o) { long ret = bindings.CResult_SiPrefixNoneZ_ok(o); + if (ret < 1024) { return null; } Result_SiPrefixNoneZ ret_hu_conv = Result_SiPrefixNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_SiPrefixNoneZ extends CommonBase { */ public static Result_SiPrefixNoneZ err() { long ret = bindings.CResult_SiPrefixNoneZ_err(); + if (ret < 1024) { return null; } Result_SiPrefixNoneZ ret_hu_conv = Result_SiPrefixNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_SiPrefixNoneZ extends CommonBase { */ public Result_SiPrefixNoneZ clone() { long ret = bindings.CResult_SiPrefixNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_SiPrefixNoneZ ret_hu_conv = Result_SiPrefixNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java index 0652b9f2..8d25f8b7 100644 --- a/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_SignDecodeErrorZ extends CommonBase { */ public static Result_SignDecodeErrorZ ok(Sign o) { long ret = bindings.CResult_SignDecodeErrorZ_ok(o == null ? 0 : o.ptr); + if (ret < 1024) { return null; } Result_SignDecodeErrorZ ret_hu_conv = Result_SignDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_SignDecodeErrorZ extends CommonBase { */ public static Result_SignDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_SignDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_SignDecodeErrorZ ret_hu_conv = Result_SignDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_SignDecodeErrorZ extends CommonBase { */ public Result_SignDecodeErrorZ clone() { long ret = bindings.CResult_SignDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_SignDecodeErrorZ ret_hu_conv = Result_SignDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java b/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java index 249d58dc..62f3694c 100644 --- a/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java @@ -37,6 +37,7 @@ public class Result_SignatureNoneZ extends CommonBase { */ public static Result_SignatureNoneZ ok(byte[] o) { long ret = bindings.CResult_SignatureNoneZ_ok(o); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_SignatureNoneZ extends CommonBase { */ public static Result_SignatureNoneZ err() { long ret = bindings.CResult_SignatureNoneZ_err(); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_SignatureNoneZ extends CommonBase { */ public Result_SignatureNoneZ clone() { long ret = bindings.CResult_SignatureNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SignedRawInvoiceNoneZ.java b/src/main/java/org/ldk/structs/Result_SignedRawInvoiceNoneZ.java index ce9c9286..4442416f 100644 --- a/src/main/java/org/ldk/structs/Result_SignedRawInvoiceNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_SignedRawInvoiceNoneZ.java @@ -40,6 +40,7 @@ public class Result_SignedRawInvoiceNoneZ extends CommonBase { */ public static Result_SignedRawInvoiceNoneZ ok(SignedRawInvoice o) { long ret = bindings.CResult_SignedRawInvoiceNoneZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_SignedRawInvoiceNoneZ ret_hu_conv = Result_SignedRawInvoiceNoneZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -50,6 +51,7 @@ public class Result_SignedRawInvoiceNoneZ extends CommonBase { */ public static Result_SignedRawInvoiceNoneZ err() { long ret = bindings.CResult_SignedRawInvoiceNoneZ_err(); + if (ret < 1024) { return null; } Result_SignedRawInvoiceNoneZ ret_hu_conv = Result_SignedRawInvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -60,6 +62,7 @@ public class Result_SignedRawInvoiceNoneZ extends CommonBase { */ public Result_SignedRawInvoiceNoneZ clone() { long ret = bindings.CResult_SignedRawInvoiceNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_SignedRawInvoiceNoneZ ret_hu_conv = Result_SignedRawInvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java index 176034af..46ce0743 100644 --- a/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_SpendableOutputDescriptorDecodeErrorZ extends CommonBase { */ public static Result_SpendableOutputDescriptorDecodeErrorZ ok(SpendableOutputDescriptor o) { long ret = bindings.CResult_SpendableOutputDescriptorDecodeErrorZ_ok(o.ptr); + if (ret < 1024) { return null; } Result_SpendableOutputDescriptorDecodeErrorZ ret_hu_conv = Result_SpendableOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -54,6 +55,7 @@ public class Result_SpendableOutputDescriptorDecodeErrorZ extends CommonBase { */ public static Result_SpendableOutputDescriptorDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_SpendableOutputDescriptorDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_SpendableOutputDescriptorDecodeErrorZ ret_hu_conv = Result_SpendableOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -65,6 +67,7 @@ public class Result_SpendableOutputDescriptorDecodeErrorZ extends CommonBase { */ public Result_SpendableOutputDescriptorDecodeErrorZ clone() { long ret = bindings.CResult_SpendableOutputDescriptorDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_SpendableOutputDescriptorDecodeErrorZ ret_hu_conv = Result_SpendableOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_StaticPaymentOutputDescriptorDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_StaticPaymentOutputDescriptorDecodeErrorZ.java index f0ab215b..8f53086f 100644 --- a/src/main/java/org/ldk/structs/Result_StaticPaymentOutputDescriptorDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_StaticPaymentOutputDescriptorDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_StaticPaymentOutputDescriptorDecodeErrorZ extends CommonBase */ public static Result_StaticPaymentOutputDescriptorDecodeErrorZ ok(StaticPaymentOutputDescriptor o) { long ret = bindings.CResult_StaticPaymentOutputDescriptorDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_StaticPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_StaticPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_StaticPaymentOutputDescriptorDecodeErrorZ extends CommonBase */ public static Result_StaticPaymentOutputDescriptorDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_StaticPaymentOutputDescriptorDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_StaticPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_StaticPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_StaticPaymentOutputDescriptorDecodeErrorZ extends CommonBase */ public Result_StaticPaymentOutputDescriptorDecodeErrorZ clone() { long ret = bindings.CResult_StaticPaymentOutputDescriptorDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_StaticPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_StaticPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_StringErrorZ.java b/src/main/java/org/ldk/structs/Result_StringErrorZ.java index 9d5e14be..e0c95e1e 100644 --- a/src/main/java/org/ldk/structs/Result_StringErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_StringErrorZ.java @@ -39,6 +39,7 @@ public class Result_StringErrorZ extends CommonBase { */ public static Result_StringErrorZ ok(String o) { long ret = bindings.CResult_StringErrorZ_ok(o); + if (ret < 1024) { return null; } Result_StringErrorZ ret_hu_conv = Result_StringErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -48,6 +49,7 @@ public class Result_StringErrorZ extends CommonBase { */ public static Result_StringErrorZ err(Secp256k1Error e) { long ret = bindings.CResult_StringErrorZ_err(e); + if (ret < 1024) { return null; } Result_StringErrorZ ret_hu_conv = Result_StringErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java b/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java index 97ab5b0d..cc466a5d 100644 --- a/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java @@ -37,6 +37,7 @@ public class Result_TransactionNoneZ extends CommonBase { */ public static Result_TransactionNoneZ ok(byte[] o) { long ret = bindings.CResult_TransactionNoneZ_ok(o); + if (ret < 1024) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -46,6 +47,7 @@ public class Result_TransactionNoneZ extends CommonBase { */ public static Result_TransactionNoneZ err() { long ret = bindings.CResult_TransactionNoneZ_err(); + if (ret < 1024) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -56,6 +58,7 @@ public class Result_TransactionNoneZ extends CommonBase { */ public Result_TransactionNoneZ clone() { long ret = bindings.CResult_TransactionNoneZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java b/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java index 7c00f3a0..d11fe7bf 100644 --- a/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java @@ -40,6 +40,7 @@ public class Result_TrustedCommitmentTransactionNoneZ extends CommonBase { */ public static Result_TrustedCommitmentTransactionNoneZ ok(TrustedCommitmentTransaction o) { long ret = bindings.CResult_TrustedCommitmentTransactionNoneZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_TrustedCommitmentTransactionNoneZ ret_hu_conv = Result_TrustedCommitmentTransactionNoneZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); // Due to rust's strict-ownership memory model, in some cases we need to "move" @@ -58,6 +59,7 @@ public class Result_TrustedCommitmentTransactionNoneZ extends CommonBase { */ public static Result_TrustedCommitmentTransactionNoneZ err() { long ret = bindings.CResult_TrustedCommitmentTransactionNoneZ_err(); + if (ret < 1024) { return null; } Result_TrustedCommitmentTransactionNoneZ ret_hu_conv = Result_TrustedCommitmentTransactionNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java index 290b26c8..f4051c34 100644 --- a/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_TxCreationKeysDecodeErrorZ extends CommonBase { */ public static Result_TxCreationKeysDecodeErrorZ ok(TxCreationKeys o) { long ret = bindings.CResult_TxCreationKeysDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_TxCreationKeysDecodeErrorZ ret_hu_conv = Result_TxCreationKeysDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_TxCreationKeysDecodeErrorZ extends CommonBase { */ public static Result_TxCreationKeysDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_TxCreationKeysDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_TxCreationKeysDecodeErrorZ ret_hu_conv = Result_TxCreationKeysDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_TxCreationKeysDecodeErrorZ extends CommonBase { */ public Result_TxCreationKeysDecodeErrorZ clone() { long ret = bindings.CResult_TxCreationKeysDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_TxCreationKeysDecodeErrorZ ret_hu_conv = Result_TxCreationKeysDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java b/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java index 1ca1d7c2..188594f1 100644 --- a/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java @@ -42,6 +42,7 @@ public class Result_TxCreationKeysErrorZ extends CommonBase { */ public static Result_TxCreationKeysErrorZ ok(TxCreationKeys o) { long ret = bindings.CResult_TxCreationKeysErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -52,6 +53,7 @@ public class Result_TxCreationKeysErrorZ extends CommonBase { */ public static Result_TxCreationKeysErrorZ err(Secp256k1Error e) { long ret = bindings.CResult_TxCreationKeysErrorZ_err(e); + if (ret < 1024) { return null; } Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -62,6 +64,7 @@ public class Result_TxCreationKeysErrorZ extends CommonBase { */ public Result_TxCreationKeysErrorZ clone() { long ret = bindings.CResult_TxCreationKeysErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java b/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java index bbea0020..9e7b85d4 100644 --- a/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java @@ -41,6 +41,7 @@ public class Result_TxOutAccessErrorZ extends CommonBase { */ public static Result_TxOutAccessErrorZ ok(TxOut o) { long ret = bindings.CResult_TxOutAccessErrorZ_ok(o.ptr); + if (ret < 1024) { return null; } Result_TxOutAccessErrorZ ret_hu_conv = Result_TxOutAccessErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -50,6 +51,7 @@ public class Result_TxOutAccessErrorZ extends CommonBase { */ public static Result_TxOutAccessErrorZ err(AccessError e) { long ret = bindings.CResult_TxOutAccessErrorZ_err(e); + if (ret < 1024) { return null; } Result_TxOutAccessErrorZ ret_hu_conv = Result_TxOutAccessErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -60,6 +62,7 @@ public class Result_TxOutAccessErrorZ extends CommonBase { */ public Result_TxOutAccessErrorZ clone() { long ret = bindings.CResult_TxOutAccessErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_TxOutAccessErrorZ ret_hu_conv = Result_TxOutAccessErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java index cccee3c6..2c5a3948 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UnsignedChannelAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_UnsignedChannelAnnouncementDecodeErrorZ ok(UnsignedChannelAnnouncement o) { long ret = bindings.CResult_UnsignedChannelAnnouncementDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UnsignedChannelAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_UnsignedChannelAnnouncementDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UnsignedChannelAnnouncementDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UnsignedChannelAnnouncementDecodeErrorZ extends CommonBase { */ public Result_UnsignedChannelAnnouncementDecodeErrorZ clone() { long ret = bindings.CResult_UnsignedChannelAnnouncementDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UnsignedChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java index 902aecb2..a9ca0b32 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UnsignedChannelUpdateDecodeErrorZ extends CommonBase { */ public static Result_UnsignedChannelUpdateDecodeErrorZ ok(UnsignedChannelUpdate o) { long ret = bindings.CResult_UnsignedChannelUpdateDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UnsignedChannelUpdateDecodeErrorZ extends CommonBase { */ public static Result_UnsignedChannelUpdateDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UnsignedChannelUpdateDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UnsignedChannelUpdateDecodeErrorZ extends CommonBase { */ public Result_UnsignedChannelUpdateDecodeErrorZ clone() { long ret = bindings.CResult_UnsignedChannelUpdateDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java index f2b45378..248f2ea9 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UnsignedNodeAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_UnsignedNodeAnnouncementDecodeErrorZ ok(UnsignedNodeAnnouncement o) { long ret = bindings.CResult_UnsignedNodeAnnouncementDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UnsignedNodeAnnouncementDecodeErrorZ extends CommonBase { */ public static Result_UnsignedNodeAnnouncementDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UnsignedNodeAnnouncementDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UnsignedNodeAnnouncementDecodeErrorZ extends CommonBase { */ public Result_UnsignedNodeAnnouncementDecodeErrorZ clone() { long ret = bindings.CResult_UnsignedNodeAnnouncementDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java index 20d44b13..d7b8d8dd 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UpdateAddHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateAddHTLCDecodeErrorZ ok(UpdateAddHTLC o) { long ret = bindings.CResult_UpdateAddHTLCDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateAddHTLCDecodeErrorZ ret_hu_conv = Result_UpdateAddHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UpdateAddHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateAddHTLCDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UpdateAddHTLCDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateAddHTLCDecodeErrorZ ret_hu_conv = Result_UpdateAddHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UpdateAddHTLCDecodeErrorZ extends CommonBase { */ public Result_UpdateAddHTLCDecodeErrorZ clone() { long ret = bindings.CResult_UpdateAddHTLCDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UpdateAddHTLCDecodeErrorZ ret_hu_conv = Result_UpdateAddHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java index 6ae81f16..f56b0454 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UpdateFailHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFailHTLCDecodeErrorZ ok(UpdateFailHTLC o) { long ret = bindings.CResult_UpdateFailHTLCDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFailHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UpdateFailHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFailHTLCDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UpdateFailHTLCDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFailHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UpdateFailHTLCDecodeErrorZ extends CommonBase { */ public Result_UpdateFailHTLCDecodeErrorZ clone() { long ret = bindings.CResult_UpdateFailHTLCDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UpdateFailHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java index 69b3cb6d..df6d5879 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UpdateFailMalformedHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFailMalformedHTLCDecodeErrorZ ok(UpdateFailMalformedHTLC o) { long ret = bindings.CResult_UpdateFailMalformedHTLCDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFailMalformedHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailMalformedHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UpdateFailMalformedHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFailMalformedHTLCDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UpdateFailMalformedHTLCDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFailMalformedHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailMalformedHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UpdateFailMalformedHTLCDecodeErrorZ extends CommonBase { */ public Result_UpdateFailMalformedHTLCDecodeErrorZ clone() { long ret = bindings.CResult_UpdateFailMalformedHTLCDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UpdateFailMalformedHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailMalformedHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java index 1200e14e..330a8b3e 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UpdateFeeDecodeErrorZ extends CommonBase { */ public static Result_UpdateFeeDecodeErrorZ ok(UpdateFee o) { long ret = bindings.CResult_UpdateFeeDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFeeDecodeErrorZ ret_hu_conv = Result_UpdateFeeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UpdateFeeDecodeErrorZ extends CommonBase { */ public static Result_UpdateFeeDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UpdateFeeDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFeeDecodeErrorZ ret_hu_conv = Result_UpdateFeeDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UpdateFeeDecodeErrorZ extends CommonBase { */ public Result_UpdateFeeDecodeErrorZ clone() { long ret = bindings.CResult_UpdateFeeDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UpdateFeeDecodeErrorZ ret_hu_conv = Result_UpdateFeeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java index 58be9052..db6a89d8 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java @@ -45,6 +45,7 @@ public class Result_UpdateFulfillHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFulfillHTLCDecodeErrorZ ok(UpdateFulfillHTLC o) { long ret = bindings.CResult_UpdateFulfillHTLCDecodeErrorZ_ok(o == null ? 0 : o.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFulfillHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFulfillHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(o); return ret_hu_conv; @@ -55,6 +56,7 @@ public class Result_UpdateFulfillHTLCDecodeErrorZ extends CommonBase { */ public static Result_UpdateFulfillHTLCDecodeErrorZ err(DecodeError e) { long ret = bindings.CResult_UpdateFulfillHTLCDecodeErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_UpdateFulfillHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFulfillHTLCDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Result_UpdateFulfillHTLCDecodeErrorZ extends CommonBase { */ public Result_UpdateFulfillHTLCDecodeErrorZ clone() { long ret = bindings.CResult_UpdateFulfillHTLCDecodeErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_UpdateFulfillHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFulfillHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java index 60571a14..fb74d3c9 100644 --- a/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java @@ -42,6 +42,7 @@ public class Result_boolLightningErrorZ extends CommonBase { */ public static Result_boolLightningErrorZ ok(boolean o) { long ret = bindings.CResult_boolLightningErrorZ_ok(o); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -51,6 +52,7 @@ public class Result_boolLightningErrorZ extends CommonBase { */ public static Result_boolLightningErrorZ err(LightningError e) { long ret = bindings.CResult_boolLightningErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -62,6 +64,7 @@ public class Result_boolLightningErrorZ extends CommonBase { */ public Result_boolLightningErrorZ clone() { long ret = bindings.CResult_boolLightningErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java b/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java index cbcedfb2..54d94017 100644 --- a/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java @@ -42,6 +42,7 @@ public class Result_boolPeerHandleErrorZ extends CommonBase { */ public static Result_boolPeerHandleErrorZ ok(boolean o) { long ret = bindings.CResult_boolPeerHandleErrorZ_ok(o); + if (ret < 1024) { return null; } Result_boolPeerHandleErrorZ ret_hu_conv = Result_boolPeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -51,6 +52,7 @@ public class Result_boolPeerHandleErrorZ extends CommonBase { */ public static Result_boolPeerHandleErrorZ err(PeerHandleError e) { long ret = bindings.CResult_boolPeerHandleErrorZ_err(e == null ? 0 : e.ptr & ~1); + if (ret < 1024) { return null; } Result_boolPeerHandleErrorZ ret_hu_conv = Result_boolPeerHandleErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(e); return ret_hu_conv; @@ -62,6 +64,7 @@ public class Result_boolPeerHandleErrorZ extends CommonBase { */ public Result_boolPeerHandleErrorZ clone() { long ret = bindings.CResult_boolPeerHandleErrorZ_clone(this.ptr); + if (ret < 1024) { return null; } Result_boolPeerHandleErrorZ ret_hu_conv = Result_boolPeerHandleErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/RevokeAndACK.java b/src/main/java/org/ldk/structs/RevokeAndACK.java index 0ca324c0..5de9ff6f 100644 --- a/src/main/java/org/ldk/structs/RevokeAndACK.java +++ b/src/main/java/org/ldk/structs/RevokeAndACK.java @@ -68,6 +68,7 @@ public class RevokeAndACK extends CommonBase { */ public static RevokeAndACK of(byte[] channel_id_arg, byte[] per_commitment_secret_arg, byte[] next_per_commitment_point_arg) { long ret = bindings.RevokeAndACK_new(channel_id_arg, per_commitment_secret_arg, next_per_commitment_point_arg); + if (ret < 1024) { return null; } RevokeAndACK ret_hu_conv = new RevokeAndACK(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -78,6 +79,7 @@ public class RevokeAndACK extends CommonBase { */ public RevokeAndACK clone() { long ret = bindings.RevokeAndACK_clone(this.ptr); + if (ret < 1024) { return null; } RevokeAndACK ret_hu_conv = new RevokeAndACK(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -96,6 +98,7 @@ public class RevokeAndACK extends CommonBase { */ public static Result_RevokeAndACKDecodeErrorZ read(byte[] ser) { long ret = bindings.RevokeAndACK_read(ser); + if (ret < 1024) { return null; } Result_RevokeAndACKDecodeErrorZ ret_hu_conv = Result_RevokeAndACKDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Route.java b/src/main/java/org/ldk/structs/Route.java index 7c4e8275..fb2c53a4 100644 --- a/src/main/java/org/ldk/structs/Route.java +++ b/src/main/java/org/ldk/structs/Route.java @@ -37,6 +37,7 @@ public class Route extends CommonBase { */ public static Route of(RouteHop[][] paths_arg) { long ret = bindings.Route_new(Arrays.stream(paths_arg).map(paths_arg_conv_12 -> Arrays.stream(paths_arg_conv_12).mapToLong(paths_arg_conv_12_conv_10 -> paths_arg_conv_12_conv_10 == null ? 0 : paths_arg_conv_12_conv_10.ptr & ~1).toArray()).toArray(long[][]::new)); + if (ret < 1024) { return null; } Route ret_hu_conv = new Route(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); /* TODO 2 RouteHop[] */; @@ -48,6 +49,7 @@ public class Route extends CommonBase { */ public Route clone() { long ret = bindings.Route_clone(this.ptr); + if (ret < 1024) { return null; } Route ret_hu_conv = new Route(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -66,6 +68,7 @@ public class Route extends CommonBase { */ public static Result_RouteDecodeErrorZ read(byte[] ser) { long ret = bindings.Route_read(ser); + if (ret < 1024) { return null; } Result_RouteDecodeErrorZ ret_hu_conv = Result_RouteDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/RouteHint.java b/src/main/java/org/ldk/structs/RouteHint.java index f13f5c14..b7c3ba0d 100644 --- a/src/main/java/org/ldk/structs/RouteHint.java +++ b/src/main/java/org/ldk/structs/RouteHint.java @@ -34,6 +34,7 @@ public class RouteHint extends CommonBase { */ public RouteHint clone() { long ret = bindings.RouteHint_clone(this.ptr); + if (ret < 1024) { return null; } RouteHint ret_hu_conv = new RouteHint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/RouteHintHop.java b/src/main/java/org/ldk/structs/RouteHintHop.java index ad4a93b8..9fccb408 100644 --- a/src/main/java/org/ldk/structs/RouteHintHop.java +++ b/src/main/java/org/ldk/structs/RouteHintHop.java @@ -53,6 +53,7 @@ public class RouteHintHop extends CommonBase { */ public RoutingFees get_fees() { long ret = bindings.RouteHintHop_get_fees(this.ptr); + if (ret < 1024) { return null; } RoutingFees ret_hu_conv = new RoutingFees(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -86,6 +87,7 @@ public class RouteHintHop extends CommonBase { */ public Option_u64Z get_htlc_minimum_msat() { long ret = bindings.RouteHintHop_get_htlc_minimum_msat(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -103,6 +105,7 @@ public class RouteHintHop extends CommonBase { */ public Option_u64Z get_htlc_maximum_msat() { long ret = bindings.RouteHintHop_get_htlc_maximum_msat(this.ptr); + if (ret < 1024) { return null; } Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -120,6 +123,7 @@ public class RouteHintHop extends CommonBase { */ public static RouteHintHop of(byte[] src_node_id_arg, long short_channel_id_arg, RoutingFees fees_arg, short cltv_expiry_delta_arg, Option_u64Z htlc_minimum_msat_arg, Option_u64Z htlc_maximum_msat_arg) { long ret = bindings.RouteHintHop_new(src_node_id_arg, short_channel_id_arg, fees_arg == null ? 0 : fees_arg.ptr & ~1, cltv_expiry_delta_arg, htlc_minimum_msat_arg.ptr, htlc_maximum_msat_arg.ptr); + if (ret < 1024) { return null; } RouteHintHop ret_hu_conv = new RouteHintHop(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(fees_arg); @@ -142,6 +146,7 @@ public class RouteHintHop extends CommonBase { */ public RouteHintHop clone() { long ret = bindings.RouteHintHop_clone(this.ptr); + if (ret < 1024) { return null; } RouteHintHop ret_hu_conv = new RouteHintHop(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/RouteHop.java b/src/main/java/org/ldk/structs/RouteHop.java index 6d22a7e6..a408cfdc 100644 --- a/src/main/java/org/ldk/structs/RouteHop.java +++ b/src/main/java/org/ldk/structs/RouteHop.java @@ -39,6 +39,7 @@ public class RouteHop extends CommonBase { */ public NodeFeatures get_node_features() { long ret = bindings.RouteHop_get_node_features(this.ptr); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -74,6 +75,7 @@ public class RouteHop extends CommonBase { */ public ChannelFeatures get_channel_features() { long ret = bindings.RouteHop_get_channel_features(this.ptr); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -129,6 +131,7 @@ public class RouteHop extends CommonBase { */ public static RouteHop of(byte[] pubkey_arg, NodeFeatures node_features_arg, long short_channel_id_arg, ChannelFeatures channel_features_arg, long fee_msat_arg, int cltv_expiry_delta_arg) { long ret = bindings.RouteHop_new(pubkey_arg, node_features_arg == null ? 0 : node_features_arg.ptr & ~1, short_channel_id_arg, channel_features_arg == null ? 0 : channel_features_arg.ptr & ~1, fee_msat_arg, cltv_expiry_delta_arg); + if (ret < 1024) { return null; } RouteHop ret_hu_conv = new RouteHop(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(node_features_arg); @@ -141,6 +144,7 @@ public class RouteHop extends CommonBase { */ public RouteHop clone() { long ret = bindings.RouteHop_clone(this.ptr); + if (ret < 1024) { return null; } RouteHop ret_hu_conv = new RouteHop(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -159,6 +163,7 @@ public class RouteHop extends CommonBase { */ public static Result_RouteHopDecodeErrorZ read(byte[] ser) { long ret = bindings.RouteHop_read(ser); + if (ret < 1024) { return null; } Result_RouteHopDecodeErrorZ ret_hu_conv = Result_RouteHopDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/RoutingFees.java b/src/main/java/org/ldk/structs/RoutingFees.java index b3852453..890277f1 100644 --- a/src/main/java/org/ldk/structs/RoutingFees.java +++ b/src/main/java/org/ldk/structs/RoutingFees.java @@ -55,6 +55,7 @@ public class RoutingFees extends CommonBase { */ public static RoutingFees of(int base_msat_arg, int proportional_millionths_arg) { long ret = bindings.RoutingFees_new(base_msat_arg, proportional_millionths_arg); + if (ret < 1024) { return null; } RoutingFees ret_hu_conv = new RoutingFees(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -76,6 +77,7 @@ public class RoutingFees extends CommonBase { */ public RoutingFees clone() { long ret = bindings.RoutingFees_clone(this.ptr); + if (ret < 1024) { return null; } RoutingFees ret_hu_conv = new RoutingFees(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -94,6 +96,7 @@ public class RoutingFees extends CommonBase { */ public static Result_RoutingFeesDecodeErrorZ read(byte[] ser) { long ret = bindings.RoutingFees_read(ser); + if (ret < 1024) { return null; } Result_RoutingFeesDecodeErrorZ ret_hu_conv = Result_RoutingFeesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/RoutingMessageHandler.java b/src/main/java/org/ldk/structs/RoutingMessageHandler.java index 2ca68de1..b89b0c57 100644 --- a/src/main/java/org/ldk/structs/RoutingMessageHandler.java +++ b/src/main/java/org/ldk/structs/RoutingMessageHandler.java @@ -60,6 +60,8 @@ public class RoutingMessageHandler extends CommonBase { * starting at the node *after* the provided publickey and including batch_amount entries * immediately higher (as defined by ::cmp) than starting_point. * If None is provided for starting_point, we start at the first node. + * + * Note that starting_point (or a relevant inner pointer) may be NULL or all-0s to represent None */ NodeAnnouncement[] get_next_node_announcements(byte[] starting_point, byte batch_amount); /** @@ -165,12 +167,23 @@ public class RoutingMessageHandler extends CommonBase { }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance); return impl_holder.held; } + + /** + * Gets the underlying MessageSendEventsProvider. + */ + public MessageSendEventsProvider get_message_send_events_provider() { + MessageSendEventsProvider res = new MessageSendEventsProvider(null, bindings.LDKRoutingMessageHandler_get_MessageSendEventsProvider(this.ptr)); + this.ptrs_to.add(res); + return res; + } + /** * Handle an incoming node_announcement message, returning true if it should be forwarded on, * false or returning an Err otherwise. */ public Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg) { long ret = bindings.RoutingMessageHandler_handle_node_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -182,6 +195,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) { long ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -193,6 +207,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) { long ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -241,8 +256,10 @@ public class RoutingMessageHandler extends CommonBase { * starting at the node *after* the provided publickey and including batch_amount entries * immediately higher (as defined by ::cmp) than starting_point. * If None is provided for starting_point, we start at the first node. + * + * Note that starting_point (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public NodeAnnouncement[] get_next_node_announcements(byte[] starting_point, byte batch_amount) { + public NodeAnnouncement[] get_next_node_announcements(@Nullable byte[] starting_point, byte batch_amount) { long[] ret = bindings.RoutingMessageHandler_get_next_node_announcements(this.ptr, starting_point, batch_amount); NodeAnnouncement[] ret_conv_18_arr = new NodeAnnouncement[ret.length]; for (int s = 0; s < ret.length; s++) { @@ -271,6 +288,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_NoneLightningErrorZ handle_reply_channel_range(byte[] their_node_id, ReplyChannelRange msg) { long ret = bindings.RoutingMessageHandler_handle_reply_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -284,6 +302,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_NoneLightningErrorZ handle_reply_short_channel_ids_end(byte[] their_node_id, ReplyShortChannelIdsEnd msg) { long ret = bindings.RoutingMessageHandler_handle_reply_short_channel_ids_end(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -295,6 +314,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_NoneLightningErrorZ handle_query_channel_range(byte[] their_node_id, QueryChannelRange msg) { long ret = bindings.RoutingMessageHandler_handle_query_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; @@ -306,6 +326,7 @@ public class RoutingMessageHandler extends CommonBase { */ public Result_NoneLightningErrorZ handle_query_short_channel_ids(byte[] their_node_id, QueryShortChannelIds msg) { long ret = bindings.RoutingMessageHandler_handle_query_short_channel_ids(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); this.ptrs_to.add(msg); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Sha256.java b/src/main/java/org/ldk/structs/Sha256.java index b630026a..109aed2e 100644 --- a/src/main/java/org/ldk/structs/Sha256.java +++ b/src/main/java/org/ldk/structs/Sha256.java @@ -34,6 +34,7 @@ public class Sha256 extends CommonBase { */ public Sha256 clone() { long ret = bindings.Sha256_clone(this.ptr); + if (ret < 1024) { return null; } Sha256 ret_hu_conv = new Sha256(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/Shutdown.java b/src/main/java/org/ldk/structs/Shutdown.java index bc02e08b..1badcd85 100644 --- a/src/main/java/org/ldk/structs/Shutdown.java +++ b/src/main/java/org/ldk/structs/Shutdown.java @@ -55,6 +55,7 @@ public class Shutdown extends CommonBase { */ public static Shutdown of(byte[] channel_id_arg, byte[] scriptpubkey_arg) { long ret = bindings.Shutdown_new(channel_id_arg, scriptpubkey_arg); + if (ret < 1024) { return null; } Shutdown ret_hu_conv = new Shutdown(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -65,6 +66,7 @@ public class Shutdown extends CommonBase { */ public Shutdown clone() { long ret = bindings.Shutdown_clone(this.ptr); + if (ret < 1024) { return null; } Shutdown ret_hu_conv = new Shutdown(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -83,6 +85,7 @@ public class Shutdown extends CommonBase { */ public static Result_ShutdownDecodeErrorZ read(byte[] ser) { long ret = bindings.Shutdown_read(ser); + if (ret < 1024) { return null; } Result_ShutdownDecodeErrorZ ret_hu_conv = Result_ShutdownDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/Sign.java b/src/main/java/org/ldk/structs/Sign.java index a9304525..224166e2 100644 --- a/src/main/java/org/ldk/structs/Sign.java +++ b/src/main/java/org/ldk/structs/Sign.java @@ -45,6 +45,16 @@ public class Sign extends CommonBase { }, BaseSign.new_impl(BaseSign_impl, pubkeys).bindings_instance, pubkeys); return impl_holder.held; } + + /** + * Gets the underlying BaseSign. + */ + public BaseSign get_base_sign() { + BaseSign res = new BaseSign(null, bindings.LDKSign_get_BaseSign(this.ptr)); + this.ptrs_to.add(res); + return res; + } + /** * Serialize the object into a byte array */ @@ -58,6 +68,7 @@ public class Sign extends CommonBase { */ public Sign clone() { long ret = bindings.Sign_clone(this.ptr); + if (ret < 1024) { return null; } Sign ret_hu_conv = new Sign(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/SignOrCreationError.java b/src/main/java/org/ldk/structs/SignOrCreationError.java index 918d862e..a9f320e7 100644 --- a/src/main/java/org/ldk/structs/SignOrCreationError.java +++ b/src/main/java/org/ldk/structs/SignOrCreationError.java @@ -46,6 +46,7 @@ public class SignOrCreationError extends CommonBase { */ public SignOrCreationError clone() { long ret = bindings.SignOrCreationError_clone(this.ptr); + if (ret < 1024) { return null; } SignOrCreationError ret_hu_conv = SignOrCreationError.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/SignedRawInvoice.java b/src/main/java/org/ldk/structs/SignedRawInvoice.java index 45bf92d5..c6ba2007 100644 --- a/src/main/java/org/ldk/structs/SignedRawInvoice.java +++ b/src/main/java/org/ldk/structs/SignedRawInvoice.java @@ -38,6 +38,7 @@ public class SignedRawInvoice extends CommonBase { */ public SignedRawInvoice clone() { long ret = bindings.SignedRawInvoice_clone(this.ptr); + if (ret < 1024) { return null; } SignedRawInvoice ret_hu_conv = new SignedRawInvoice(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -51,6 +52,7 @@ public class SignedRawInvoice extends CommonBase { */ public ThreeTuple into_parts() { long ret = bindings.SignedRawInvoice_into_parts(this.ptr); + if (ret < 1024) { return null; } long ret_a = bindings.LDKC3Tuple_RawInvoice_u832InvoiceSignatureZ_get_a(ret); RawInvoice ret_a_hu_conv = new RawInvoice(null, ret_a); ret_a_hu_conv.ptrs_to.add(this);; @@ -72,6 +74,7 @@ public class SignedRawInvoice extends CommonBase { */ public RawInvoice raw_invoice() { long ret = bindings.SignedRawInvoice_raw_invoice(this.ptr); + if (ret < 1024) { return null; } RawInvoice ret_hu_conv = new RawInvoice(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -90,6 +93,7 @@ public class SignedRawInvoice extends CommonBase { */ public InvoiceSignature signature() { long ret = bindings.SignedRawInvoice_signature(this.ptr); + if (ret < 1024) { return null; } InvoiceSignature ret_hu_conv = new InvoiceSignature(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -100,6 +104,7 @@ public class SignedRawInvoice extends CommonBase { */ public Result_PayeePubKeyErrorZ recover_payee_pub_key() { long ret = bindings.SignedRawInvoice_recover_payee_pub_key(this.ptr); + if (ret < 1024) { return null; } Result_PayeePubKeyErrorZ ret_hu_conv = Result_PayeePubKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -118,6 +123,7 @@ public class SignedRawInvoice extends CommonBase { */ public static Result_SignedRawInvoiceNoneZ from_str(String s) { long ret = bindings.SignedRawInvoice_from_str(s); + if (ret < 1024) { return null; } Result_SignedRawInvoiceNoneZ ret_hu_conv = Result_SignedRawInvoiceNoneZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/SocketDescriptor.java b/src/main/java/org/ldk/structs/SocketDescriptor.java index 86fbfdec..b2ddd415 100644 --- a/src/main/java/org/ldk/structs/SocketDescriptor.java +++ b/src/main/java/org/ldk/structs/SocketDescriptor.java @@ -143,6 +143,7 @@ public class SocketDescriptor extends CommonBase { */ public SocketDescriptor clone() { long ret = bindings.SocketDescriptor_clone(this.ptr); + if (ret < 1024) { return null; } SocketDescriptor ret_hu_conv = new SocketDescriptor(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java b/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java index 2f0c0e87..0657e880 100644 --- a/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java @@ -74,6 +74,7 @@ public class SpendableOutputDescriptor extends CommonBase { */ public SpendableOutputDescriptor clone() { long ret = bindings.SpendableOutputDescriptor_clone(this.ptr); + if (ret < 1024) { return null; } SpendableOutputDescriptor ret_hu_conv = SpendableOutputDescriptor.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -92,6 +93,7 @@ public class SpendableOutputDescriptor extends CommonBase { */ public static Result_SpendableOutputDescriptorDecodeErrorZ read(byte[] ser) { long ret = bindings.SpendableOutputDescriptor_read(ser); + if (ret < 1024) { return null; } Result_SpendableOutputDescriptorDecodeErrorZ ret_hu_conv = Result_SpendableOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java b/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java index 92df6b6d..9e9e1900 100644 --- a/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java @@ -24,6 +24,7 @@ public class StaticPaymentOutputDescriptor extends CommonBase { */ public OutPoint get_outpoint() { long ret = bindings.StaticPaymentOutputDescriptor_get_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -83,6 +84,7 @@ public class StaticPaymentOutputDescriptor extends CommonBase { */ public static StaticPaymentOutputDescriptor of(OutPoint outpoint_arg, TxOut output_arg, byte[] channel_keys_id_arg, long channel_value_satoshis_arg) { long ret = bindings.StaticPaymentOutputDescriptor_new(outpoint_arg == null ? 0 : outpoint_arg.ptr & ~1, output_arg.ptr, channel_keys_id_arg, channel_value_satoshis_arg); + if (ret < 1024) { return null; } StaticPaymentOutputDescriptor ret_hu_conv = new StaticPaymentOutputDescriptor(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(outpoint_arg); @@ -94,6 +96,7 @@ public class StaticPaymentOutputDescriptor extends CommonBase { */ public StaticPaymentOutputDescriptor clone() { long ret = bindings.StaticPaymentOutputDescriptor_clone(this.ptr); + if (ret < 1024) { return null; } StaticPaymentOutputDescriptor ret_hu_conv = new StaticPaymentOutputDescriptor(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -112,6 +115,7 @@ public class StaticPaymentOutputDescriptor extends CommonBase { */ public static Result_StaticPaymentOutputDescriptorDecodeErrorZ read(byte[] ser) { long ret = bindings.StaticPaymentOutputDescriptor_read(ser); + if (ret < 1024) { return null; } Result_StaticPaymentOutputDescriptorDecodeErrorZ ret_hu_conv = Result_StaticPaymentOutputDescriptorDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java b/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java index 87d691ce..63a33660 100644 --- a/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java @@ -36,6 +36,7 @@ public class TrustedCommitmentTransaction extends CommonBase { */ public BuiltCommitmentTransaction built_transaction() { long ret = bindings.TrustedCommitmentTransaction_built_transaction(this.ptr); + if (ret < 1024) { return null; } BuiltCommitmentTransaction ret_hu_conv = new BuiltCommitmentTransaction(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -46,6 +47,7 @@ public class TrustedCommitmentTransaction extends CommonBase { */ public TxCreationKeys keys() { long ret = bindings.TrustedCommitmentTransaction_keys(this.ptr); + if (ret < 1024) { return null; } TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -59,6 +61,7 @@ public class TrustedCommitmentTransaction extends CommonBase { */ public Result_CVec_SignatureZNoneZ get_htlc_sigs(byte[] htlc_base_key, DirectedChannelTransactionParameters channel_parameters) { long ret = bindings.TrustedCommitmentTransaction_get_htlc_sigs(this.ptr, htlc_base_key, channel_parameters == null ? 0 : channel_parameters.ptr & ~1); + if (ret < 1024) { return null; } Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret); this.ptrs_to.add(channel_parameters); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/TxCreationKeys.java b/src/main/java/org/ldk/structs/TxCreationKeys.java index 50545faa..64b23caf 100644 --- a/src/main/java/org/ldk/structs/TxCreationKeys.java +++ b/src/main/java/org/ldk/structs/TxCreationKeys.java @@ -112,6 +112,7 @@ public class TxCreationKeys extends CommonBase { */ 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(per_commitment_point_arg, revocation_key_arg, broadcaster_htlc_key_arg, countersignatory_htlc_key_arg, broadcaster_delayed_payment_key_arg); + if (ret < 1024) { return null; } TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -122,6 +123,7 @@ public class TxCreationKeys extends CommonBase { */ public TxCreationKeys clone() { long ret = bindings.TxCreationKeys_clone(this.ptr); + if (ret < 1024) { return null; } TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -140,6 +142,7 @@ public class TxCreationKeys extends CommonBase { */ public static Result_TxCreationKeysDecodeErrorZ read(byte[] ser) { long ret = bindings.TxCreationKeys_read(ser); + if (ret < 1024) { return null; } Result_TxCreationKeysDecodeErrorZ ret_hu_conv = Result_TxCreationKeysDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -150,6 +153,7 @@ public class TxCreationKeys extends CommonBase { */ public static Result_TxCreationKeysErrorZ 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(per_commitment_point, broadcaster_delayed_payment_base, broadcaster_htlc_base, countersignatory_revocation_base, countersignatory_htlc_base); + if (ret < 1024) { return null; } Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -160,6 +164,7 @@ public class TxCreationKeys extends CommonBase { */ public static Result_TxCreationKeysErrorZ from_channel_static_keys(byte[] per_commitment_point, ChannelPublicKeys broadcaster_keys, ChannelPublicKeys countersignatory_keys) { long ret = bindings.TxCreationKeys_from_channel_static_keys(per_commitment_point, broadcaster_keys == null ? 0 : broadcaster_keys.ptr & ~1, countersignatory_keys == null ? 0 : countersignatory_keys.ptr & ~1); + if (ret < 1024) { return null; } Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(broadcaster_keys); ret_hu_conv.ptrs_to.add(countersignatory_keys); diff --git a/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java b/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java index daeed9d6..18195de7 100644 --- a/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java +++ b/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java @@ -23,6 +23,7 @@ public class UnsignedChannelAnnouncement extends CommonBase { */ public ChannelFeatures get_features() { long ret = bindings.UnsignedChannelAnnouncement_get_features(this.ptr); + if (ret < 1024) { return null; } ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -131,6 +132,7 @@ public class UnsignedChannelAnnouncement extends CommonBase { */ public UnsignedChannelAnnouncement clone() { long ret = bindings.UnsignedChannelAnnouncement_clone(this.ptr); + if (ret < 1024) { return null; } UnsignedChannelAnnouncement ret_hu_conv = new UnsignedChannelAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -149,6 +151,7 @@ public class UnsignedChannelAnnouncement extends CommonBase { */ public static Result_UnsignedChannelAnnouncementDecodeErrorZ read(byte[] ser) { long ret = bindings.UnsignedChannelAnnouncement_read(ser); + if (ret < 1024) { return null; } Result_UnsignedChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java b/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java index 75856587..dfa381e6 100644 --- a/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java +++ b/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java @@ -157,6 +157,7 @@ public class UnsignedChannelUpdate extends CommonBase { */ public UnsignedChannelUpdate clone() { long ret = bindings.UnsignedChannelUpdate_clone(this.ptr); + if (ret < 1024) { return null; } UnsignedChannelUpdate ret_hu_conv = new UnsignedChannelUpdate(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -175,6 +176,7 @@ public class UnsignedChannelUpdate extends CommonBase { */ public static Result_UnsignedChannelUpdateDecodeErrorZ read(byte[] ser) { long ret = bindings.UnsignedChannelUpdate_read(ser); + if (ret < 1024) { return null; } Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java b/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java index 3bacc584..8e06dea0 100644 --- a/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java +++ b/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java @@ -23,6 +23,7 @@ public class UnsignedNodeAnnouncement extends CommonBase { */ public NodeFeatures get_features() { long ret = bindings.UnsignedNodeAnnouncement_get_features(this.ptr); + if (ret < 1024) { return null; } NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -113,6 +114,7 @@ public class UnsignedNodeAnnouncement extends CommonBase { */ public UnsignedNodeAnnouncement clone() { long ret = bindings.UnsignedNodeAnnouncement_clone(this.ptr); + if (ret < 1024) { return null; } UnsignedNodeAnnouncement ret_hu_conv = new UnsignedNodeAnnouncement(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -131,6 +133,7 @@ public class UnsignedNodeAnnouncement extends CommonBase { */ public static Result_UnsignedNodeAnnouncementDecodeErrorZ read(byte[] ser) { long ret = bindings.UnsignedNodeAnnouncement_read(ser); + if (ret < 1024) { return null; } Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UpdateAddHTLC.java b/src/main/java/org/ldk/structs/UpdateAddHTLC.java index bbb40bf8..e9e55212 100644 --- a/src/main/java/org/ldk/structs/UpdateAddHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateAddHTLC.java @@ -98,6 +98,7 @@ public class UpdateAddHTLC extends CommonBase { */ public UpdateAddHTLC clone() { long ret = bindings.UpdateAddHTLC_clone(this.ptr); + if (ret < 1024) { return null; } UpdateAddHTLC ret_hu_conv = new UpdateAddHTLC(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -116,6 +117,7 @@ public class UpdateAddHTLC extends CommonBase { */ public static Result_UpdateAddHTLCDecodeErrorZ read(byte[] ser) { long ret = bindings.UpdateAddHTLC_read(ser); + if (ret < 1024) { return null; } Result_UpdateAddHTLCDecodeErrorZ ret_hu_conv = Result_UpdateAddHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UpdateFailHTLC.java b/src/main/java/org/ldk/structs/UpdateFailHTLC.java index ab5ac687..45eda242 100644 --- a/src/main/java/org/ldk/structs/UpdateFailHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFailHTLC.java @@ -53,6 +53,7 @@ public class UpdateFailHTLC extends CommonBase { */ public UpdateFailHTLC clone() { long ret = bindings.UpdateFailHTLC_clone(this.ptr); + if (ret < 1024) { return null; } UpdateFailHTLC ret_hu_conv = new UpdateFailHTLC(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -71,6 +72,7 @@ public class UpdateFailHTLC extends CommonBase { */ public static Result_UpdateFailHTLCDecodeErrorZ read(byte[] ser) { long ret = bindings.UpdateFailHTLC_read(ser); + if (ret < 1024) { return null; } Result_UpdateFailHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java b/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java index 9a6f87bd..1cbca933 100644 --- a/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java @@ -68,6 +68,7 @@ public class UpdateFailMalformedHTLC extends CommonBase { */ public UpdateFailMalformedHTLC clone() { long ret = bindings.UpdateFailMalformedHTLC_clone(this.ptr); + if (ret < 1024) { return null; } UpdateFailMalformedHTLC ret_hu_conv = new UpdateFailMalformedHTLC(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -86,6 +87,7 @@ public class UpdateFailMalformedHTLC extends CommonBase { */ public static Result_UpdateFailMalformedHTLCDecodeErrorZ read(byte[] ser) { long ret = bindings.UpdateFailMalformedHTLC_read(ser); + if (ret < 1024) { return null; } Result_UpdateFailMalformedHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailMalformedHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UpdateFee.java b/src/main/java/org/ldk/structs/UpdateFee.java index 38fceb24..54637409 100644 --- a/src/main/java/org/ldk/structs/UpdateFee.java +++ b/src/main/java/org/ldk/structs/UpdateFee.java @@ -53,6 +53,7 @@ public class UpdateFee extends CommonBase { */ public static UpdateFee of(byte[] channel_id_arg, int feerate_per_kw_arg) { long ret = bindings.UpdateFee_new(channel_id_arg, feerate_per_kw_arg); + if (ret < 1024) { return null; } UpdateFee ret_hu_conv = new UpdateFee(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -63,6 +64,7 @@ public class UpdateFee extends CommonBase { */ public UpdateFee clone() { long ret = bindings.UpdateFee_clone(this.ptr); + if (ret < 1024) { return null; } UpdateFee ret_hu_conv = new UpdateFee(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +83,7 @@ public class UpdateFee extends CommonBase { */ public static Result_UpdateFeeDecodeErrorZ read(byte[] ser) { long ret = bindings.UpdateFee_read(ser); + if (ret < 1024) { return null; } Result_UpdateFeeDecodeErrorZ ret_hu_conv = Result_UpdateFeeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java b/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java index 5c74f8bc..4ac2cad0 100644 --- a/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java @@ -68,6 +68,7 @@ public class UpdateFulfillHTLC extends CommonBase { */ public static UpdateFulfillHTLC of(byte[] channel_id_arg, long htlc_id_arg, byte[] payment_preimage_arg) { long ret = bindings.UpdateFulfillHTLC_new(channel_id_arg, htlc_id_arg, payment_preimage_arg); + if (ret < 1024) { return null; } UpdateFulfillHTLC ret_hu_conv = new UpdateFulfillHTLC(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; @@ -78,6 +79,7 @@ public class UpdateFulfillHTLC extends CommonBase { */ public UpdateFulfillHTLC clone() { long ret = bindings.UpdateFulfillHTLC_clone(this.ptr); + if (ret < 1024) { return null; } UpdateFulfillHTLC ret_hu_conv = new UpdateFulfillHTLC(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -96,6 +98,7 @@ public class UpdateFulfillHTLC extends CommonBase { */ public static Result_UpdateFulfillHTLCDecodeErrorZ read(byte[] ser) { long ret = bindings.UpdateFulfillHTLC_read(ser); + if (ret < 1024) { return null; } Result_UpdateFulfillHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFulfillHTLCDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } diff --git a/src/main/java/org/ldk/structs/UserConfig.java b/src/main/java/org/ldk/structs/UserConfig.java index 60234317..489983dd 100644 --- a/src/main/java/org/ldk/structs/UserConfig.java +++ b/src/main/java/org/ldk/structs/UserConfig.java @@ -26,6 +26,7 @@ public class UserConfig extends CommonBase { */ public ChannelHandshakeConfig get_own_channel_config() { long ret = bindings.UserConfig_get_own_channel_config(this.ptr); + if (ret < 1024) { return null; } ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -44,6 +45,7 @@ public class UserConfig extends CommonBase { */ public ChannelHandshakeLimits get_peer_channel_config_limits() { long ret = bindings.UserConfig_get_peer_channel_config_limits(this.ptr); + if (ret < 1024) { return null; } ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -62,6 +64,7 @@ public class UserConfig extends CommonBase { */ public ChannelConfig get_channel_options() { long ret = bindings.UserConfig_get_channel_options(this.ptr); + if (ret < 1024) { return null; } ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -125,6 +128,7 @@ public class UserConfig extends CommonBase { */ public static UserConfig of(ChannelHandshakeConfig own_channel_config_arg, ChannelHandshakeLimits peer_channel_config_limits_arg, ChannelConfig channel_options_arg, boolean accept_forwards_to_priv_channels_arg) { long ret = bindings.UserConfig_new(own_channel_config_arg == null ? 0 : own_channel_config_arg.ptr & ~1, peer_channel_config_limits_arg == null ? 0 : peer_channel_config_limits_arg.ptr & ~1, channel_options_arg == null ? 0 : channel_options_arg.ptr & ~1, accept_forwards_to_priv_channels_arg); + if (ret < 1024) { return null; } UserConfig ret_hu_conv = new UserConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(own_channel_config_arg); @@ -138,6 +142,7 @@ public class UserConfig extends CommonBase { */ public UserConfig clone() { long ret = bindings.UserConfig_clone(this.ptr); + if (ret < 1024) { return null; } UserConfig ret_hu_conv = new UserConfig(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -148,6 +153,7 @@ public class UserConfig extends CommonBase { */ public static UserConfig with_default() { long ret = bindings.UserConfig_default(); + if (ret < 1024) { return null; } UserConfig ret_hu_conv = new UserConfig(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; diff --git a/src/main/java/org/ldk/structs/UtilMethods.java b/src/main/java/org/ldk/structs/UtilMethods.java index f2a7c07b..a288deb3 100644 --- a/src/main/java/org/ldk/structs/UtilMethods.java +++ b/src/main/java/org/ldk/structs/UtilMethods.java @@ -11,6 +11,7 @@ public class UtilMethods { */ public static Result_StringErrorZ sign(byte[] msg, byte[] sk) { long ret = bindings.sign(msg, sk); + if (ret < 1024) { return null; } Result_StringErrorZ ret_hu_conv = Result_StringErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -20,6 +21,7 @@ public class UtilMethods { */ public static Result_PublicKeyErrorZ recover_pk(byte[] msg, String sig) { long ret = bindings.recover_pk(msg, sig); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -38,6 +40,7 @@ public class UtilMethods { */ public static Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ BlockHashChannelMonitorZ_read(byte[] ser, KeysInterface arg) { long ret = bindings.C2Tuple_BlockHashChannelMonitorZ_read(ser, arg == null ? 0 : arg.ptr); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(arg); return ret_hu_conv; @@ -48,6 +51,7 @@ public class UtilMethods { */ public static Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ BlockHashChannelManagerZ_read(byte[] ser, KeysInterface arg_keys_manager, FeeEstimator arg_fee_estimator, Watch arg_chain_monitor, BroadcasterInterface arg_tx_broadcaster, Logger arg_logger, UserConfig arg_default_config, ChannelMonitor[] arg_channel_monitors) { long ret = bindings.C2Tuple_BlockHashChannelManagerZ_read(ser, bindings.ChannelManagerReadArgs_new(arg_keys_manager == null ? 0 : arg_keys_manager.ptr, arg_fee_estimator == null ? 0 : arg_fee_estimator.ptr, arg_chain_monitor == null ? 0 : arg_chain_monitor.ptr, arg_tx_broadcaster == null ? 0 : arg_tx_broadcaster.ptr, arg_logger == null ? 0 : arg_logger.ptr, arg_default_config == null ? 0 : arg_default_config.ptr & ~1, Arrays.stream(arg_channel_monitors).mapToLong(arg_channel_monitors_conv_16 -> arg_channel_monitors_conv_16 == null ? 0 : arg_channel_monitors_conv_16.ptr & ~1).toArray())); + if (ret < 1024) { return null; } Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(arg_keys_manager); ret_hu_conv.ptrs_to.add(arg_fee_estimator); @@ -76,6 +80,7 @@ public class UtilMethods { */ public static Result_SecretKeyErrorZ derive_private_key(byte[] per_commitment_point, byte[] base_secret) { long ret = bindings.derive_private_key(per_commitment_point, base_secret); + if (ret < 1024) { return null; } Result_SecretKeyErrorZ ret_hu_conv = Result_SecretKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -90,6 +95,7 @@ public class UtilMethods { */ public static Result_PublicKeyErrorZ derive_public_key(byte[] per_commitment_point, byte[] base_point) { long ret = bindings.derive_public_key(per_commitment_point, base_point); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -107,6 +113,7 @@ public class UtilMethods { */ public static Result_SecretKeyErrorZ derive_private_revocation_key(byte[] per_commitment_secret, byte[] countersignatory_revocation_base_secret) { long ret = bindings.derive_private_revocation_key(per_commitment_secret, countersignatory_revocation_base_secret); + if (ret < 1024) { return null; } Result_SecretKeyErrorZ ret_hu_conv = Result_SecretKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -126,6 +133,7 @@ public class UtilMethods { */ public static Result_PublicKeyErrorZ derive_public_revocation_key(byte[] per_commitment_point, byte[] countersignatory_revocation_base_point) { long ret = bindings.derive_public_revocation_key(per_commitment_point, countersignatory_revocation_base_point); + if (ret < 1024) { return null; } Result_PublicKeyErrorZ ret_hu_conv = Result_PublicKeyErrorZ.constr_from_ptr(ret); return ret_hu_conv; } @@ -188,6 +196,24 @@ public class UtilMethods { return ret; } + /** + * Gets a keysend route from us (payer) to the given target node (payee). This is needed because + * keysend payments do not have an invoice from which to pull the payee's supported features, which + * makes it tricky to otherwise supply the `payee_features` parameter of `get_route`. + * + * Note that first_hops (or a relevant inner pointer) may be NULL or all-0s to represent None + */ + public static Result_RouteLightningErrorZ get_keysend_route(byte[] our_node_id, NetworkGraph network, byte[] payee, @Nullable ChannelDetails[] first_hops, RouteHint[] last_hops, long final_value_msat, int final_cltv, Logger logger) { + long ret = bindings.get_keysend_route(our_node_id, network == null ? 0 : network.ptr & ~1, payee, Arrays.stream(first_hops).mapToLong(first_hops_conv_16 -> first_hops_conv_16 == null ? 0 : first_hops_conv_16.ptr & ~1).toArray(), Arrays.stream(last_hops).mapToLong(last_hops_conv_11 -> last_hops_conv_11 == null ? 0 : last_hops_conv_11.ptr & ~1).toArray(), final_value_msat, final_cltv, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } + Result_RouteLightningErrorZ ret_hu_conv = Result_RouteLightningErrorZ.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(network); + /* TODO 2 ChannelDetails */; + /* TODO 2 RouteHint */; + ret_hu_conv.ptrs_to.add(logger); + return ret_hu_conv; + } + /** * Gets a route from us (payer) to the given target node (payee). * @@ -208,9 +234,13 @@ public class UtilMethods { * The fees on channels from us to next-hops are ignored (as they are assumed to all be * equal), however the enabled/disabled bit on such channels as well as the * htlc_minimum_msat/htlc_maximum_msat *are* checked as they may change based on the receiving node. + * + * Note that payee_features (or a relevant inner pointer) may be NULL or all-0s to represent None + * Note that first_hops (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public static Result_RouteLightningErrorZ get_route(byte[] our_node_id, NetworkGraph network, byte[] payee, InvoiceFeatures payee_features, ChannelDetails[] first_hops, RouteHint[] last_hops, long final_value_msat, int final_cltv, Logger logger) { + public static Result_RouteLightningErrorZ get_route(byte[] our_node_id, NetworkGraph network, byte[] payee, @Nullable InvoiceFeatures payee_features, ChannelDetails[] first_hops, RouteHint[] last_hops, long final_value_msat, int final_cltv, Logger logger) { long ret = bindings.get_route(our_node_id, network == null ? 0 : network.ptr & ~1, payee, payee_features == null ? 0 : payee_features.ptr & ~1, Arrays.stream(first_hops).mapToLong(first_hops_conv_16 -> first_hops_conv_16 == null ? 0 : first_hops_conv_16.ptr & ~1).toArray(), Arrays.stream(last_hops).mapToLong(last_hops_conv_11 -> last_hops_conv_11 == null ? 0 : last_hops_conv_11.ptr & ~1).toArray(), final_value_msat, final_cltv, logger == null ? 0 : logger.ptr); + if (ret < 1024) { return null; } Result_RouteLightningErrorZ ret_hu_conv = Result_RouteLightningErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(network); ret_hu_conv.ptrs_to.add(payee_features); @@ -226,6 +256,7 @@ public class UtilMethods { */ public static Result_NoneErrorZ FilesystemPersister_persist_manager(String data_dir, ChannelManager manager) { long ret = bindings.FilesystemPersister_persist_manager(data_dir, manager == null ? 0 : manager.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneErrorZ ret_hu_conv = Result_NoneErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(manager); return ret_hu_conv; @@ -240,6 +271,7 @@ public class UtilMethods { */ public static Result_InvoiceSignOrCreationErrorZ create_invoice_from_channelmanager(ChannelManager channelmanager, KeysInterface keys_manager, Currency network, Option_u64Z amt_msat, String description) { long ret = bindings.create_invoice_from_channelmanager(channelmanager == null ? 0 : channelmanager.ptr & ~1, keys_manager == null ? 0 : keys_manager.ptr, network, amt_msat.ptr, description); + if (ret < 1024) { return null; } Result_InvoiceSignOrCreationErrorZ ret_hu_conv = Result_InvoiceSignOrCreationErrorZ.constr_from_ptr(ret); ret_hu_conv.ptrs_to.add(channelmanager); ret_hu_conv.ptrs_to.add(keys_manager); diff --git a/src/main/java/org/ldk/structs/Watch.java b/src/main/java/org/ldk/structs/Watch.java index d560838a..36c5ddb6 100644 --- a/src/main/java/org/ldk/structs/Watch.java +++ b/src/main/java/org/ldk/structs/Watch.java @@ -115,6 +115,7 @@ public class Watch extends CommonBase { */ public Result_NoneChannelMonitorUpdateErrZ watch_channel(OutPoint funding_txo, ChannelMonitor monitor) { long ret = bindings.Watch_watch_channel(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, monitor == null ? 0 : monitor.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); this.ptrs_to.add(funding_txo); this.ptrs_to.add(monitor); @@ -132,6 +133,7 @@ public class Watch extends CommonBase { */ public Result_NoneChannelMonitorUpdateErrZ update_channel(OutPoint funding_txo, ChannelMonitorUpdate update) { long ret = bindings.Watch_update_channel(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, update == null ? 0 : update.ptr & ~1); + if (ret < 1024) { return null; } Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); this.ptrs_to.add(funding_txo); this.ptrs_to.add(update); diff --git a/src/main/java/org/ldk/structs/WatchedOutput.java b/src/main/java/org/ldk/structs/WatchedOutput.java index 55c7a418..a81dfe01 100644 --- a/src/main/java/org/ldk/structs/WatchedOutput.java +++ b/src/main/java/org/ldk/structs/WatchedOutput.java @@ -30,7 +30,10 @@ public class WatchedOutput extends CommonBase { /** * First block where the transaction output may have been spent. + * + * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None */ + @Nullable public byte[] get_block_hash() { byte[] ret = bindings.WatchedOutput_get_block_hash(this.ptr); return ret; @@ -38,8 +41,10 @@ public class WatchedOutput extends CommonBase { /** * First block where the transaction output may have been spent. + * + * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None */ - public void set_block_hash(byte[] val) { + public void set_block_hash(@Nullable byte[] val) { bindings.WatchedOutput_set_block_hash(this.ptr, val); } @@ -48,6 +53,7 @@ public class WatchedOutput extends CommonBase { */ public OutPoint get_outpoint() { long ret = bindings.WatchedOutput_get_outpoint(this.ptr); + if (ret < 1024) { return null; } OutPoint ret_hu_conv = new OutPoint(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; @@ -81,6 +87,7 @@ public class WatchedOutput extends CommonBase { */ public static WatchedOutput of(byte[] block_hash_arg, OutPoint outpoint_arg, byte[] script_pubkey_arg) { long ret = bindings.WatchedOutput_new(block_hash_arg, outpoint_arg == null ? 0 : outpoint_arg.ptr & ~1, script_pubkey_arg); + if (ret < 1024) { return null; } WatchedOutput ret_hu_conv = new WatchedOutput(null, ret); ret_hu_conv.ptrs_to.add(ret_hu_conv); ret_hu_conv.ptrs_to.add(outpoint_arg); @@ -92,6 +99,7 @@ public class WatchedOutput extends CommonBase { */ public WatchedOutput clone() { long ret = bindings.WatchedOutput_clone(this.ptr); + if (ret < 1024) { return null; } WatchedOutput ret_hu_conv = new WatchedOutput(null, ret); ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; diff --git a/src/main/jni/bindings.c b/src/main/jni/bindings.c index b71fa7be..7435d559 100644 --- a/src/main/jni/bindings.c +++ b/src/main/jni/bindings.c @@ -10,10 +10,136 @@ #include #define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) -#define MALLOC(a, _) malloc(a) -#define FREE(p) if ((uint64_t)(p) > 1024) { free(p); } -#define DO_ASSERT(a) (void)(a) -#define CHECK(a) +#include +// Always run a, then assert it is true: +#define DO_ASSERT(a) do { bool _assert_val = (a); assert(_assert_val); } while(0) +// Assert a is true or do nothing +#define CHECK(a) DO_ASSERT(a) + +void __attribute__((constructor)) debug_log_version() { + if (check_get_ldk_version() == NULL) + DEBUG_PRINT("LDK version did not match the header we built against\n"); + if (check_get_ldk_bindings_version() == NULL) + DEBUG_PRINT("LDK C Bindings version did not match the header we built against\n"); + DEBUG_PRINT("Loaded LDK-Java Bindings with LDK %s and LDK-C-Bindings %s\n", check_get_ldk_version(), check_get_ldk_bindings_version()); +} + +// Running a leak check across all the allocations and frees of the JDK is a mess, +// so instead we implement our own naive leak checker here, relying on the -wrap +// linker option to wrap malloc/calloc/realloc/free, tracking everyhing allocated +// and free'd in Rust or C across the generated bindings shared library. +#include +#include + +#include +static mtx_t allocation_mtx; + +void __attribute__((constructor)) init_mtx() { + DO_ASSERT(mtx_init(&allocation_mtx, mtx_plain) == thrd_success); +} + +#define BT_MAX 128 +typedef struct allocation { + struct allocation* next; + void* ptr; + const char* struct_name; + void* bt[BT_MAX]; + int bt_len; + unsigned long alloc_len; +} allocation; +static allocation* allocation_ll = NULL; + +void* __real_malloc(size_t len); +void* __real_calloc(size_t nmemb, size_t len); +static void new_allocation(void* res, const char* struct_name, size_t len) { + allocation* new_alloc = __real_malloc(sizeof(allocation)); + new_alloc->ptr = res; + new_alloc->struct_name = struct_name; + new_alloc->bt_len = backtrace(new_alloc->bt, BT_MAX); + new_alloc->alloc_len = len; + DO_ASSERT(mtx_lock(&allocation_mtx) == thrd_success); + new_alloc->next = allocation_ll; + allocation_ll = new_alloc; + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); +} +static void* MALLOC(size_t len, const char* struct_name) { + void* res = __real_malloc(len); + new_allocation(res, struct_name, len); + return res; +} +void __real_free(void* ptr); +static void alloc_freed(void* ptr) { + allocation* p = NULL; + DO_ASSERT(mtx_lock(&allocation_mtx) == thrd_success); + allocation* it = allocation_ll; + while (it->ptr != ptr) { + p = it; it = it->next; + if (it == NULL) { + DEBUG_PRINT("Tried to free unknown pointer %p at:\n", ptr); + void* bt[BT_MAX]; + int bt_len = backtrace(bt, BT_MAX); + backtrace_symbols_fd(bt, bt_len, STDERR_FILENO); + DEBUG_PRINT("\n\n"); + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); + return; // addrsan should catch malloc-unknown and print more info than we have + } + } + if (p) { p->next = it->next; } else { allocation_ll = it->next; } + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); + DO_ASSERT(it->ptr == ptr); + __real_free(it); +} +static void FREE(void* ptr) { + if ((uint64_t)ptr < 1024) return; // Rust loves to create pointers to the NULL page for dummys + alloc_freed(ptr); + __real_free(ptr); +} + +void* __wrap_malloc(size_t len) { + void* res = __real_malloc(len); + new_allocation(res, "malloc call", len); + return res; +} +void* __wrap_calloc(size_t nmemb, size_t len) { + void* res = __real_calloc(nmemb, len); + new_allocation(res, "calloc call", len); + return res; +} +void __wrap_free(void* ptr) { + if (ptr == NULL) return; + alloc_freed(ptr); + __real_free(ptr); +} + +void* __real_realloc(void* ptr, size_t newlen); +void* __wrap_realloc(void* ptr, size_t len) { + if (ptr != NULL) alloc_freed(ptr); + void* res = __real_realloc(ptr, len); + new_allocation(res, "realloc call", len); + return res; +} +void __wrap_reallocarray(void* ptr, size_t new_sz) { + // Rust doesn't seem to use reallocarray currently + DO_ASSERT(false); +} + +void __attribute__((destructor)) check_leaks() { + unsigned long alloc_count = 0; + unsigned long alloc_size = 0; + DEBUG_PRINT("The following LDK-allocated blocks still remain.\n"); + DEBUG_PRINT("Note that this is only accurate if System.gc(); System.runFinalization()\n"); + DEBUG_PRINT("was called prior to exit after all LDK objects were out of scope.\n"); + for (allocation* a = allocation_ll; a != NULL; a = a->next) { + DEBUG_PRINT("%s %p (%lu bytes) remains:\n", a->struct_name, a->ptr, a->alloc_len); + backtrace_symbols_fd(a->bt, a->bt_len, STDERR_FILENO); + DEBUG_PRINT("\n\n"); + alloc_count++; + alloc_size += a->alloc_len; + } + DEBUG_PRINT("%lu allocations remained for %lu bytes.\n", alloc_count, alloc_size); + DEBUG_PRINT("Note that this is only accurate if System.gc(); System.runFinalization()\n"); + DEBUG_PRINT("was called prior to exit after all LDK objects were out of scope.\n"); +} static jmethodID ordinal_meth = NULL; static jmethodID slicedef_meth = NULL; @@ -133,7 +259,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) { } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) { - return str_ref_to_java(env, "v0.0.99.1", strlen("v0.0.99.1")); + return str_ref_to_java(env, "v0.0.99.1-7-gf7a4eb8-dirty", strlen("v0.0.99.1-7-gf7a4eb8-dirty")); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) { return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version())); @@ -2471,11 +2597,6 @@ void ready_channel_LDKBaseSign_jcall(void* this_arg, const LDKChannelTransaction DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKBaseSign_JCalls_clone(const void* this_arg) { - LDKBaseSign_JCalls *j_calls = (LDKBaseSign_JCalls*) this_arg; - atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; -} static inline LDKBaseSign LDKBaseSign_init (JNIEnv *env, jclass clz, jobject o, int64_t pubkeys) { jclass c = (*env)->GetObjectClass(env, o); CHECK(c != NULL); @@ -2725,11 +2846,10 @@ LDKCVec_u8Z write_LDKSign_jcall(const void* this_arg) { } return ret_ref; } -static void* LDKSign_JCalls_clone(const void* this_arg) { - LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; +static void LDKSign_JCalls_cloned(LDKSign* new_obj) { + LDKSign_JCalls *j_calls = (LDKSign_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->BaseSign->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKSign LDKSign_init (JNIEnv *env, jclass clz, jobject o, jobject BaseSign, int64_t pubkeys) { jclass c = (*env)->GetObjectClass(env, o); @@ -2749,7 +2869,7 @@ static inline LDKSign LDKSign_init (JNIEnv *env, jclass clz, jobject o, jobject LDKSign ret = { .this_arg = (void*) calls, .write = write_LDKSign_jcall, - .clone = LDKSign_JCalls_clone, + .cloned = LDKSign_JCalls_cloned, .free = LDKSign_JCalls_free, .BaseSign = LDKBaseSign_init(env, clz, BaseSign, pubkeys), }; @@ -2761,6 +2881,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSign_1new(JNIEnv *env, j *res_ptr = LDKSign_init(env, clz, o, BaseSign, pubkeys); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSign_1get_1BaseSign(JNIEnv *env, jclass clz, int64_t arg) { + LDKSign *inp = (LDKSign *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->BaseSign; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1write(JNIEnv *env, jclass clz, int64_t this_arg) { LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->write)(this_arg_conv->this_arg); @@ -3211,6 +3337,22 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCResult_1NonePaymentSend uint64_t err_ref = ((uint64_t)&(*val->contents.err)) | 1; return err_ref; } +JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1result_1ok(JNIEnv *env, jclass clz, int64_t arg) { + return ((LDKCResult_PaymentHashPaymentSendFailureZ*)arg)->result_ok; +} +JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1ok(JNIEnv *env, jclass clz, int64_t arg) { + LDKCResult_PaymentHashPaymentSendFailureZ *val = (LDKCResult_PaymentHashPaymentSendFailureZ*)(arg & ~1); + CHECK(val->result_ok); + int8_tArray res_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, res_arr, 0, 32, (*val->contents.result).data); + return res_arr; +} +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1err(JNIEnv *env, jclass clz, int64_t arg) { + LDKCResult_PaymentHashPaymentSendFailureZ *val = (LDKCResult_PaymentHashPaymentSendFailureZ*)(arg & ~1); + CHECK(!val->result_ok); + uint64_t err_ref = ((uint64_t)&(*val->contents.err)) | 1; + return err_ref; +} static jclass LDKNetAddress_IPv4_class = NULL; static jmethodID LDKNetAddress_IPv4_meth = NULL; static jclass LDKNetAddress_IPv6_class = NULL; @@ -3493,10 +3635,9 @@ LDKCVec_MonitorEventZ release_pending_monitor_events_LDKWatch_jcall(const void* } return ret_constr; } -static void* LDKWatch_JCalls_clone(const void* this_arg) { - LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; +static void LDKWatch_JCalls_cloned(LDKWatch* new_obj) { + LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKWatch LDKWatch_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -3619,10 +3760,9 @@ void broadcast_transaction_LDKBroadcasterInterface_jcall(const void* this_arg, L DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKBroadcasterInterface_JCalls_clone(const void* this_arg) { - LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) this_arg; +static void LDKBroadcasterInterface_JCalls_cloned(LDKBroadcasterInterface* new_obj) { + LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKBroadcasterInterface LDKBroadcasterInterface_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -3858,10 +3998,9 @@ LDKCResult_RecoverableSignatureNoneZ sign_invoice_LDKKeysInterface_jcall(const v } return ret_conv; } -static void* LDKKeysInterface_JCalls_clone(const void* this_arg) { - LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; +static void LDKKeysInterface_JCalls_cloned(LDKKeysInterface* new_obj) { + LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKKeysInterface LDKKeysInterface_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4007,10 +4146,9 @@ uint32_t get_est_sat_per_1000_weight_LDKFeeEstimator_jcall(const void* this_arg, } return ret; } -static void* LDKFeeEstimator_JCalls_clone(const void* this_arg) { - LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) this_arg; +static void LDKFeeEstimator_JCalls_cloned(LDKFeeEstimator* new_obj) { + LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKFeeEstimator LDKFeeEstimator_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4086,10 +4224,9 @@ void log_LDKLogger_jcall(const void* this_arg, const char* record) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKLogger_JCalls_clone(const void* this_arg) { - LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) this_arg; +static void LDKLogger_JCalls_cloned(LDKLogger* new_obj) { + LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKLogger LDKLogger_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4653,6 +4790,40 @@ static inline LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ CVec_C2Tuple_TxidCV } return ret; } +static jclass LDKPaymentPurpose_InvoicePayment_class = NULL; +static jmethodID LDKPaymentPurpose_InvoicePayment_meth = NULL; +static jclass LDKPaymentPurpose_SpontaneousPayment_class = NULL; +static jmethodID LDKPaymentPurpose_SpontaneousPayment_meth = NULL; +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_00024LDKPaymentPurpose_init (JNIEnv *env, jclass clz) { + LDKPaymentPurpose_InvoicePayment_class = + (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKPaymentPurpose$InvoicePayment;")); + CHECK(LDKPaymentPurpose_InvoicePayment_class != NULL); + LDKPaymentPurpose_InvoicePayment_meth = (*env)->GetMethodID(env, LDKPaymentPurpose_InvoicePayment_class, "", "([B[BJ)V"); + CHECK(LDKPaymentPurpose_InvoicePayment_meth != NULL); + LDKPaymentPurpose_SpontaneousPayment_class = + (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKPaymentPurpose$SpontaneousPayment;")); + CHECK(LDKPaymentPurpose_SpontaneousPayment_class != NULL); + LDKPaymentPurpose_SpontaneousPayment_meth = (*env)->GetMethodID(env, LDKPaymentPurpose_SpontaneousPayment_class, "", "([B)V"); + CHECK(LDKPaymentPurpose_SpontaneousPayment_meth != NULL); +} +JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKPaymentPurpose_1ref_1from_1ptr(JNIEnv *env, jclass clz, int64_t ptr) { + LDKPaymentPurpose *obj = (LDKPaymentPurpose*)(ptr & ~1); + switch(obj->tag) { + case LDKPaymentPurpose_InvoicePayment: { + int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, payment_preimage_arr, 0, 32, obj->invoice_payment.payment_preimage.data); + int8_tArray payment_secret_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, payment_secret_arr, 0, 32, obj->invoice_payment.payment_secret.data); + return (*env)->NewObject(env, LDKPaymentPurpose_InvoicePayment_class, LDKPaymentPurpose_InvoicePayment_meth, payment_preimage_arr, payment_secret_arr, obj->invoice_payment.user_payment_id); + } + case LDKPaymentPurpose_SpontaneousPayment: { + int8_tArray spontaneous_payment_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, spontaneous_payment_arr, 0, 32, obj->spontaneous_payment.data); + return (*env)->NewObject(env, LDKPaymentPurpose_SpontaneousPayment_class, LDKPaymentPurpose_SpontaneousPayment_meth, spontaneous_payment_arr); + } + default: abort(); + } +} static jclass LDKEvent_FundingGenerationReady_class = NULL; static jmethodID LDKEvent_FundingGenerationReady_meth = NULL; static jclass LDKEvent_PaymentReceived_class = NULL; @@ -4674,7 +4845,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_00024LDKEvent_init (JNIEnv *en LDKEvent_PaymentReceived_class = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKEvent$PaymentReceived;")); CHECK(LDKEvent_PaymentReceived_class != NULL); - LDKEvent_PaymentReceived_meth = (*env)->GetMethodID(env, LDKEvent_PaymentReceived_class, "", "([B[B[BJJ)V"); + LDKEvent_PaymentReceived_meth = (*env)->GetMethodID(env, LDKEvent_PaymentReceived_class, "", "([BJJ)V"); CHECK(LDKEvent_PaymentReceived_meth != NULL); LDKEvent_PaymentSent_class = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKEvent$PaymentSent;")); @@ -4711,11 +4882,8 @@ JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKEvent_1ref_1from_1ptr(JN case LDKEvent_PaymentReceived: { int8_tArray payment_hash_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, payment_hash_arr, 0, 32, obj->payment_received.payment_hash.data); - int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); - (*env)->SetByteArrayRegion(env, payment_preimage_arr, 0, 32, obj->payment_received.payment_preimage.data); - int8_tArray payment_secret_arr = (*env)->NewByteArray(env, 32); - (*env)->SetByteArrayRegion(env, payment_secret_arr, 0, 32, obj->payment_received.payment_secret.data); - return (*env)->NewObject(env, LDKEvent_PaymentReceived_class, LDKEvent_PaymentReceived_meth, payment_hash_arr, payment_preimage_arr, payment_secret_arr, obj->payment_received.amt, obj->payment_received.user_payment_id); + uint64_t purpose_ref = ((uint64_t)&obj->payment_received.purpose) | 1; + return (*env)->NewObject(env, LDKEvent_PaymentReceived_class, LDKEvent_PaymentReceived_meth, payment_hash_arr, obj->payment_received.amt, purpose_ref); } case LDKEvent_PaymentSent: { int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); @@ -6140,10 +6308,9 @@ LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_LDKMessageSendEventsP } return ret_constr; } -static void* LDKMessageSendEventsProvider_JCalls_clone(const void* this_arg) { - LDKMessageSendEventsProvider_JCalls *j_calls = (LDKMessageSendEventsProvider_JCalls*) this_arg; +static void LDKMessageSendEventsProvider_JCalls_cloned(LDKMessageSendEventsProvider* new_obj) { + LDKMessageSendEventsProvider_JCalls *j_calls = (LDKMessageSendEventsProvider_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKMessageSendEventsProvider LDKMessageSendEventsProvider_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6229,10 +6396,9 @@ void handle_event_LDKEventHandler_jcall(const void* this_arg, LDKEvent event) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKEventHandler_JCalls_clone(const void* this_arg) { - LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) this_arg; +static void LDKEventHandler_JCalls_cloned(LDKEventHandler* new_obj) { + LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKEventHandler LDKEventHandler_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6307,10 +6473,9 @@ void process_pending_events_LDKEventsProvider_jcall(const void* this_arg, LDKEve DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKEventsProvider_JCalls_clone(const void* this_arg) { - LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) this_arg; +static void LDKEventsProvider_JCalls_cloned(LDKEventsProvider* new_obj) { + LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKEventsProvider LDKEventsProvider_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6339,7 +6504,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_EventsProvider_1process_1pendi LDKEventHandler handler_conv = *(LDKEventHandler*)(((uint64_t)handler) & ~1); if (handler_conv.free == LDKEventHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKEventHandler_JCalls_clone(handler_conv.this_arg); + LDKEventHandler_JCalls_cloned(&handler_conv); } (this_arg_conv->process_pending_events)(this_arg_conv->this_arg, handler_conv); } @@ -6392,10 +6557,9 @@ LDKCResult_TxOutAccessErrorZ get_utxo_LDKAccess_jcall(const void* this_arg, cons } return ret_conv; } -static void* LDKAccess_JCalls_clone(const void* this_arg) { - LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) this_arg; +static void LDKAccess_JCalls_cloned(LDKAccess* new_obj) { + LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKAccess LDKAccess_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6499,10 +6663,9 @@ void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* h DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKListen_JCalls_clone(const void* this_arg) { - LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; +static void LDKListen_JCalls_cloned(LDKListen* new_obj) { + LDKListen_JCalls *j_calls = (LDKListen_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKListen LDKListen_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6683,10 +6846,9 @@ LDKCVec_TxidZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { } return ret_constr; } -static void* LDKConfirm_JCalls_clone(const void* this_arg) { - LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; +static void LDKConfirm_JCalls_cloned(LDKConfirm* new_obj) { + LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKConfirm LDKConfirm_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6853,10 +7015,9 @@ LDKCOption_C2Tuple_usizeTransactionZZ register_output_LDKFilter_jcall(const void } return ret_conv; } -static void* LDKFilter_JCalls_clone(const void* this_arg) { - LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; +static void LDKFilter_JCalls_cloned(LDKFilter* new_obj) { + LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKFilter LDKFilter_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -7016,10 +7177,9 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_LDKPersist_jcal } return ret_conv; } -static void* LDKPersist_JCalls_clone(const void* this_arg) { - LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) this_arg; +static void LDKPersist_JCalls_cloned(LDKPersist* new_obj) { + LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKPersist LDKPersist_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -7734,11 +7894,10 @@ void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublic DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKChannelMessageHandler_JCalls_clone(const void* this_arg) { - LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; +static void LDKChannelMessageHandler_JCalls_cloned(LDKChannelMessageHandler* new_obj) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->MessageSendEventsProvider->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKChannelMessageHandler LDKChannelMessageHandler_init (JNIEnv *env, jclass clz, jobject o, jobject MessageSendEventsProvider) { jclass c = (*env)->GetObjectClass(env, o); @@ -7821,6 +7980,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1n *res_ptr = LDKChannelMessageHandler_init(env, clz, o, MessageSendEventsProvider); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1get_1MessageSendEventsProvider(JNIEnv *env, jclass clz, int64_t arg) { + LDKChannelMessageHandler *inp = (LDKChannelMessageHandler *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->MessageSendEventsProvider; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1open_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t their_features, int64_t msg) { LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; @@ -8429,11 +8594,10 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH } return ret_conv; } -static void* LDKRoutingMessageHandler_JCalls_clone(const void* this_arg) { - LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; +static void LDKRoutingMessageHandler_JCalls_cloned(LDKRoutingMessageHandler* new_obj) { + LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->MessageSendEventsProvider->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKRoutingMessageHandler LDKRoutingMessageHandler_init (JNIEnv *env, jclass clz, jobject o, jobject MessageSendEventsProvider) { jclass c = (*env)->GetObjectClass(env, o); @@ -8489,6 +8653,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1n *res_ptr = LDKRoutingMessageHandler_init(env, clz, o, MessageSendEventsProvider); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1get_1MessageSendEventsProvider(JNIEnv *env, jclass clz, int64_t arg) { + LDKRoutingMessageHandler *inp = (LDKRoutingMessageHandler *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->MessageSendEventsProvider; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1node_1announcement(JNIEnv *env, jclass clz, int64_t this_arg, int64_t msg) { LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKNodeAnnouncement msg_conv; @@ -8744,10 +8914,9 @@ uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { } return ret; } -static void* LDKSocketDescriptor_JCalls_clone(const void* this_arg) { - LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; +static void LDKSocketDescriptor_JCalls_cloned(LDKSocketDescriptor* new_obj) { + LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKSocketDescriptor LDKSocketDescriptor_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -8771,7 +8940,7 @@ static inline LDKSocketDescriptor LDKSocketDescriptor_init (JNIEnv *env, jclass .disconnect_socket = disconnect_socket_LDKSocketDescriptor_jcall, .eq = eq_LDKSocketDescriptor_jcall, .hash = hash_LDKSocketDescriptor_jcall, - .clone = LDKSocketDescriptor_JCalls_clone, + .cloned = LDKSocketDescriptor_JCalls_cloned, .free = LDKSocketDescriptor_JCalls_free, }; return ret; @@ -8856,10 +9025,9 @@ LDKCResult_NoneErrorZ persist_manager_LDKChannelManagerPersister_jcall(const voi } return ret_conv; } -static void* LDKChannelManagerPersister_JCalls_clone(const void* this_arg) { - LDKChannelManagerPersister_JCalls *j_calls = (LDKChannelManagerPersister_JCalls*) this_arg; +static void LDKChannelManagerPersister_JCalls_cloned(LDKChannelManagerPersister* new_obj) { + LDKChannelManagerPersister_JCalls *j_calls = (LDKChannelManagerPersister_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKChannelManagerPersister LDKChannelManagerPersister_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -8942,12 +9110,14 @@ JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKFallback_1ref_1from_1ptr JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings__1ldk_1get_1compiled_1version(JNIEnv *env, jclass clz) { LDKStr ret_str = _ldk_get_compiled_version(); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings__1ldk_1c_1bindings_1get_1compiled_1version(JNIEnv *env, jclass clz) { LDKStr ret_str = _ldk_c_bindings_get_compiled_version(); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -10189,7 +10359,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1SignDecodeErrorZ_1 LDKSign o_conv = *(LDKSign*)(((uint64_t)o) & ~1); if (o_conv.free == LDKSign_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSign_JCalls_clone(o_conv.this_arg); + LDKSign_JCalls_cloned(&o_conv); } LDKCResult_SignDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignDecodeErrorZ), "LDKCResult_SignDecodeErrorZ"); *ret_conv = CResult_SignDecodeErrorZ_ok(o_conv); @@ -10589,6 +10759,36 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1NonePaymentSendFai return (uint64_t)ret_conv; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1ok(JNIEnv *env, jclass clz, int8_tArray o) { + LDKThirtyTwoBytes o_ref; + CHECK((*env)->GetArrayLength(env, o) == 32); + (*env)->GetByteArrayRegion(env, o, 0, 32, o_ref.data); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_ok(o_ref); + return (uint64_t)ret_conv; +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1err(JNIEnv *env, jclass clz, int64_t e) { + LDKPaymentSendFailure e_conv = *(LDKPaymentSendFailure*)(((uint64_t)e) & ~1); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_err(e_conv); + return (uint64_t)ret_conv; +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1free(JNIEnv *env, jclass clz, int64_t _res) { + if ((_res & 1) != 0) return; + LDKCResult_PaymentHashPaymentSendFailureZ _res_conv = *(LDKCResult_PaymentHashPaymentSendFailureZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + CResult_PaymentHashPaymentSendFailureZ_free(_res_conv); +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1clone(JNIEnv *env, jclass clz, int64_t orig) { + LDKCResult_PaymentHashPaymentSendFailureZ* orig_conv = (LDKCResult_PaymentHashPaymentSendFailureZ*)(orig & ~1); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_clone(orig_conv); + return (uint64_t)ret_conv; +} + JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1NetAddressZ_1free(JNIEnv *env, jclass clz, int64_tArray _res) { LDKCVec_NetAddressZ _res_constr; _res_constr.datalen = (*env)->GetArrayLength(env, _res); @@ -13253,6 +13453,21 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1InvoiceSignOrCreat return (uint64_t)ret_conv; } +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { + if ((this_ptr & 1) != 0) return; + LDKPaymentPurpose this_ptr_conv = *(LDKPaymentPurpose*)(((uint64_t)this_ptr) & ~1); + FREE((void*)this_ptr); + PaymentPurpose_free(this_ptr_conv); +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1clone(JNIEnv *env, jclass clz, int64_t orig) { + LDKPaymentPurpose* orig_conv = (LDKPaymentPurpose*)orig; + LDKPaymentPurpose *ret_copy = MALLOC(sizeof(LDKPaymentPurpose), "LDKPaymentPurpose"); + *ret_copy = PaymentPurpose_clone(orig_conv); + uint64_t ret_ref = (uint64_t)ret_copy; + return ret_ref; +} + JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Event_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { if ((this_ptr & 1) != 0) return; LDKEvent this_ptr_conv = *(LDKEvent*)(((uint64_t)this_ptr) & ~1); @@ -14187,7 +14402,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *e chain_source_conv = *(LDKFilter*)(((uint64_t)chain_source) & ~1); if (chain_source_conv.free == LDKFilter_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFilter_JCalls_clone(chain_source_conv.this_arg); + LDKFilter_JCalls_cloned(&chain_source_conv); } chain_source_conv_ptr = MALLOC(sizeof(LDKFilter), "LDKFilter"); *chain_source_conv_ptr = chain_source_conv; @@ -14195,22 +14410,22 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *e LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKFeeEstimator feeest_conv = *(LDKFeeEstimator*)(((uint64_t)feeest) & ~1); if (feeest_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(feeest_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&feeest_conv); } LDKPersist persister_conv = *(LDKPersist*)(((uint64_t)persister) & ~1); if (persister_conv.free == LDKPersist_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKPersist_JCalls_clone(persister_conv.this_arg); + LDKPersist_JCalls_cloned(&persister_conv); } LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv_ptr, broadcaster_conv, logger_conv, feeest_conv, persister_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -14568,17 +14783,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1block_ LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -14604,17 +14819,17 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1block_1disconn LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } ChannelMonitor_block_disconnected(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -14644,17 +14859,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1transa LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_transactions_confirmed(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -14680,17 +14895,17 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1transaction_1u LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } ChannelMonitor_transaction_unconfirmed(&this_arg_conv, txid_ref, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -14706,17 +14921,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1best_1 LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_best_block_updated(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -16162,27 +16377,27 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1new(JNIEnv LDKFeeEstimator fee_est_conv = *(LDKFeeEstimator*)(((uint64_t)fee_est) & ~1); if (fee_est_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_est_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_est_conv); } LDKWatch chain_monitor_conv = *(LDKWatch*)(((uint64_t)chain_monitor) & ~1); if (chain_monitor_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(chain_monitor_conv.this_arg); + LDKWatch_JCalls_cloned(&chain_monitor_conv); } LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)tx_broadcaster) & ~1); if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(tx_broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKUserConfig config_conv; config_conv.inner = (void*)(config & (~1)); @@ -16327,6 +16542,21 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1payme return (uint64_t)ret_conv; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1spontaneous_1payment(JNIEnv *env, jclass clz, int64_t this_arg, int64_t route, int8_tArray payment_preimage) { + LDKChannelManager this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKRoute route_conv; + route_conv.inner = (void*)(route & (~1)); + route_conv.is_owned = false; + LDKThirtyTwoBytes payment_preimage_ref; + CHECK((*env)->GetArrayLength(env, payment_preimage) == 32); + (*env)->GetByteArrayRegion(env, payment_preimage, 0, 32, payment_preimage_ref.data); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = ChannelManager_send_spontaneous_payment(&this_arg_conv, &route_conv, payment_preimage_ref); + return (uint64_t)ret_conv; +} + JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1funding_1transaction_1generated(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray temporary_channel_id, int8_tArray funding_transaction) { LDKChannelManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -16557,7 +16787,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1k LDKKeysInterface val_conv = *(LDKKeysInterface*)(((uint64_t)val) & ~1); if (val_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(val_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_keys_manager(&this_ptr_conv, val_conv); } @@ -16577,7 +16807,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1f LDKFeeEstimator val_conv = *(LDKFeeEstimator*)(((uint64_t)val) & ~1); if (val_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(val_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_fee_estimator(&this_ptr_conv, val_conv); } @@ -16597,7 +16827,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1c LDKWatch val_conv = *(LDKWatch*)(((uint64_t)val) & ~1); if (val_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(val_conv.this_arg); + LDKWatch_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_chain_monitor(&this_ptr_conv, val_conv); } @@ -16617,7 +16847,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1t LDKBroadcasterInterface val_conv = *(LDKBroadcasterInterface*)(((uint64_t)val) & ~1); if (val_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(val_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_tx_broadcaster(&this_ptr_conv, val_conv); } @@ -16637,7 +16867,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1l LDKLogger val_conv = *(LDKLogger*)(((uint64_t)val) & ~1); if (val_conv.free == LDKLogger_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_clone(val_conv.this_arg); + LDKLogger_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_logger(&this_ptr_conv, val_conv); } @@ -16671,27 +16901,27 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1new LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKWatch chain_monitor_conv = *(LDKWatch*)(((uint64_t)chain_monitor) & ~1); if (chain_monitor_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(chain_monitor_conv.this_arg); + LDKWatch_JCalls_cloned(&chain_monitor_conv); } LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)tx_broadcaster) & ~1); if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(tx_broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKUserConfig default_config_conv; default_config_conv.inner = (void*)(default_config & (~1)); @@ -16850,6 +17080,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1get_1data(JNI this_ptr_conv.is_owned = false; LDKStr ret_str = ErrorMessage_get_data(&this_ptr_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -20150,6 +20381,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_LightningError_1get_1err(JN this_ptr_conv.is_owned = false; LDKStr ret_str = LightningError_get_err(&this_ptr_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -21234,7 +21466,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1set_1chan_1han LDKChannelMessageHandler val_conv = *(LDKChannelMessageHandler*)(((uint64_t)val) & ~1); if (val_conv.free == LDKChannelMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelMessageHandler_JCalls_clone(val_conv.this_arg); + LDKChannelMessageHandler_JCalls_cloned(&val_conv); } MessageHandler_set_chan_handler(&this_ptr_conv, val_conv); } @@ -21254,7 +21486,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1set_1route_1ha LDKRoutingMessageHandler val_conv = *(LDKRoutingMessageHandler*)(((uint64_t)val) & ~1); if (val_conv.free == LDKRoutingMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKRoutingMessageHandler_JCalls_clone(val_conv.this_arg); + LDKRoutingMessageHandler_JCalls_cloned(&val_conv); } MessageHandler_set_route_handler(&this_ptr_conv, val_conv); } @@ -21263,12 +21495,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MessageHandler_1new(JNIEnv LDKChannelMessageHandler chan_handler_arg_conv = *(LDKChannelMessageHandler*)(((uint64_t)chan_handler_arg) & ~1); if (chan_handler_arg_conv.free == LDKChannelMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelMessageHandler_JCalls_clone(chan_handler_arg_conv.this_arg); + LDKChannelMessageHandler_JCalls_cloned(&chan_handler_arg_conv); } LDKRoutingMessageHandler route_handler_arg_conv = *(LDKRoutingMessageHandler*)(((uint64_t)route_handler_arg) & ~1); if (route_handler_arg_conv.free == LDKRoutingMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKRoutingMessageHandler_JCalls_clone(route_handler_arg_conv.this_arg); + LDKRoutingMessageHandler_JCalls_cloned(&route_handler_arg_conv); } LDKMessageHandler ret_var = MessageHandler_new(chan_handler_arg_conv, route_handler_arg_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -21363,7 +21595,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new(JNIEnv *en LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKPeerManager ret_var = PeerManager_new(message_handler_conv, our_node_secret_ref, ephemeral_random_data_ref, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -21401,7 +21633,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new_1outbound_ LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSocketDescriptor_JCalls_clone(descriptor_conv.this_arg); + LDKSocketDescriptor_JCalls_cloned(&descriptor_conv); } LDKCResult_CVec_u8ZPeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ), "LDKCResult_CVec_u8ZPeerHandleErrorZ"); *ret_conv = PeerManager_new_outbound_connection(&this_arg_conv, their_node_id_ref, descriptor_conv); @@ -21415,7 +21647,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new_1inbound_1 LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSocketDescriptor_JCalls_clone(descriptor_conv.this_arg); + LDKSocketDescriptor_JCalls_cloned(&descriptor_conv); } LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ"); *ret_conv = PeerManager_new_inbound_connection(&this_arg_conv, descriptor_conv); @@ -23707,6 +23939,58 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RouteHintHop_1clone(JNIEnv return ret_ref; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1keysend_1route(JNIEnv *env, jclass clz, int8_tArray our_node_id, int64_t network, int8_tArray payee, int64_tArray first_hops, int64_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, int64_t logger) { + LDKPublicKey our_node_id_ref; + CHECK((*env)->GetArrayLength(env, our_node_id) == 33); + (*env)->GetByteArrayRegion(env, our_node_id, 0, 33, our_node_id_ref.compressed_form); + LDKNetworkGraph network_conv; + network_conv.inner = (void*)(network & (~1)); + network_conv.is_owned = false; + LDKPublicKey payee_ref; + CHECK((*env)->GetArrayLength(env, payee) == 33); + (*env)->GetByteArrayRegion(env, payee, 0, 33, payee_ref.compressed_form); + LDKCVec_ChannelDetailsZ first_hops_constr; + first_hops_constr.datalen = (*env)->GetArrayLength(env, first_hops); + 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 = (*env)->GetLongArrayElements (env, first_hops, NULL); + 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 = (void*)(first_hops_conv_16 & (~1)); + first_hops_conv_16_conv.is_owned = (first_hops_conv_16 & 1) || (first_hops_conv_16 == 0); + first_hops_constr.data[q] = first_hops_conv_16_conv; + } + (*env)->ReleaseLongArrayElements(env, first_hops, first_hops_vals, 0); + LDKCVec_RouteHintZ last_hops_constr; + last_hops_constr.datalen = (*env)->GetArrayLength(env, last_hops); + if (last_hops_constr.datalen > 0) + last_hops_constr.data = MALLOC(last_hops_constr.datalen * sizeof(LDKRouteHint), "LDKCVec_RouteHintZ Elements"); + else + last_hops_constr.data = NULL; + int64_t* last_hops_vals = (*env)->GetLongArrayElements (env, last_hops, NULL); + for (size_t l = 0; l < last_hops_constr.datalen; l++) { + int64_t last_hops_conv_11 = last_hops_vals[l]; + LDKRouteHint last_hops_conv_11_conv; + last_hops_conv_11_conv.inner = (void*)(last_hops_conv_11 & (~1)); + last_hops_conv_11_conv.is_owned = (last_hops_conv_11 & 1) || (last_hops_conv_11 == 0); + last_hops_conv_11_conv = RouteHint_clone(&last_hops_conv_11_conv); + last_hops_constr.data[l] = last_hops_conv_11_conv; + } + (*env)->ReleaseLongArrayElements(env, last_hops, last_hops_vals, 0); + LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); + 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); + } + LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ"); + *ret_conv = get_keysend_route(our_node_id_ref, &network_conv, payee_ref, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); + FREE(first_hops_constr.data); + return (uint64_t)ret_conv; +} + JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1route(JNIEnv *env, jclass clz, int8_tArray our_node_id, int64_t network, int8_tArray payee, int64_t payee_features, int64_tArray first_hops, int64_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, int64_t logger) { LDKPublicKey our_node_id_ref; CHECK((*env)->GetArrayLength(env, our_node_id) == 33); @@ -23755,7 +24039,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1route(JNIEnv *env, jcl LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ"); *ret_conv = get_route(our_node_id_ref, &network_conv, payee_ref, payee_features_conv, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); @@ -23808,7 +24092,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNI chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -23816,7 +24100,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNI LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv_ptr, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -23835,7 +24119,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1n chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -23843,7 +24127,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1n LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKNetworkGraph network_graph_conv; network_graph_conv.inner = (void*)(network_graph & (~1)); @@ -23869,7 +24153,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1add_1chain chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24857,7 +25141,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24880,7 +25164,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24946,6 +25230,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_FilesystemPersister_1get_1d this_arg_conv.is_owned = false; LDKStr ret_str = FilesystemPersister_get_data_dir(&this_arg_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -24966,7 +25251,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_FilesystemPersister_1read_1 LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ), "LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ"); *ret_conv = FilesystemPersister_read_channelmonitors(&this_arg_conv, keys_manager_conv); @@ -25000,12 +25285,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_BackgroundProcessor_1start( LDKChannelManagerPersister persister_conv = *(LDKChannelManagerPersister*)(((uint64_t)persister) & ~1); if (persister_conv.free == LDKChannelManagerPersister_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelManagerPersister_JCalls_clone(persister_conv.this_arg); + LDKChannelManagerPersister_JCalls_cloned(&persister_conv); } LDKEventHandler event_handler_conv = *(LDKEventHandler*)(((uint64_t)event_handler) & ~1); if (event_handler_conv.free == LDKEventHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKEventHandler_JCalls_clone(event_handler_conv.this_arg); + LDKEventHandler_JCalls_cloned(&event_handler_conv); } LDKChainMonitor chain_monitor_conv; chain_monitor_conv.inner = (void*)(chain_monitor & (~1)); @@ -25019,7 +25304,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_BackgroundProcessor_1start( LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKBackgroundProcessor ret_var = BackgroundProcessor_start(persister_conv, event_handler_conv, &chain_monitor_conv, &channel_manager_conv, &peer_manager_conv, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -25965,6 +26250,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Description_1into_1inner(JN this_arg_conv = Description_clone(&this_arg_conv); LDKStr ret_str = Description_into_inner(this_arg_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26038,6 +26324,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_CreationError_1to_1str(JNIE LDKCreationError* o_conv = (LDKCreationError*)(o & ~1); LDKStr ret_str = CreationError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26058,6 +26345,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SemanticError_1to_1str(JNIE LDKSemanticError* o_conv = (LDKSemanticError*)(o & ~1); LDKStr ret_str = SemanticError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26087,6 +26375,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SignOrCreationError_1to_1st LDKSignOrCreationError* o_conv = (LDKSignOrCreationError*)o; LDKStr ret_str = SignOrCreationError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26097,7 +26386,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_create_1invoice_1from_1chan LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKCurrency network_conv = LDKCurrency_from_java(env, network); LDKCOption_u64Z amt_msat_conv = *(LDKCOption_u64Z*)(((uint64_t)amt_msat) & ~1); @@ -26134,6 +26423,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Invoice_1to_1str(JNIEnv *en o_conv.is_owned = false; LDKStr ret_str = Invoice_to_str(&o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26143,6 +26433,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SignedRawInvoice_1to_1str(J o_conv.is_owned = false; LDKStr ret_str = SignedRawInvoice_to_str(&o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26150,6 +26441,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Currency_1to_1str(JNIEnv *e LDKCurrency* o_conv = (LDKCurrency*)(o & ~1); LDKStr ret_str = Currency_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26157,6 +26449,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SiPrefix_1to_1str(JNIEnv *e LDKSiPrefix* o_conv = (LDKSiPrefix*)(o & ~1); LDKStr ret_str = SiPrefix_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } diff --git a/src/main/jni/bindings.c.body b/src/main/jni/bindings.c.body index 06beaea6..38cec543 100644 --- a/src/main/jni/bindings.c.body +++ b/src/main/jni/bindings.c.body @@ -8,10 +8,136 @@ #include #define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) -#define MALLOC(a, _) malloc(a) -#define FREE(p) if ((uint64_t)(p) > 1024) { free(p); } -#define DO_ASSERT(a) (void)(a) -#define CHECK(a) +#include +// Always run a, then assert it is true: +#define DO_ASSERT(a) do { bool _assert_val = (a); assert(_assert_val); } while(0) +// Assert a is true or do nothing +#define CHECK(a) DO_ASSERT(a) + +void __attribute__((constructor)) debug_log_version() { + if (check_get_ldk_version() == NULL) + DEBUG_PRINT("LDK version did not match the header we built against\n"); + if (check_get_ldk_bindings_version() == NULL) + DEBUG_PRINT("LDK C Bindings version did not match the header we built against\n"); + DEBUG_PRINT("Loaded LDK-Java Bindings with LDK %s and LDK-C-Bindings %s\n", check_get_ldk_version(), check_get_ldk_bindings_version()); +} + +// Running a leak check across all the allocations and frees of the JDK is a mess, +// so instead we implement our own naive leak checker here, relying on the -wrap +// linker option to wrap malloc/calloc/realloc/free, tracking everyhing allocated +// and free'd in Rust or C across the generated bindings shared library. +#include +#include + +#include +static mtx_t allocation_mtx; + +void __attribute__((constructor)) init_mtx() { + DO_ASSERT(mtx_init(&allocation_mtx, mtx_plain) == thrd_success); +} + +#define BT_MAX 128 +typedef struct allocation { + struct allocation* next; + void* ptr; + const char* struct_name; + void* bt[BT_MAX]; + int bt_len; + unsigned long alloc_len; +} allocation; +static allocation* allocation_ll = NULL; + +void* __real_malloc(size_t len); +void* __real_calloc(size_t nmemb, size_t len); +static void new_allocation(void* res, const char* struct_name, size_t len) { + allocation* new_alloc = __real_malloc(sizeof(allocation)); + new_alloc->ptr = res; + new_alloc->struct_name = struct_name; + new_alloc->bt_len = backtrace(new_alloc->bt, BT_MAX); + new_alloc->alloc_len = len; + DO_ASSERT(mtx_lock(&allocation_mtx) == thrd_success); + new_alloc->next = allocation_ll; + allocation_ll = new_alloc; + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); +} +static void* MALLOC(size_t len, const char* struct_name) { + void* res = __real_malloc(len); + new_allocation(res, struct_name, len); + return res; +} +void __real_free(void* ptr); +static void alloc_freed(void* ptr) { + allocation* p = NULL; + DO_ASSERT(mtx_lock(&allocation_mtx) == thrd_success); + allocation* it = allocation_ll; + while (it->ptr != ptr) { + p = it; it = it->next; + if (it == NULL) { + DEBUG_PRINT("Tried to free unknown pointer %p at:\n", ptr); + void* bt[BT_MAX]; + int bt_len = backtrace(bt, BT_MAX); + backtrace_symbols_fd(bt, bt_len, STDERR_FILENO); + DEBUG_PRINT("\n\n"); + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); + return; // addrsan should catch malloc-unknown and print more info than we have + } + } + if (p) { p->next = it->next; } else { allocation_ll = it->next; } + DO_ASSERT(mtx_unlock(&allocation_mtx) == thrd_success); + DO_ASSERT(it->ptr == ptr); + __real_free(it); +} +static void FREE(void* ptr) { + if ((uint64_t)ptr < 1024) return; // Rust loves to create pointers to the NULL page for dummys + alloc_freed(ptr); + __real_free(ptr); +} + +void* __wrap_malloc(size_t len) { + void* res = __real_malloc(len); + new_allocation(res, "malloc call", len); + return res; +} +void* __wrap_calloc(size_t nmemb, size_t len) { + void* res = __real_calloc(nmemb, len); + new_allocation(res, "calloc call", len); + return res; +} +void __wrap_free(void* ptr) { + if (ptr == NULL) return; + alloc_freed(ptr); + __real_free(ptr); +} + +void* __real_realloc(void* ptr, size_t newlen); +void* __wrap_realloc(void* ptr, size_t len) { + if (ptr != NULL) alloc_freed(ptr); + void* res = __real_realloc(ptr, len); + new_allocation(res, "realloc call", len); + return res; +} +void __wrap_reallocarray(void* ptr, size_t new_sz) { + // Rust doesn't seem to use reallocarray currently + DO_ASSERT(false); +} + +void __attribute__((destructor)) check_leaks() { + unsigned long alloc_count = 0; + unsigned long alloc_size = 0; + DEBUG_PRINT("The following LDK-allocated blocks still remain.\n"); + DEBUG_PRINT("Note that this is only accurate if System.gc(); System.runFinalization()\n"); + DEBUG_PRINT("was called prior to exit after all LDK objects were out of scope.\n"); + for (allocation* a = allocation_ll; a != NULL; a = a->next) { + DEBUG_PRINT("%s %p (%lu bytes) remains:\n", a->struct_name, a->ptr, a->alloc_len); + backtrace_symbols_fd(a->bt, a->bt_len, STDERR_FILENO); + DEBUG_PRINT("\n\n"); + alloc_count++; + alloc_size += a->alloc_len; + } + DEBUG_PRINT("%lu allocations remained for %lu bytes.\n", alloc_count, alloc_size); + DEBUG_PRINT("Note that this is only accurate if System.gc(); System.runFinalization()\n"); + DEBUG_PRINT("was called prior to exit after all LDK objects were out of scope.\n"); +} static jmethodID ordinal_meth = NULL; static jmethodID slicedef_meth = NULL; @@ -131,7 +257,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) { } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) { - return str_ref_to_java(env, "v0.0.99.1", strlen("v0.0.99.1")); + return str_ref_to_java(env, "v0.0.99.1-7-gf7a4eb8-dirty", strlen("v0.0.99.1-7-gf7a4eb8-dirty")); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) { return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version())); @@ -2469,11 +2595,6 @@ void ready_channel_LDKBaseSign_jcall(void* this_arg, const LDKChannelTransaction DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKBaseSign_JCalls_clone(const void* this_arg) { - LDKBaseSign_JCalls *j_calls = (LDKBaseSign_JCalls*) this_arg; - atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; -} static inline LDKBaseSign LDKBaseSign_init (JNIEnv *env, jclass clz, jobject o, int64_t pubkeys) { jclass c = (*env)->GetObjectClass(env, o); CHECK(c != NULL); @@ -2723,11 +2844,10 @@ LDKCVec_u8Z write_LDKSign_jcall(const void* this_arg) { } return ret_ref; } -static void* LDKSign_JCalls_clone(const void* this_arg) { - LDKSign_JCalls *j_calls = (LDKSign_JCalls*) this_arg; +static void LDKSign_JCalls_cloned(LDKSign* new_obj) { + LDKSign_JCalls *j_calls = (LDKSign_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->BaseSign->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKSign LDKSign_init (JNIEnv *env, jclass clz, jobject o, jobject BaseSign, int64_t pubkeys) { jclass c = (*env)->GetObjectClass(env, o); @@ -2747,7 +2867,7 @@ static inline LDKSign LDKSign_init (JNIEnv *env, jclass clz, jobject o, jobject LDKSign ret = { .this_arg = (void*) calls, .write = write_LDKSign_jcall, - .clone = LDKSign_JCalls_clone, + .cloned = LDKSign_JCalls_cloned, .free = LDKSign_JCalls_free, .BaseSign = LDKBaseSign_init(env, clz, BaseSign, pubkeys), }; @@ -2759,6 +2879,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSign_1new(JNIEnv *env, j *res_ptr = LDKSign_init(env, clz, o, BaseSign, pubkeys); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSign_1get_1BaseSign(JNIEnv *env, jclass clz, int64_t arg) { + LDKSign *inp = (LDKSign *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->BaseSign; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1write(JNIEnv *env, jclass clz, int64_t this_arg) { LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->write)(this_arg_conv->this_arg); @@ -3209,6 +3335,22 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCResult_1NonePaymentSend uint64_t err_ref = ((uint64_t)&(*val->contents.err)) | 1; return err_ref; } +JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1result_1ok(JNIEnv *env, jclass clz, int64_t arg) { + return ((LDKCResult_PaymentHashPaymentSendFailureZ*)arg)->result_ok; +} +JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1ok(JNIEnv *env, jclass clz, int64_t arg) { + LDKCResult_PaymentHashPaymentSendFailureZ *val = (LDKCResult_PaymentHashPaymentSendFailureZ*)(arg & ~1); + CHECK(val->result_ok); + int8_tArray res_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, res_arr, 0, 32, (*val->contents.result).data); + return res_arr; +} +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1err(JNIEnv *env, jclass clz, int64_t arg) { + LDKCResult_PaymentHashPaymentSendFailureZ *val = (LDKCResult_PaymentHashPaymentSendFailureZ*)(arg & ~1); + CHECK(!val->result_ok); + uint64_t err_ref = ((uint64_t)&(*val->contents.err)) | 1; + return err_ref; +} static jclass LDKNetAddress_IPv4_class = NULL; static jmethodID LDKNetAddress_IPv4_meth = NULL; static jclass LDKNetAddress_IPv6_class = NULL; @@ -3491,10 +3633,9 @@ LDKCVec_MonitorEventZ release_pending_monitor_events_LDKWatch_jcall(const void* } return ret_constr; } -static void* LDKWatch_JCalls_clone(const void* this_arg) { - LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) this_arg; +static void LDKWatch_JCalls_cloned(LDKWatch* new_obj) { + LDKWatch_JCalls *j_calls = (LDKWatch_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKWatch LDKWatch_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -3617,10 +3758,9 @@ void broadcast_transaction_LDKBroadcasterInterface_jcall(const void* this_arg, L DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKBroadcasterInterface_JCalls_clone(const void* this_arg) { - LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) this_arg; +static void LDKBroadcasterInterface_JCalls_cloned(LDKBroadcasterInterface* new_obj) { + LDKBroadcasterInterface_JCalls *j_calls = (LDKBroadcasterInterface_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKBroadcasterInterface LDKBroadcasterInterface_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -3856,10 +3996,9 @@ LDKCResult_RecoverableSignatureNoneZ sign_invoice_LDKKeysInterface_jcall(const v } return ret_conv; } -static void* LDKKeysInterface_JCalls_clone(const void* this_arg) { - LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) this_arg; +static void LDKKeysInterface_JCalls_cloned(LDKKeysInterface* new_obj) { + LDKKeysInterface_JCalls *j_calls = (LDKKeysInterface_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKKeysInterface LDKKeysInterface_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4005,10 +4144,9 @@ uint32_t get_est_sat_per_1000_weight_LDKFeeEstimator_jcall(const void* this_arg, } return ret; } -static void* LDKFeeEstimator_JCalls_clone(const void* this_arg) { - LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) this_arg; +static void LDKFeeEstimator_JCalls_cloned(LDKFeeEstimator* new_obj) { + LDKFeeEstimator_JCalls *j_calls = (LDKFeeEstimator_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKFeeEstimator LDKFeeEstimator_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4084,10 +4222,9 @@ void log_LDKLogger_jcall(const void* this_arg, const char* record) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKLogger_JCalls_clone(const void* this_arg) { - LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) this_arg; +static void LDKLogger_JCalls_cloned(LDKLogger* new_obj) { + LDKLogger_JCalls *j_calls = (LDKLogger_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKLogger LDKLogger_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -4651,6 +4788,40 @@ static inline LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ CVec_C2Tuple_TxidCV } return ret; } +static jclass LDKPaymentPurpose_InvoicePayment_class = NULL; +static jmethodID LDKPaymentPurpose_InvoicePayment_meth = NULL; +static jclass LDKPaymentPurpose_SpontaneousPayment_class = NULL; +static jmethodID LDKPaymentPurpose_SpontaneousPayment_meth = NULL; +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_00024LDKPaymentPurpose_init (JNIEnv *env, jclass clz) { + LDKPaymentPurpose_InvoicePayment_class = + (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKPaymentPurpose$InvoicePayment;")); + CHECK(LDKPaymentPurpose_InvoicePayment_class != NULL); + LDKPaymentPurpose_InvoicePayment_meth = (*env)->GetMethodID(env, LDKPaymentPurpose_InvoicePayment_class, "", "([B[BJ)V"); + CHECK(LDKPaymentPurpose_InvoicePayment_meth != NULL); + LDKPaymentPurpose_SpontaneousPayment_class = + (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKPaymentPurpose$SpontaneousPayment;")); + CHECK(LDKPaymentPurpose_SpontaneousPayment_class != NULL); + LDKPaymentPurpose_SpontaneousPayment_meth = (*env)->GetMethodID(env, LDKPaymentPurpose_SpontaneousPayment_class, "", "([B)V"); + CHECK(LDKPaymentPurpose_SpontaneousPayment_meth != NULL); +} +JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKPaymentPurpose_1ref_1from_1ptr(JNIEnv *env, jclass clz, int64_t ptr) { + LDKPaymentPurpose *obj = (LDKPaymentPurpose*)(ptr & ~1); + switch(obj->tag) { + case LDKPaymentPurpose_InvoicePayment: { + int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, payment_preimage_arr, 0, 32, obj->invoice_payment.payment_preimage.data); + int8_tArray payment_secret_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, payment_secret_arr, 0, 32, obj->invoice_payment.payment_secret.data); + return (*env)->NewObject(env, LDKPaymentPurpose_InvoicePayment_class, LDKPaymentPurpose_InvoicePayment_meth, payment_preimage_arr, payment_secret_arr, obj->invoice_payment.user_payment_id); + } + case LDKPaymentPurpose_SpontaneousPayment: { + int8_tArray spontaneous_payment_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, spontaneous_payment_arr, 0, 32, obj->spontaneous_payment.data); + return (*env)->NewObject(env, LDKPaymentPurpose_SpontaneousPayment_class, LDKPaymentPurpose_SpontaneousPayment_meth, spontaneous_payment_arr); + } + default: abort(); + } +} static jclass LDKEvent_FundingGenerationReady_class = NULL; static jmethodID LDKEvent_FundingGenerationReady_meth = NULL; static jclass LDKEvent_PaymentReceived_class = NULL; @@ -4672,7 +4843,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_00024LDKEvent_init (JNIEnv *en LDKEvent_PaymentReceived_class = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKEvent$PaymentReceived;")); CHECK(LDKEvent_PaymentReceived_class != NULL); - LDKEvent_PaymentReceived_meth = (*env)->GetMethodID(env, LDKEvent_PaymentReceived_class, "", "([B[B[BJJ)V"); + LDKEvent_PaymentReceived_meth = (*env)->GetMethodID(env, LDKEvent_PaymentReceived_class, "", "([BJJ)V"); CHECK(LDKEvent_PaymentReceived_meth != NULL); LDKEvent_PaymentSent_class = (*env)->NewGlobalRef(env, (*env)->FindClass(env, "Lorg/ldk/impl/bindings$LDKEvent$PaymentSent;")); @@ -4709,11 +4880,8 @@ JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKEvent_1ref_1from_1ptr(JN case LDKEvent_PaymentReceived: { int8_tArray payment_hash_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, payment_hash_arr, 0, 32, obj->payment_received.payment_hash.data); - int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); - (*env)->SetByteArrayRegion(env, payment_preimage_arr, 0, 32, obj->payment_received.payment_preimage.data); - int8_tArray payment_secret_arr = (*env)->NewByteArray(env, 32); - (*env)->SetByteArrayRegion(env, payment_secret_arr, 0, 32, obj->payment_received.payment_secret.data); - return (*env)->NewObject(env, LDKEvent_PaymentReceived_class, LDKEvent_PaymentReceived_meth, payment_hash_arr, payment_preimage_arr, payment_secret_arr, obj->payment_received.amt, obj->payment_received.user_payment_id); + uint64_t purpose_ref = ((uint64_t)&obj->payment_received.purpose) | 1; + return (*env)->NewObject(env, LDKEvent_PaymentReceived_class, LDKEvent_PaymentReceived_meth, payment_hash_arr, obj->payment_received.amt, purpose_ref); } case LDKEvent_PaymentSent: { int8_tArray payment_preimage_arr = (*env)->NewByteArray(env, 32); @@ -6138,10 +6306,9 @@ LDKCVec_MessageSendEventZ get_and_clear_pending_msg_events_LDKMessageSendEventsP } return ret_constr; } -static void* LDKMessageSendEventsProvider_JCalls_clone(const void* this_arg) { - LDKMessageSendEventsProvider_JCalls *j_calls = (LDKMessageSendEventsProvider_JCalls*) this_arg; +static void LDKMessageSendEventsProvider_JCalls_cloned(LDKMessageSendEventsProvider* new_obj) { + LDKMessageSendEventsProvider_JCalls *j_calls = (LDKMessageSendEventsProvider_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKMessageSendEventsProvider LDKMessageSendEventsProvider_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6227,10 +6394,9 @@ void handle_event_LDKEventHandler_jcall(const void* this_arg, LDKEvent event) { DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKEventHandler_JCalls_clone(const void* this_arg) { - LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) this_arg; +static void LDKEventHandler_JCalls_cloned(LDKEventHandler* new_obj) { + LDKEventHandler_JCalls *j_calls = (LDKEventHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKEventHandler LDKEventHandler_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6305,10 +6471,9 @@ void process_pending_events_LDKEventsProvider_jcall(const void* this_arg, LDKEve DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKEventsProvider_JCalls_clone(const void* this_arg) { - LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) this_arg; +static void LDKEventsProvider_JCalls_cloned(LDKEventsProvider* new_obj) { + LDKEventsProvider_JCalls *j_calls = (LDKEventsProvider_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKEventsProvider LDKEventsProvider_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6337,7 +6502,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_EventsProvider_1process_1pendi LDKEventHandler handler_conv = *(LDKEventHandler*)(((uint64_t)handler) & ~1); if (handler_conv.free == LDKEventHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKEventHandler_JCalls_clone(handler_conv.this_arg); + LDKEventHandler_JCalls_cloned(&handler_conv); } (this_arg_conv->process_pending_events)(this_arg_conv->this_arg, handler_conv); } @@ -6390,10 +6555,9 @@ LDKCResult_TxOutAccessErrorZ get_utxo_LDKAccess_jcall(const void* this_arg, cons } return ret_conv; } -static void* LDKAccess_JCalls_clone(const void* this_arg) { - LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) this_arg; +static void LDKAccess_JCalls_cloned(LDKAccess* new_obj) { + LDKAccess_JCalls *j_calls = (LDKAccess_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKAccess LDKAccess_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6497,10 +6661,9 @@ void block_disconnected_LDKListen_jcall(const void* this_arg, const uint8_t (* h DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKListen_JCalls_clone(const void* this_arg) { - LDKListen_JCalls *j_calls = (LDKListen_JCalls*) this_arg; +static void LDKListen_JCalls_cloned(LDKListen* new_obj) { + LDKListen_JCalls *j_calls = (LDKListen_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKListen LDKListen_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6681,10 +6844,9 @@ LDKCVec_TxidZ get_relevant_txids_LDKConfirm_jcall(const void* this_arg) { } return ret_constr; } -static void* LDKConfirm_JCalls_clone(const void* this_arg) { - LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) this_arg; +static void LDKConfirm_JCalls_cloned(LDKConfirm* new_obj) { + LDKConfirm_JCalls *j_calls = (LDKConfirm_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKConfirm LDKConfirm_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -6851,10 +7013,9 @@ LDKCOption_C2Tuple_usizeTransactionZZ register_output_LDKFilter_jcall(const void } return ret_conv; } -static void* LDKFilter_JCalls_clone(const void* this_arg) { - LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) this_arg; +static void LDKFilter_JCalls_cloned(LDKFilter* new_obj) { + LDKFilter_JCalls *j_calls = (LDKFilter_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKFilter LDKFilter_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -7014,10 +7175,9 @@ LDKCResult_NoneChannelMonitorUpdateErrZ update_persisted_channel_LDKPersist_jcal } return ret_conv; } -static void* LDKPersist_JCalls_clone(const void* this_arg) { - LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) this_arg; +static void LDKPersist_JCalls_cloned(LDKPersist* new_obj) { + LDKPersist_JCalls *j_calls = (LDKPersist_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKPersist LDKPersist_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -7732,11 +7892,10 @@ void handle_error_LDKChannelMessageHandler_jcall(const void* this_arg, LDKPublic DO_ASSERT((*j_calls->vm)->DetachCurrentThread(j_calls->vm) == JNI_OK); } } -static void* LDKChannelMessageHandler_JCalls_clone(const void* this_arg) { - LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) this_arg; +static void LDKChannelMessageHandler_JCalls_cloned(LDKChannelMessageHandler* new_obj) { + LDKChannelMessageHandler_JCalls *j_calls = (LDKChannelMessageHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->MessageSendEventsProvider->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKChannelMessageHandler LDKChannelMessageHandler_init (JNIEnv *env, jclass clz, jobject o, jobject MessageSendEventsProvider) { jclass c = (*env)->GetObjectClass(env, o); @@ -7819,6 +7978,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1n *res_ptr = LDKChannelMessageHandler_init(env, clz, o, MessageSendEventsProvider); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1get_1MessageSendEventsProvider(JNIEnv *env, jclass clz, int64_t arg) { + LDKChannelMessageHandler *inp = (LDKChannelMessageHandler *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->MessageSendEventsProvider; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1open_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t their_features, int64_t msg) { LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; @@ -8427,11 +8592,10 @@ LDKCResult_NoneLightningErrorZ handle_query_short_channel_ids_LDKRoutingMessageH } return ret_conv; } -static void* LDKRoutingMessageHandler_JCalls_clone(const void* this_arg) { - LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) this_arg; +static void LDKRoutingMessageHandler_JCalls_cloned(LDKRoutingMessageHandler* new_obj) { + LDKRoutingMessageHandler_JCalls *j_calls = (LDKRoutingMessageHandler_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); atomic_fetch_add_explicit(&j_calls->MessageSendEventsProvider->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKRoutingMessageHandler LDKRoutingMessageHandler_init (JNIEnv *env, jclass clz, jobject o, jobject MessageSendEventsProvider) { jclass c = (*env)->GetObjectClass(env, o); @@ -8487,6 +8651,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1n *res_ptr = LDKRoutingMessageHandler_init(env, clz, o, MessageSendEventsProvider); return (uint64_t)res_ptr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1get_1MessageSendEventsProvider(JNIEnv *env, jclass clz, int64_t arg) { + LDKRoutingMessageHandler *inp = (LDKRoutingMessageHandler *)(arg & ~1); + uint64_t res_ptr = (uint64_t)&inp->MessageSendEventsProvider; + DO_ASSERT((res_ptr & 1) == 0); + return (int64_t)(res_ptr | 1); +} JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1node_1announcement(JNIEnv *env, jclass clz, int64_t this_arg, int64_t msg) { LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKNodeAnnouncement msg_conv; @@ -8742,10 +8912,9 @@ uint64_t hash_LDKSocketDescriptor_jcall(const void* this_arg) { } return ret; } -static void* LDKSocketDescriptor_JCalls_clone(const void* this_arg) { - LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) this_arg; +static void LDKSocketDescriptor_JCalls_cloned(LDKSocketDescriptor* new_obj) { + LDKSocketDescriptor_JCalls *j_calls = (LDKSocketDescriptor_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKSocketDescriptor LDKSocketDescriptor_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -8769,7 +8938,7 @@ static inline LDKSocketDescriptor LDKSocketDescriptor_init (JNIEnv *env, jclass .disconnect_socket = disconnect_socket_LDKSocketDescriptor_jcall, .eq = eq_LDKSocketDescriptor_jcall, .hash = hash_LDKSocketDescriptor_jcall, - .clone = LDKSocketDescriptor_JCalls_clone, + .cloned = LDKSocketDescriptor_JCalls_cloned, .free = LDKSocketDescriptor_JCalls_free, }; return ret; @@ -8854,10 +9023,9 @@ LDKCResult_NoneErrorZ persist_manager_LDKChannelManagerPersister_jcall(const voi } return ret_conv; } -static void* LDKChannelManagerPersister_JCalls_clone(const void* this_arg) { - LDKChannelManagerPersister_JCalls *j_calls = (LDKChannelManagerPersister_JCalls*) this_arg; +static void LDKChannelManagerPersister_JCalls_cloned(LDKChannelManagerPersister* new_obj) { + LDKChannelManagerPersister_JCalls *j_calls = (LDKChannelManagerPersister_JCalls*) new_obj->this_arg; atomic_fetch_add_explicit(&j_calls->refcnt, 1, memory_order_release); - return (void*) this_arg; } static inline LDKChannelManagerPersister LDKChannelManagerPersister_init (JNIEnv *env, jclass clz, jobject o) { jclass c = (*env)->GetObjectClass(env, o); @@ -8940,12 +9108,14 @@ JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKFallback_1ref_1from_1ptr JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings__1ldk_1get_1compiled_1version(JNIEnv *env, jclass clz) { LDKStr ret_str = _ldk_get_compiled_version(); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings__1ldk_1c_1bindings_1get_1compiled_1version(JNIEnv *env, jclass clz) { LDKStr ret_str = _ldk_c_bindings_get_compiled_version(); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -10187,7 +10357,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1SignDecodeErrorZ_1 LDKSign o_conv = *(LDKSign*)(((uint64_t)o) & ~1); if (o_conv.free == LDKSign_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSign_JCalls_clone(o_conv.this_arg); + LDKSign_JCalls_cloned(&o_conv); } LDKCResult_SignDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_SignDecodeErrorZ), "LDKCResult_SignDecodeErrorZ"); *ret_conv = CResult_SignDecodeErrorZ_ok(o_conv); @@ -10587,6 +10757,36 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1NonePaymentSendFai return (uint64_t)ret_conv; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1ok(JNIEnv *env, jclass clz, int8_tArray o) { + LDKThirtyTwoBytes o_ref; + CHECK((*env)->GetArrayLength(env, o) == 32); + (*env)->GetByteArrayRegion(env, o, 0, 32, o_ref.data); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_ok(o_ref); + return (uint64_t)ret_conv; +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1err(JNIEnv *env, jclass clz, int64_t e) { + LDKPaymentSendFailure e_conv = *(LDKPaymentSendFailure*)(((uint64_t)e) & ~1); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_err(e_conv); + return (uint64_t)ret_conv; +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1free(JNIEnv *env, jclass clz, int64_t _res) { + if ((_res & 1) != 0) return; + LDKCResult_PaymentHashPaymentSendFailureZ _res_conv = *(LDKCResult_PaymentHashPaymentSendFailureZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + CResult_PaymentHashPaymentSendFailureZ_free(_res_conv); +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1clone(JNIEnv *env, jclass clz, int64_t orig) { + LDKCResult_PaymentHashPaymentSendFailureZ* orig_conv = (LDKCResult_PaymentHashPaymentSendFailureZ*)(orig & ~1); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = CResult_PaymentHashPaymentSendFailureZ_clone(orig_conv); + return (uint64_t)ret_conv; +} + JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1NetAddressZ_1free(JNIEnv *env, jclass clz, int64_tArray _res) { LDKCVec_NetAddressZ _res_constr; _res_constr.datalen = (*env)->GetArrayLength(env, _res); @@ -13251,6 +13451,21 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CResult_1InvoiceSignOrCreat return (uint64_t)ret_conv; } +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { + if ((this_ptr & 1) != 0) return; + LDKPaymentPurpose this_ptr_conv = *(LDKPaymentPurpose*)(((uint64_t)this_ptr) & ~1); + FREE((void*)this_ptr); + PaymentPurpose_free(this_ptr_conv); +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1clone(JNIEnv *env, jclass clz, int64_t orig) { + LDKPaymentPurpose* orig_conv = (LDKPaymentPurpose*)orig; + LDKPaymentPurpose *ret_copy = MALLOC(sizeof(LDKPaymentPurpose), "LDKPaymentPurpose"); + *ret_copy = PaymentPurpose_clone(orig_conv); + uint64_t ret_ref = (uint64_t)ret_copy; + return ret_ref; +} + JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Event_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { if ((this_ptr & 1) != 0) return; LDKEvent this_ptr_conv = *(LDKEvent*)(((uint64_t)this_ptr) & ~1); @@ -14185,7 +14400,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *e chain_source_conv = *(LDKFilter*)(((uint64_t)chain_source) & ~1); if (chain_source_conv.free == LDKFilter_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFilter_JCalls_clone(chain_source_conv.this_arg); + LDKFilter_JCalls_cloned(&chain_source_conv); } chain_source_conv_ptr = MALLOC(sizeof(LDKFilter), "LDKFilter"); *chain_source_conv_ptr = chain_source_conv; @@ -14193,22 +14408,22 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *e LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKFeeEstimator feeest_conv = *(LDKFeeEstimator*)(((uint64_t)feeest) & ~1); if (feeest_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(feeest_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&feeest_conv); } LDKPersist persister_conv = *(LDKPersist*)(((uint64_t)persister) & ~1); if (persister_conv.free == LDKPersist_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKPersist_JCalls_clone(persister_conv.this_arg); + LDKPersist_JCalls_cloned(&persister_conv); } LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv_ptr, broadcaster_conv, logger_conv, feeest_conv, persister_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -14566,17 +14781,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1block_ LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_block_connected(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -14602,17 +14817,17 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1block_1disconn LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } ChannelMonitor_block_disconnected(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -14642,17 +14857,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1transa LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_transactions_confirmed(&this_arg_conv, header_ref, txdata_constr, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -14678,17 +14893,17 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1transaction_1u LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } ChannelMonitor_transaction_unconfirmed(&this_arg_conv, txid_ref, broadcaster_conv, fee_estimator_conv, logger_conv); } @@ -14704,17 +14919,17 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1best_1 LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); if (broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&broadcaster_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ ret_var = ChannelMonitor_best_block_updated(&this_arg_conv, header_ref, height, broadcaster_conv, fee_estimator_conv, logger_conv); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); @@ -16160,27 +16375,27 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1new(JNIEnv LDKFeeEstimator fee_est_conv = *(LDKFeeEstimator*)(((uint64_t)fee_est) & ~1); if (fee_est_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_est_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_est_conv); } LDKWatch chain_monitor_conv = *(LDKWatch*)(((uint64_t)chain_monitor) & ~1); if (chain_monitor_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(chain_monitor_conv.this_arg); + LDKWatch_JCalls_cloned(&chain_monitor_conv); } LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)tx_broadcaster) & ~1); if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(tx_broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKUserConfig config_conv; config_conv.inner = (void*)(config & (~1)); @@ -16325,6 +16540,21 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1payme return (uint64_t)ret_conv; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1spontaneous_1payment(JNIEnv *env, jclass clz, int64_t this_arg, int64_t route, int8_tArray payment_preimage) { + LDKChannelManager this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKRoute route_conv; + route_conv.inner = (void*)(route & (~1)); + route_conv.is_owned = false; + LDKThirtyTwoBytes payment_preimage_ref; + CHECK((*env)->GetArrayLength(env, payment_preimage) == 32); + (*env)->GetByteArrayRegion(env, payment_preimage, 0, 32, payment_preimage_ref.data); + LDKCResult_PaymentHashPaymentSendFailureZ* ret_conv = MALLOC(sizeof(LDKCResult_PaymentHashPaymentSendFailureZ), "LDKCResult_PaymentHashPaymentSendFailureZ"); + *ret_conv = ChannelManager_send_spontaneous_payment(&this_arg_conv, &route_conv, payment_preimage_ref); + return (uint64_t)ret_conv; +} + JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManager_1funding_1transaction_1generated(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray temporary_channel_id, int8_tArray funding_transaction) { LDKChannelManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -16555,7 +16785,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1k LDKKeysInterface val_conv = *(LDKKeysInterface*)(((uint64_t)val) & ~1); if (val_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(val_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_keys_manager(&this_ptr_conv, val_conv); } @@ -16575,7 +16805,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1f LDKFeeEstimator val_conv = *(LDKFeeEstimator*)(((uint64_t)val) & ~1); if (val_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(val_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_fee_estimator(&this_ptr_conv, val_conv); } @@ -16595,7 +16825,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1c LDKWatch val_conv = *(LDKWatch*)(((uint64_t)val) & ~1); if (val_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(val_conv.this_arg); + LDKWatch_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_chain_monitor(&this_ptr_conv, val_conv); } @@ -16615,7 +16845,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1t LDKBroadcasterInterface val_conv = *(LDKBroadcasterInterface*)(((uint64_t)val) & ~1); if (val_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(val_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_tx_broadcaster(&this_ptr_conv, val_conv); } @@ -16635,7 +16865,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1set_1l LDKLogger val_conv = *(LDKLogger*)(((uint64_t)val) & ~1); if (val_conv.free == LDKLogger_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKLogger_JCalls_clone(val_conv.this_arg); + LDKLogger_JCalls_cloned(&val_conv); } ChannelManagerReadArgs_set_logger(&this_ptr_conv, val_conv); } @@ -16669,27 +16899,27 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1new LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKFeeEstimator fee_estimator_conv = *(LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); if (fee_estimator_conv.free == LDKFeeEstimator_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKFeeEstimator_JCalls_clone(fee_estimator_conv.this_arg); + LDKFeeEstimator_JCalls_cloned(&fee_estimator_conv); } LDKWatch chain_monitor_conv = *(LDKWatch*)(((uint64_t)chain_monitor) & ~1); if (chain_monitor_conv.free == LDKWatch_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKWatch_JCalls_clone(chain_monitor_conv.this_arg); + LDKWatch_JCalls_cloned(&chain_monitor_conv); } LDKBroadcasterInterface tx_broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)tx_broadcaster) & ~1); if (tx_broadcaster_conv.free == LDKBroadcasterInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKBroadcasterInterface_JCalls_clone(tx_broadcaster_conv.this_arg); + LDKBroadcasterInterface_JCalls_cloned(&tx_broadcaster_conv); } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKUserConfig default_config_conv; default_config_conv.inner = (void*)(default_config & (~1)); @@ -16848,6 +17078,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1get_1data(JNI this_ptr_conv.is_owned = false; LDKStr ret_str = ErrorMessage_get_data(&this_ptr_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -20148,6 +20379,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_LightningError_1get_1err(JN this_ptr_conv.is_owned = false; LDKStr ret_str = LightningError_get_err(&this_ptr_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -21232,7 +21464,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1set_1chan_1han LDKChannelMessageHandler val_conv = *(LDKChannelMessageHandler*)(((uint64_t)val) & ~1); if (val_conv.free == LDKChannelMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelMessageHandler_JCalls_clone(val_conv.this_arg); + LDKChannelMessageHandler_JCalls_cloned(&val_conv); } MessageHandler_set_chan_handler(&this_ptr_conv, val_conv); } @@ -21252,7 +21484,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1set_1route_1ha LDKRoutingMessageHandler val_conv = *(LDKRoutingMessageHandler*)(((uint64_t)val) & ~1); if (val_conv.free == LDKRoutingMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKRoutingMessageHandler_JCalls_clone(val_conv.this_arg); + LDKRoutingMessageHandler_JCalls_cloned(&val_conv); } MessageHandler_set_route_handler(&this_ptr_conv, val_conv); } @@ -21261,12 +21493,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MessageHandler_1new(JNIEnv LDKChannelMessageHandler chan_handler_arg_conv = *(LDKChannelMessageHandler*)(((uint64_t)chan_handler_arg) & ~1); if (chan_handler_arg_conv.free == LDKChannelMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelMessageHandler_JCalls_clone(chan_handler_arg_conv.this_arg); + LDKChannelMessageHandler_JCalls_cloned(&chan_handler_arg_conv); } LDKRoutingMessageHandler route_handler_arg_conv = *(LDKRoutingMessageHandler*)(((uint64_t)route_handler_arg) & ~1); if (route_handler_arg_conv.free == LDKRoutingMessageHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKRoutingMessageHandler_JCalls_clone(route_handler_arg_conv.this_arg); + LDKRoutingMessageHandler_JCalls_cloned(&route_handler_arg_conv); } LDKMessageHandler ret_var = MessageHandler_new(chan_handler_arg_conv, route_handler_arg_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -21361,7 +21593,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new(JNIEnv *en LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKPeerManager ret_var = PeerManager_new(message_handler_conv, our_node_secret_ref, ephemeral_random_data_ref, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -21399,7 +21631,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new_1outbound_ LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSocketDescriptor_JCalls_clone(descriptor_conv.this_arg); + LDKSocketDescriptor_JCalls_cloned(&descriptor_conv); } LDKCResult_CVec_u8ZPeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_u8ZPeerHandleErrorZ), "LDKCResult_CVec_u8ZPeerHandleErrorZ"); *ret_conv = PeerManager_new_outbound_connection(&this_arg_conv, their_node_id_ref, descriptor_conv); @@ -21413,7 +21645,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new_1inbound_1 LDKSocketDescriptor descriptor_conv = *(LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); if (descriptor_conv.free == LDKSocketDescriptor_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKSocketDescriptor_JCalls_clone(descriptor_conv.this_arg); + LDKSocketDescriptor_JCalls_cloned(&descriptor_conv); } LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ"); *ret_conv = PeerManager_new_inbound_connection(&this_arg_conv, descriptor_conv); @@ -23705,6 +23937,58 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RouteHintHop_1clone(JNIEnv return ret_ref; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1keysend_1route(JNIEnv *env, jclass clz, int8_tArray our_node_id, int64_t network, int8_tArray payee, int64_tArray first_hops, int64_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, int64_t logger) { + LDKPublicKey our_node_id_ref; + CHECK((*env)->GetArrayLength(env, our_node_id) == 33); + (*env)->GetByteArrayRegion(env, our_node_id, 0, 33, our_node_id_ref.compressed_form); + LDKNetworkGraph network_conv; + network_conv.inner = (void*)(network & (~1)); + network_conv.is_owned = false; + LDKPublicKey payee_ref; + CHECK((*env)->GetArrayLength(env, payee) == 33); + (*env)->GetByteArrayRegion(env, payee, 0, 33, payee_ref.compressed_form); + LDKCVec_ChannelDetailsZ first_hops_constr; + first_hops_constr.datalen = (*env)->GetArrayLength(env, first_hops); + 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 = (*env)->GetLongArrayElements (env, first_hops, NULL); + 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 = (void*)(first_hops_conv_16 & (~1)); + first_hops_conv_16_conv.is_owned = (first_hops_conv_16 & 1) || (first_hops_conv_16 == 0); + first_hops_constr.data[q] = first_hops_conv_16_conv; + } + (*env)->ReleaseLongArrayElements(env, first_hops, first_hops_vals, 0); + LDKCVec_RouteHintZ last_hops_constr; + last_hops_constr.datalen = (*env)->GetArrayLength(env, last_hops); + if (last_hops_constr.datalen > 0) + last_hops_constr.data = MALLOC(last_hops_constr.datalen * sizeof(LDKRouteHint), "LDKCVec_RouteHintZ Elements"); + else + last_hops_constr.data = NULL; + int64_t* last_hops_vals = (*env)->GetLongArrayElements (env, last_hops, NULL); + for (size_t l = 0; l < last_hops_constr.datalen; l++) { + int64_t last_hops_conv_11 = last_hops_vals[l]; + LDKRouteHint last_hops_conv_11_conv; + last_hops_conv_11_conv.inner = (void*)(last_hops_conv_11 & (~1)); + last_hops_conv_11_conv.is_owned = (last_hops_conv_11 & 1) || (last_hops_conv_11 == 0); + last_hops_conv_11_conv = RouteHint_clone(&last_hops_conv_11_conv); + last_hops_constr.data[l] = last_hops_conv_11_conv; + } + (*env)->ReleaseLongArrayElements(env, last_hops, last_hops_vals, 0); + LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); + 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); + } + LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ"); + *ret_conv = get_keysend_route(our_node_id_ref, &network_conv, payee_ref, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); + FREE(first_hops_constr.data); + return (uint64_t)ret_conv; +} + JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1route(JNIEnv *env, jclass clz, int8_tArray our_node_id, int64_t network, int8_tArray payee, int64_t payee_features, int64_tArray first_hops, int64_tArray last_hops, int64_t final_value_msat, int32_t final_cltv, int64_t logger) { LDKPublicKey our_node_id_ref; CHECK((*env)->GetArrayLength(env, our_node_id) == 33); @@ -23753,7 +24037,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1route(JNIEnv *env, jcl LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKCResult_RouteLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_RouteLightningErrorZ), "LDKCResult_RouteLightningErrorZ"); *ret_conv = get_route(our_node_id_ref, &network_conv, payee_ref, payee_features_conv, &first_hops_constr, last_hops_constr, final_value_msat, final_cltv, logger_conv); @@ -23806,7 +24090,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNI chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -23814,7 +24098,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNI LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv_ptr, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -23833,7 +24117,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1n chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -23841,7 +24125,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1n LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKNetworkGraph network_graph_conv; network_graph_conv.inner = (void*)(network_graph & (~1)); @@ -23867,7 +24151,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1add_1chain chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24855,7 +25139,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24878,7 +25162,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); if (chain_access_conv.free == LDKAccess_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKAccess_JCalls_clone(chain_access_conv.this_arg); + LDKAccess_JCalls_cloned(&chain_access_conv); } chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); *chain_access_conv_ptr = chain_access_conv; @@ -24944,6 +25228,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_FilesystemPersister_1get_1d this_arg_conv.is_owned = false; LDKStr ret_str = FilesystemPersister_get_data_dir(&this_arg_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -24964,7 +25249,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_FilesystemPersister_1read_1 LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ), "LDKCResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZ"); *ret_conv = FilesystemPersister_read_channelmonitors(&this_arg_conv, keys_manager_conv); @@ -24998,12 +25283,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_BackgroundProcessor_1start( LDKChannelManagerPersister persister_conv = *(LDKChannelManagerPersister*)(((uint64_t)persister) & ~1); if (persister_conv.free == LDKChannelManagerPersister_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKChannelManagerPersister_JCalls_clone(persister_conv.this_arg); + LDKChannelManagerPersister_JCalls_cloned(&persister_conv); } LDKEventHandler event_handler_conv = *(LDKEventHandler*)(((uint64_t)event_handler) & ~1); if (event_handler_conv.free == LDKEventHandler_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKEventHandler_JCalls_clone(event_handler_conv.this_arg); + LDKEventHandler_JCalls_cloned(&event_handler_conv); } LDKChainMonitor chain_monitor_conv; chain_monitor_conv.inner = (void*)(chain_monitor & (~1)); @@ -25017,7 +25302,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_BackgroundProcessor_1start( LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); 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_clone(logger_conv.this_arg); + LDKLogger_JCalls_cloned(&logger_conv); } LDKBackgroundProcessor ret_var = BackgroundProcessor_start(persister_conv, event_handler_conv, &chain_monitor_conv, &channel_manager_conv, &peer_manager_conv, logger_conv); CHECK((((uint64_t)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. @@ -25963,6 +26248,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Description_1into_1inner(JN this_arg_conv = Description_clone(&this_arg_conv); LDKStr ret_str = Description_into_inner(this_arg_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26036,6 +26322,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_CreationError_1to_1str(JNIE LDKCreationError* o_conv = (LDKCreationError*)(o & ~1); LDKStr ret_str = CreationError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26056,6 +26343,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SemanticError_1to_1str(JNIE LDKSemanticError* o_conv = (LDKSemanticError*)(o & ~1); LDKStr ret_str = SemanticError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26085,6 +26373,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SignOrCreationError_1to_1st LDKSignOrCreationError* o_conv = (LDKSignOrCreationError*)o; LDKStr ret_str = SignOrCreationError_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26095,7 +26384,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_create_1invoice_1from_1chan LDKKeysInterface keys_manager_conv = *(LDKKeysInterface*)(((uint64_t)keys_manager) & ~1); if (keys_manager_conv.free == LDKKeysInterface_JCalls_free) { // If this_arg is a JCalls struct, then we need to increment the refcnt in it. - LDKKeysInterface_JCalls_clone(keys_manager_conv.this_arg); + LDKKeysInterface_JCalls_cloned(&keys_manager_conv); } LDKCurrency network_conv = LDKCurrency_from_java(env, network); LDKCOption_u64Z amt_msat_conv = *(LDKCOption_u64Z*)(((uint64_t)amt_msat) & ~1); @@ -26132,6 +26421,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Invoice_1to_1str(JNIEnv *en o_conv.is_owned = false; LDKStr ret_str = Invoice_to_str(&o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26141,6 +26431,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SignedRawInvoice_1to_1str(J o_conv.is_owned = false; LDKStr ret_str = SignedRawInvoice_to_str(&o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26148,6 +26439,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_Currency_1to_1str(JNIEnv *e LDKCurrency* o_conv = (LDKCurrency*)(o & ~1); LDKStr ret_str = Currency_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } @@ -26155,6 +26447,7 @@ JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_SiPrefix_1to_1str(JNIEnv *e LDKSiPrefix* o_conv = (LDKSiPrefix*)(o & ~1); LDKStr ret_str = SiPrefix_to_str(o_conv); jstring ret_conv = str_ref_to_java(env, ret_str.chars, ret_str.len); + Str_free(ret_str); return ret_conv; } diff --git a/src/main/jni/org_ldk_impl_bindings.h b/src/main/jni/org_ldk_impl_bindings.h index 75930552..2e1d56f5 100644 --- a/src/main/jni/org_ldk_impl_bindings.h +++ b/src/main/jni/org_ldk_impl_bindings.h @@ -1095,6 +1095,14 @@ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_BaseSign_1get_1pubkeys JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKSign_1new (JNIEnv *, jclass, jobject, jobject, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: LDKSign_get_BaseSign + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKSign_1get_1BaseSign + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: Sign_write @@ -1375,6 +1383,30 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LDKCResult_1NonePaymentSendFai JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCResult_1NonePaymentSendFailureZ_1get_1err (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: LDKCResult_PaymentHashPaymentSendFailureZ_result_ok + * Signature: (J)Z + */ +JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1result_1ok + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKCResult_PaymentHashPaymentSendFailureZ_get_ok + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1ok + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKCResult_PaymentHashPaymentSendFailureZ_get_err + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCResult_1PaymentHashPaymentSendFailureZ_1get_1err + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: LDKNetAddress_ref_from_ptr @@ -2143,6 +2175,14 @@ JNIEXPORT jlongArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2 JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCVec_1C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZZ_1new (JNIEnv *, jclass, jlongArray); +/* + * Class: org_ldk_impl_bindings + * Method: LDKPaymentPurpose_ref_from_ptr + * Signature: (J)Lorg/ldk/impl/bindings/LDKPaymentPurpose; + */ +JNIEXPORT jobject JNICALL Java_org_ldk_impl_bindings_LDKPaymentPurpose_1ref_1from_1ptr + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: LDKEvent_ref_from_ptr @@ -3631,6 +3671,14 @@ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_Persist_1update_1persisted_1c JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1new (JNIEnv *, jclass, jobject, jobject); +/* + * Class: org_ldk_impl_bindings + * Method: LDKChannelMessageHandler_get_MessageSendEventsProvider + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1get_1MessageSendEventsProvider + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: ChannelMessageHandler_handle_open_channel @@ -3799,6 +3847,14 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1new (JNIEnv *, jclass, jobject, jobject); +/* + * Class: org_ldk_impl_bindings + * Method: LDKRoutingMessageHandler_get_MessageSendEventsProvider + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1get_1MessageSendEventsProvider + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: RoutingMessageHandler_handle_node_announcement @@ -5407,6 +5463,38 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CResult_1NonePaymentSendFailur JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1NonePaymentSendFailureZ_1clone (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: CResult_PaymentHashPaymentSendFailureZ_ok + * Signature: ([B)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1ok + (JNIEnv *, jclass, jbyteArray); + +/* + * Class: org_ldk_impl_bindings + * Method: CResult_PaymentHashPaymentSendFailureZ_err + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1err + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: CResult_PaymentHashPaymentSendFailureZ_free + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1free + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: CResult_PaymentHashPaymentSendFailureZ_clone + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1PaymentHashPaymentSendFailureZ_1clone + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: CVec_NetAddressZ_free @@ -7807,6 +7895,22 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CResult_1InvoiceSignOrCreation JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_CResult_1InvoiceSignOrCreationErrorZ_1clone (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: PaymentPurpose_free + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1free + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: PaymentPurpose_clone + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_PaymentPurpose_1clone + (JNIEnv *, jclass, jlong); + /* * Class: org_ldk_impl_bindings * Method: Event_free @@ -10079,6 +10183,14 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManager_1force_1close_1 JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1payment (JNIEnv *, jclass, jlong, jlong, jbyteArray, jbyteArray); +/* + * Class: org_ldk_impl_bindings + * Method: ChannelManager_send_spontaneous_payment + * Signature: (JJ[B)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelManager_1send_1spontaneous_1payment + (JNIEnv *, jclass, jlong, jlong, jbyteArray); + /* * Class: org_ldk_impl_bindings * Method: ChannelManager_funding_transaction_generated @@ -15615,6 +15727,14 @@ JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_RouteHintHop_1eq JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_RouteHintHop_1clone (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: get_keysend_route + * Signature: ([BJ[B[J[JJIJ)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_get_1keysend_1route + (JNIEnv *, jclass, jbyteArray, jlong, jbyteArray, jlongArray, jlongArray, jlong, jint, jlong); + /* * Class: org_ldk_impl_bindings * Method: get_route diff --git a/src/main/jni/org_ldk_impl_bindings_LDKPaymentPurpose.h b/src/main/jni/org_ldk_impl_bindings_LDKPaymentPurpose.h new file mode 100644 index 00000000..0d8dc49a --- /dev/null +++ b/src/main/jni/org_ldk_impl_bindings_LDKPaymentPurpose.h @@ -0,0 +1,21 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class org_ldk_impl_bindings_LDKPaymentPurpose */ + +#ifndef _Included_org_ldk_impl_bindings_LDKPaymentPurpose +#define _Included_org_ldk_impl_bindings_LDKPaymentPurpose +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: org_ldk_impl_bindings_LDKPaymentPurpose + * Method: init + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_00024LDKPaymentPurpose_init + (JNIEnv *, jclass); + +#ifdef __cplusplus +} +#endif +#endif -- 2.30.2