From 17113550a5fefab21f39f27fbfe02646b8db53ae Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Sun, 7 Mar 2021 14:18:07 -0500 Subject: [PATCH] Update java bindings with new generator and new upstream code --- liblightningjni.so | Bin 6917816 -> 6937088 bytes .../java/org/ldk/enums/LDKAccessError.java | 5 + .../ldk/enums/LDKChannelMonitorUpdateErr.java | 3 + .../org/ldk/enums/LDKConfirmationTarget.java | 4 + src/main/java/org/ldk/enums/LDKLevel.java | 3 + src/main/java/org/ldk/impl/bindings.java | 484 ++++--- src/main/java/org/ldk/structs/APIError.java | 5 + .../java/org/ldk/structs/AcceptChannel.java | 97 ++ src/main/java/org/ldk/structs/Access.java | 18 + .../ldk/structs/AnnouncementSignatures.java | 40 + .../org/ldk/structs/BroadcasterInterface.java | 9 + .../structs/BuiltCommitmentTransaction.java | 43 + .../java/org/ldk/structs/ChainMonitor.java | 54 + .../java/org/ldk/structs/ChainParameters.java | 33 + .../org/ldk/structs/ChannelAnnouncement.java | 46 + .../java/org/ldk/structs/ChannelConfig.java | 86 ++ .../java/org/ldk/structs/ChannelDetails.java | 81 ++ .../java/org/ldk/structs/ChannelFeatures.java | 21 + .../ldk/structs/ChannelHandshakeConfig.java | 75 + .../ldk/structs/ChannelHandshakeLimits.java | 169 +++ .../java/org/ldk/structs/ChannelInfo.java | 56 + .../java/org/ldk/structs/ChannelManager.java | 257 ++++ .../ldk/structs/ChannelManagerReadArgs.java | 93 ++ .../ldk/structs/ChannelMessageHandler.java | 126 ++ .../java/org/ldk/structs/ChannelMonitor.java | 118 ++ .../org/ldk/structs/ChannelMonitorUpdate.java | 44 + .../org/ldk/structs/ChannelPublicKeys.java | 64 + .../org/ldk/structs/ChannelReestablish.java | 31 + .../structs/ChannelTransactionParameters.java | 69 + .../java/org/ldk/structs/ChannelUpdate.java | 28 + .../java/org/ldk/structs/ClosingSigned.java | 34 + .../org/ldk/structs/CommitmentSigned.java | 31 + .../ldk/structs/CommitmentTransaction.java | 46 + .../org/ldk/structs/CommitmentUpdate.java | 35 + ...nterpartyChannelTransactionParameters.java | 28 + .../java/org/ldk/structs/DataLossProtect.java | 27 + .../java/org/ldk/structs/DecodeError.java | 7 + .../DelayedPaymentOutputDescriptor.java | 58 + .../DirectedChannelTransactionParameters.java | 27 + .../ldk/structs/DirectionalChannelInfo.java | 58 + .../java/org/ldk/structs/ErrorAction.java | 4 + .../java/org/ldk/structs/ErrorMessage.java | 34 + .../ldk/structs/ErroringMessageHandler.java | 16 + src/main/java/org/ldk/structs/Event.java | 8 + .../java/org/ldk/structs/EventsProvider.java | 11 + .../java/org/ldk/structs/FeeEstimator.java | 27 + src/main/java/org/ldk/structs/Filter.java | 39 + .../java/org/ldk/structs/FundingCreated.java | 40 + .../java/org/ldk/structs/FundingLocked.java | 28 + .../java/org/ldk/structs/FundingSigned.java | 28 + .../ldk/structs/GossipTimestampFilter.java | 36 + .../ldk/structs/HTLCFailChannelUpdate.java | 6 + .../ldk/structs/HTLCOutputInCommitment.java | 45 + src/main/java/org/ldk/structs/HTLCUpdate.java | 17 + .../structs/HolderCommitmentTransaction.java | 28 + .../ldk/structs/IgnoringMessageHandler.java | 16 + .../java/org/ldk/structs/InMemorySigner.java | 104 ++ src/main/java/org/ldk/structs/Init.java | 22 + .../java/org/ldk/structs/InitFeatures.java | 21 + .../java/org/ldk/structs/KeysInterface.java | 81 ++ .../java/org/ldk/structs/KeysManager.java | 55 + .../java/org/ldk/structs/LightningError.java | 22 + src/main/java/org/ldk/structs/Listen.java | 18 + .../org/ldk/structs/LockedNetworkGraph.java | 9 + src/main/java/org/ldk/structs/Logger.java | 6 + .../java/org/ldk/structs/MessageHandler.java | 23 + .../org/ldk/structs/MessageSendEvent.java | 6 + .../structs/MessageSendEventsProvider.java | 11 + .../java/org/ldk/structs/MonitorEvent.java | 4 + .../org/ldk/structs/MonitorUpdateError.java | 11 + src/main/java/org/ldk/structs/NetAddress.java | 4 + .../org/ldk/structs/NetGraphMsgHandler.java | 38 + .../java/org/ldk/structs/NetworkGraph.java | 67 + .../org/ldk/structs/NodeAnnouncement.java | 28 + .../org/ldk/structs/NodeAnnouncementInfo.java | 61 + .../java/org/ldk/structs/NodeFeatures.java | 21 + src/main/java/org/ldk/structs/NodeInfo.java | 39 + .../java/org/ldk/structs/OpenChannel.java | 121 ++ src/main/java/org/ldk/structs/OutPoint.java | 34 + .../org/ldk/structs/PaymentSendFailure.java | 6 + .../java/org/ldk/structs/PeerHandleError.java | 20 + .../java/org/ldk/structs/PeerManager.java | 99 ++ src/main/java/org/ldk/structs/Persist.java | 97 ++ src/main/java/org/ldk/structs/Ping.java | 30 + src/main/java/org/ldk/structs/Pong.java | 24 + .../org/ldk/structs/QueryChannelRange.java | 37 + .../org/ldk/structs/QueryShortChannelIds.java | 32 + .../org/ldk/structs/ReplyChannelRange.java | 49 + .../ldk/structs/ReplyShortChannelIdsEnd.java | 33 + .../Result_AcceptChannelDecodeErrorZ.java | 1 - ...lt_AnnouncementSignaturesDecodeErrorZ.java | 1 - ...uiltCommitmentTransactionDecodeErrorZ.java | 1 - ..._BlockHashChannelManagerZDecodeErrorZ.java | 1 - ..._BlockHashChannelMonitorZDecodeErrorZ.java | 1 - ...2Tuple_SignatureCVec_SignatureZZNoneZ.java | 1 - ...ult_CResult_NetAddressu8ZDecodeErrorZ.java | 1 - .../structs/Result_CVec_CVec_u8ZZNoneZ.java | 1 - .../structs/Result_CVec_SignatureZNoneZ.java | 1 - .../Result_CVec_u8ZPeerHandleErrorZ.java | 1 - ...esult_ChannelAnnouncementDecodeErrorZ.java | 1 - .../Result_ChannelConfigDecodeErrorZ.java | 1 - .../Result_ChannelFeaturesDecodeErrorZ.java | 1 - .../Result_ChannelInfoDecodeErrorZ.java | 1 - ...sult_ChannelMonitorUpdateDecodeErrorZ.java | 1 - .../Result_ChannelPublicKeysDecodeErrorZ.java | 1 - ...Result_ChannelReestablishDecodeErrorZ.java | 1 - ...nnelTransactionParametersDecodeErrorZ.java | 1 - .../Result_ChannelUpdateDecodeErrorZ.java | 1 - .../Result_ClosingSignedDecodeErrorZ.java | 1 - .../Result_CommitmentSignedDecodeErrorZ.java | 1 - ...ult_CommitmentTransactionDecodeErrorZ.java | 1 - ...nnelTransactionParametersDecodeErrorZ.java | 1 - ...lt_DirectionalChannelInfoDecodeErrorZ.java | 1 - .../Result_ErrorMessageDecodeErrorZ.java | 1 - .../Result_FundingCreatedDecodeErrorZ.java | 1 - .../Result_FundingLockedDecodeErrorZ.java | 1 - .../Result_FundingSignedDecodeErrorZ.java | 1 - ...ult_GossipTimestampFilterDecodeErrorZ.java | 1 - ...lt_HTLCOutputInCommitmentDecodeErrorZ.java | 1 - .../Result_HTLCUpdateDecodeErrorZ.java | 1 - ...lderCommitmentTransactionDecodeErrorZ.java | 1 - .../Result_InMemorySignerDecodeErrorZ.java | 1 - .../ldk/structs/Result_InitDecodeErrorZ.java | 1 - .../Result_InitFeaturesDecodeErrorZ.java | 1 - .../org/ldk/structs/Result_NetAddressu8Z.java | 1 - .../Result_NetworkGraphDecodeErrorZ.java | 1 - .../Result_NodeAnnouncementDecodeErrorZ.java | 1 - ...sult_NodeAnnouncementInfoDecodeErrorZ.java | 1 - .../Result_NodeFeaturesDecodeErrorZ.java | 1 - .../structs/Result_NodeInfoDecodeErrorZ.java | 1 - .../org/ldk/structs/Result_NoneAPIErrorZ.java | 1 - .../Result_NoneChannelMonitorUpdateErrZ.java | 1 - .../structs/Result_NoneLightningErrorZ.java | 1 - .../Result_NoneMonitorUpdateErrorZ.java | 1 - .../Result_NonePaymentSendFailureZ.java | 1 - .../structs/Result_NonePeerHandleErrorZ.java | 1 - .../Result_OpenChannelDecodeErrorZ.java | 1 - .../structs/Result_OutPointDecodeErrorZ.java | 1 - .../ldk/structs/Result_PingDecodeErrorZ.java | 1 - .../ldk/structs/Result_PongDecodeErrorZ.java | 1 - .../ldk/structs/Result_PublicKeyErrorZ.java | 1 - .../Result_QueryChannelRangeDecodeErrorZ.java | 1 - ...sult_QueryShortChannelIdsDecodeErrorZ.java | 1 - .../Result_ReplyChannelRangeDecodeErrorZ.java | 1 - ...t_ReplyShortChannelIdsEndDecodeErrorZ.java | 1 - .../Result_RevokeAndACKDecodeErrorZ.java | 1 - .../ldk/structs/Result_RouteDecodeErrorZ.java | 1 - .../structs/Result_RouteLightningErrorZ.java | 1 - .../Result_RoutingFeesDecodeErrorZ.java | 1 - .../ldk/structs/Result_SecretKeyErrorZ.java | 1 - .../structs/Result_ShutdownDecodeErrorZ.java | 1 - .../ldk/structs/Result_SignDecodeErrorZ.java | 1 - .../ldk/structs/Result_SignatureNoneZ.java | 1 - ...SpendableOutputDescriptorDecodeErrorZ.java | 1 - .../ldk/structs/Result_TransactionNoneZ.java | 1 - ...ult_TrustedCommitmentTransactionNoneZ.java | 1 - .../Result_TxCreationKeysDecodeErrorZ.java | 1 - .../structs/Result_TxCreationKeysErrorZ.java | 1 - .../ldk/structs/Result_TxOutAccessErrorZ.java | 1 - ...signedChannelAnnouncementDecodeErrorZ.java | 1 - ...ult_UnsignedChannelUpdateDecodeErrorZ.java | 1 - ..._UnsignedNodeAnnouncementDecodeErrorZ.java | 1 - .../Result_UpdateAddHTLCDecodeErrorZ.java | 1 - .../Result_UpdateFailHTLCDecodeErrorZ.java | 1 - ...t_UpdateFailMalformedHTLCDecodeErrorZ.java | 1 - .../structs/Result_UpdateFeeDecodeErrorZ.java | 1 - .../Result_UpdateFulfillHTLCDecodeErrorZ.java | 1 - .../structs/Result_boolLightningErrorZ.java | 1 - .../structs/Result_boolPeerHandleErrorZ.java | 1 - .../java/org/ldk/structs/RevokeAndACK.java | 34 + src/main/java/org/ldk/structs/Route.java | 25 + src/main/java/org/ldk/structs/RouteHint.java | 31 + src/main/java/org/ldk/structs/RouteHop.java | 56 + .../java/org/ldk/structs/RoutingFees.java | 30 + .../ldk/structs/RoutingMessageHandler.java | 109 ++ src/main/java/org/ldk/structs/Shutdown.java | 30 + src/main/java/org/ldk/structs/Sign.java | 238 +++ .../org/ldk/structs/SocketDescriptor.java | 73 + .../structs/SpendableOutputDescriptor.java | 8 + .../StaticPaymentOutputDescriptor.java | 36 + .../structs/TrustedCommitmentTransaction.java | 24 + .../java/org/ldk/structs/TxCreationKeys.java | 68 + src/main/java/org/ldk/structs/TxOut.java | 1 - .../structs/UnsignedChannelAnnouncement.java | 55 + .../ldk/structs/UnsignedChannelUpdate.java | 61 + .../ldk/structs/UnsignedNodeAnnouncement.java | 50 + .../java/org/ldk/structs/UpdateAddHTLC.java | 43 + .../java/org/ldk/structs/UpdateFailHTLC.java | 25 + .../ldk/structs/UpdateFailMalformedHTLC.java | 31 + src/main/java/org/ldk/structs/UpdateFee.java | 28 + .../org/ldk/structs/UpdateFulfillHTLC.java | 34 + src/main/java/org/ldk/structs/UserConfig.java | 34 + .../java/org/ldk/structs/UtilMethods.java | 6 + src/main/java/org/ldk/structs/Watch.java | 71 + src/main/jni/bindings.c | 1274 ++++++++++------- src/main/jni/org_ldk_impl_bindings.h | 136 ++ ts/bindings.c | 1242 +++++++++------- ts/bindings.ts | 702 +++++---- ts/structs/ChannelMonitor.ts | 29 + 199 files changed, 7178 insertions(+), 1615 deletions(-) diff --git a/liblightningjni.so b/liblightningjni.so index 1eb4cbbf63eb5f8f44484be5945b64253bf8d66a..3db2dbafce8056b02fb92c245211d7994f1b668b 100755 GIT binary patch delta 1459077 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%0DqX0q{W%INx^sxiL4`AJho# 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�Q9?l}CKz?#A7SaKUx%6U_v@dTlY{D^btk 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 z zn|emSwh~$bF~qYVIK=dHnYOKWl^)LG?uLStHVZ<�x4s8>PD)R@5Kn`+rgYR9)IN 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[JR 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 z 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

^g2Qd-)@_IH@84IbZIfGjbtF_^? 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⪻%t+4 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 z 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

mEQI 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 or1_=XZ`vL!BC@bI7v`Q~w[] txdata, int height) { bindings.ChainMonitor_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(txdata_conv_24 -> bindings.C2Tuple_usizeTransactionZ_new(txdata_conv_24.a, txdata_conv_24.b)).toArray(), height); /* TODO 2 TwoTuple */; } + /** + * Dispatches to per-channel monitors, which are responsible for updating their on-chain view + * of a channel based on the disconnected block. See [`ChannelMonitor::block_disconnected`] for + * details. + * + * [`ChannelMonitor::block_disconnected`]: ../channelmonitor/struct.ChannelMonitor.html#method.block_disconnected + */ public void block_disconnected(byte[] header, int disconnected_height) { bindings.ChainMonitor_block_disconnected(this.ptr, header, disconnected_height); } + /** + * Creates a new `ChainMonitor` used to watch on-chain activity pertaining to channels. + * + * When an optional chain source implementing [`chain::Filter`] is provided, the chain monitor + * will call back to it indicating transactions and outputs of interest. This allows clients to + * 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. + * + * [`chain::Filter`]: ../trait.Filter.html + */ public static ChainMonitor constructor_new(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); ChainMonitor ret_hu_conv = new ChainMonitor(null, ret); @@ -35,6 +81,10 @@ public class ChainMonitor extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new Watch which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned Watch must be freed before this_arg is + */ public Watch as_Watch() { long ret = bindings.ChainMonitor_as_Watch(this.ptr); Watch ret_hu_conv = new Watch(null, ret); @@ -42,6 +92,10 @@ public class ChainMonitor extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new EventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned EventsProvider must be freed before this_arg is + */ public EventsProvider as_EventsProvider() { long ret = bindings.ChainMonitor_as_EventsProvider(this.ptr); EventsProvider ret_hu_conv = new EventsProvider(null, ret); diff --git a/src/main/java/org/ldk/structs/ChainParameters.java b/src/main/java/org/ldk/structs/ChainParameters.java index 06e56937..f1cafe33 100644 --- a/src/main/java/org/ldk/structs/ChainParameters.java +++ b/src/main/java/org/ldk/structs/ChainParameters.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Chain-related parameters used to construct a new `ChannelManager`. + * + * Typically, the block-specific parameters are derived from the best block hash for the network, + * as a newly constructed `ChannelManager` will not have created any channels yet. These parameters + * are not needed when deserializing a previously constructed `ChannelManager`. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChainParameters extends CommonBase { ChainParameters(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +22,58 @@ public class ChainParameters extends CommonBase { if (ptr != 0) { bindings.ChainParameters_free(ptr); } } + /** + * The network for determining the `chain_hash` in Lightning messages. + */ public LDKNetwork get_network() { LDKNetwork ret = bindings.ChainParameters_get_network(this.ptr); return ret; } + /** + * The network for determining the `chain_hash` in Lightning messages. + */ public void set_network(LDKNetwork val) { bindings.ChainParameters_set_network(this.ptr, val); } + /** + * The hash of the latest block successfully connected. + */ public byte[] get_latest_hash() { byte[] ret = bindings.ChainParameters_get_latest_hash(this.ptr); return ret; } + /** + * The hash of the latest block successfully connected. + */ public void set_latest_hash(byte[] val) { bindings.ChainParameters_set_latest_hash(this.ptr, val); } + /** + * The height of the latest block successfully connected. + * + * Used to track on-chain channel funding outputs and send payments with reliable timelocks. + */ public long get_latest_height() { long ret = bindings.ChainParameters_get_latest_height(this.ptr); return ret; } + /** + * The height of the latest block successfully connected. + * + * Used to track on-chain channel funding outputs and send payments with reliable timelocks. + */ public void set_latest_height(long val) { bindings.ChainParameters_set_latest_height(this.ptr, val); } + /** + * Constructs a new ChainParameters given each field + */ public static ChainParameters constructor_new(LDKNetwork network_arg, byte[] latest_hash_arg, long latest_height_arg) { long ret = bindings.ChainParameters_new(network_arg, latest_hash_arg, latest_height_arg); ChainParameters ret_hu_conv = new ChainParameters(null, ret); diff --git a/src/main/java/org/ldk/structs/ChannelAnnouncement.java b/src/main/java/org/ldk/structs/ChannelAnnouncement.java index 52c88eac..447b9bf0 100644 --- a/src/main/java/org/ldk/structs/ChannelAnnouncement.java +++ b/src/main/java/org/ldk/structs/ChannelAnnouncement.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A channel_announcement message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelAnnouncement extends CommonBase { ChannelAnnouncement(Object _dummy, long ptr) { super(ptr); } @@ -14,42 +18,69 @@ public class ChannelAnnouncement extends CommonBase { if (ptr != 0) { bindings.ChannelAnnouncement_free(ptr); } } + /** + * Authentication of the announcement by the first public node + */ public byte[] get_node_signature_1() { byte[] ret = bindings.ChannelAnnouncement_get_node_signature_1(this.ptr); return ret; } + /** + * Authentication of the announcement by the first public node + */ public void set_node_signature_1(byte[] val) { bindings.ChannelAnnouncement_set_node_signature_1(this.ptr, val); } + /** + * Authentication of the announcement by the second public node + */ public byte[] get_node_signature_2() { byte[] ret = bindings.ChannelAnnouncement_get_node_signature_2(this.ptr); return ret; } + /** + * Authentication of the announcement by the second public node + */ public void set_node_signature_2(byte[] val) { bindings.ChannelAnnouncement_set_node_signature_2(this.ptr, val); } + /** + * Proof of funding UTXO ownership by the first public node + */ public byte[] get_bitcoin_signature_1() { byte[] ret = bindings.ChannelAnnouncement_get_bitcoin_signature_1(this.ptr); return ret; } + /** + * Proof of funding UTXO ownership by the first public node + */ public void set_bitcoin_signature_1(byte[] val) { bindings.ChannelAnnouncement_set_bitcoin_signature_1(this.ptr, val); } + /** + * Proof of funding UTXO ownership by the second public node + */ public byte[] get_bitcoin_signature_2() { byte[] ret = bindings.ChannelAnnouncement_get_bitcoin_signature_2(this.ptr); return ret; } + /** + * Proof of funding UTXO ownership by the second public node + */ public void set_bitcoin_signature_2(byte[] val) { bindings.ChannelAnnouncement_set_bitcoin_signature_2(this.ptr, val); } + /** + * The actual announcement + */ public UnsignedChannelAnnouncement get_contents() { long ret = bindings.ChannelAnnouncement_get_contents(this.ptr); UnsignedChannelAnnouncement ret_hu_conv = new UnsignedChannelAnnouncement(null, ret); @@ -57,11 +88,17 @@ public class ChannelAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * The actual announcement + */ public void set_contents(UnsignedChannelAnnouncement val) { bindings.ChannelAnnouncement_set_contents(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new ChannelAnnouncement given each field + */ public static ChannelAnnouncement constructor_new(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); ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); @@ -70,6 +107,9 @@ public class ChannelAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelAnnouncement + */ public ChannelAnnouncement clone() { long ret = bindings.ChannelAnnouncement_clone(this.ptr); ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); @@ -77,11 +117,17 @@ public class ChannelAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelAnnouncement object into a byte array which can be read by ChannelAnnouncement_read + */ public byte[] write() { byte[] ret = bindings.ChannelAnnouncement_write(this.ptr); return ret; } + /** + * Read a ChannelAnnouncement from a byte array, created by ChannelAnnouncement_write + */ public static Result_ChannelAnnouncementDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelAnnouncement_read(ser); Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelConfig.java b/src/main/java/org/ldk/structs/ChannelConfig.java index 5af68d38..f465f6cf 100644 --- a/src/main/java/org/ldk/structs/ChannelConfig.java +++ b/src/main/java/org/ldk/structs/ChannelConfig.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Options which apply on a per-channel basis and may change at runtime or based on negotiation + * with our counterparty. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelConfig extends CommonBase { ChannelConfig(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +19,102 @@ public class ChannelConfig extends CommonBase { if (ptr != 0) { bindings.ChannelConfig_free(ptr); } } + /** + * Amount (in millionths of a satoshi) the channel will charge per transferred satoshi. + * This may be allowed to change at runtime in a later update, however doing so must result in + * update messages sent to notify all nodes of our updated relay fee. + * + * Default value: 0. + */ public int get_fee_proportional_millionths() { int ret = bindings.ChannelConfig_get_fee_proportional_millionths(this.ptr); return ret; } + /** + * Amount (in millionths of a satoshi) the channel will charge per transferred satoshi. + * This may be allowed to change at runtime in a later update, however doing so must result in + * update messages sent to notify all nodes of our updated relay fee. + * + * Default value: 0. + */ public void set_fee_proportional_millionths(int val) { bindings.ChannelConfig_set_fee_proportional_millionths(this.ptr, val); } + /** + * Set to announce the channel publicly and notify all nodes that they can route via this + * channel. + * + * This should only be set to true for nodes which expect to be online reliably. + * + * As the node which funds a channel picks this value this will only apply for new outbound + * channels unless ChannelHandshakeLimits::force_announced_channel_preferences is set. + * + * This cannot be changed after the initial channel handshake. + * + * Default value: false. + */ public boolean get_announced_channel() { boolean ret = bindings.ChannelConfig_get_announced_channel(this.ptr); return ret; } + /** + * Set to announce the channel publicly and notify all nodes that they can route via this + * channel. + * + * This should only be set to true for nodes which expect to be online reliably. + * + * As the node which funds a channel picks this value this will only apply for new outbound + * channels unless ChannelHandshakeLimits::force_announced_channel_preferences is set. + * + * This cannot be changed after the initial channel handshake. + * + * Default value: false. + */ public void set_announced_channel(boolean val) { bindings.ChannelConfig_set_announced_channel(this.ptr, val); } + /** + * When set, we commit to an upfront shutdown_pubkey at channel open. If our counterparty + * supports it, they will then enforce the mutual-close output to us matches what we provided + * at intialization, preventing us from closing to an alternate pubkey. + * + * This is set to true by default to provide a slight increase in security, though ultimately + * any attacker who is able to take control of a channel can just as easily send the funds via + * lightning payments, so we never require that our counterparties support this option. + * + * This cannot be changed after a channel has been initialized. + * + * Default value: true. + */ public boolean get_commit_upfront_shutdown_pubkey() { boolean ret = bindings.ChannelConfig_get_commit_upfront_shutdown_pubkey(this.ptr); return ret; } + /** + * When set, we commit to an upfront shutdown_pubkey at channel open. If our counterparty + * supports it, they will then enforce the mutual-close output to us matches what we provided + * at intialization, preventing us from closing to an alternate pubkey. + * + * This is set to true by default to provide a slight increase in security, though ultimately + * any attacker who is able to take control of a channel can just as easily send the funds via + * lightning payments, so we never require that our counterparties support this option. + * + * This cannot be changed after a channel has been initialized. + * + * Default value: true. + */ public void set_commit_upfront_shutdown_pubkey(boolean val) { bindings.ChannelConfig_set_commit_upfront_shutdown_pubkey(this.ptr, val); } + /** + * Constructs a new ChannelConfig given each field + */ public static ChannelConfig constructor_new(int fee_proportional_millionths_arg, boolean announced_channel_arg, boolean commit_upfront_shutdown_pubkey_arg) { long ret = bindings.ChannelConfig_new(fee_proportional_millionths_arg, announced_channel_arg, commit_upfront_shutdown_pubkey_arg); ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); @@ -48,6 +122,9 @@ public class ChannelConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelConfig + */ public ChannelConfig clone() { long ret = bindings.ChannelConfig_clone(this.ptr); ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); @@ -55,6 +132,9 @@ public class ChannelConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a "default" ChannelConfig. See other documentaiton for details on what this implies. + */ public static ChannelConfig constructor_default() { long ret = bindings.ChannelConfig_default(); ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); @@ -62,11 +142,17 @@ public class ChannelConfig extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelConfig object into a byte array which can be read by ChannelConfig_read + */ public byte[] write() { byte[] ret = bindings.ChannelConfig_write(this.ptr); return ret; } + /** + * Read a ChannelConfig from a byte array, created by ChannelConfig_write + */ public static Result_ChannelConfigDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelConfig_read(ser); Result_ChannelConfigDecodeErrorZ ret_hu_conv = Result_ChannelConfigDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelDetails.java b/src/main/java/org/ldk/structs/ChannelDetails.java index 216c017b..2f34454c 100644 --- a/src/main/java/org/ldk/structs/ChannelDetails.java +++ b/src/main/java/org/ldk/structs/ChannelDetails.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Details of a channel, as returned by ChannelManager::list_channels and ChannelManager::list_usable_channels + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelDetails extends CommonBase { ChannelDetails(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,47 @@ public class ChannelDetails extends CommonBase { if (ptr != 0) { bindings.ChannelDetails_free(ptr); } } + /** + * The channel's ID (prior to funding transaction generation, this is a random 32 bytes, + * thereafter this is the txid of the funding transaction xor the funding transaction output). + * Note that this means this value is *not* persistent - it can change once during the + * lifetime of the channel. + */ public byte[] get_channel_id() { byte[] ret = bindings.ChannelDetails_get_channel_id(this.ptr); return ret; } + /** + * The channel's ID (prior to funding transaction generation, this is a random 32 bytes, + * thereafter this is the txid of the funding transaction xor the funding transaction output). + * Note that this means this value is *not* persistent - it can change once during the + * lifetime of the channel. + */ public void set_channel_id(byte[] val) { bindings.ChannelDetails_set_channel_id(this.ptr, val); } + /** + * The node_id of our counterparty + */ public byte[] get_remote_network_id() { byte[] ret = bindings.ChannelDetails_get_remote_network_id(this.ptr); return ret; } + /** + * The node_id of our counterparty + */ public void set_remote_network_id(byte[] val) { bindings.ChannelDetails_set_remote_network_id(this.ptr, val); } + /** + * The Features the channel counterparty provided upon last connection. + * Useful for routing as it is the most up-to-date copy of the counterparty's features and + * many routing-relevant features are present in the init context. + */ public InitFeatures get_counterparty_features() { long ret = bindings.ChannelDetails_get_counterparty_features(this.ptr); InitFeatures ret_hu_conv = new InitFeatures(null, ret); @@ -39,56 +66,110 @@ public class ChannelDetails extends CommonBase { return ret_hu_conv; } + /** + * The Features the channel counterparty provided upon last connection. + * Useful for routing as it is the most up-to-date copy of the counterparty's features and + * many routing-relevant features are present in the init context. + */ public void set_counterparty_features(InitFeatures val) { bindings.ChannelDetails_set_counterparty_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The value, in satoshis, of this channel as appears in the funding output + */ public long get_channel_value_satoshis() { long ret = bindings.ChannelDetails_get_channel_value_satoshis(this.ptr); return ret; } + /** + * The value, in satoshis, of this channel as appears in the funding output + */ public void set_channel_value_satoshis(long val) { bindings.ChannelDetails_set_channel_value_satoshis(this.ptr, val); } + /** + * The user_id passed in to create_channel, or 0 if the channel was inbound. + */ public long get_user_id() { long ret = bindings.ChannelDetails_get_user_id(this.ptr); return ret; } + /** + * The user_id passed in to create_channel, or 0 if the channel was inbound. + */ public void set_user_id(long val) { bindings.ChannelDetails_set_user_id(this.ptr, val); } + /** + * The available outbound capacity for sending HTLCs to the remote peer. This does not include + * any pending HTLCs which are not yet fully resolved (and, thus, who's balance is not + * available for inclusion in new outbound HTLCs). This further does not include any pending + * outgoing HTLCs which are awaiting some other resolution to be sent. + */ public long get_outbound_capacity_msat() { long ret = bindings.ChannelDetails_get_outbound_capacity_msat(this.ptr); return ret; } + /** + * The available outbound capacity for sending HTLCs to the remote peer. This does not include + * any pending HTLCs which are not yet fully resolved (and, thus, who's balance is not + * available for inclusion in new outbound HTLCs). This further does not include any pending + * outgoing HTLCs which are awaiting some other resolution to be sent. + */ public void set_outbound_capacity_msat(long val) { bindings.ChannelDetails_set_outbound_capacity_msat(this.ptr, val); } + /** + * The available inbound capacity for the remote peer to send HTLCs to us. This does not + * include any pending HTLCs which are not yet fully resolved (and, thus, who's balance is not + * available for inclusion in new inbound HTLCs). + * Note that there are some corner cases not fully handled here, so the actual available + * inbound capacity may be slightly higher than this. + */ public long get_inbound_capacity_msat() { long ret = bindings.ChannelDetails_get_inbound_capacity_msat(this.ptr); return ret; } + /** + * The available inbound capacity for the remote peer to send HTLCs to us. This does not + * include any pending HTLCs which are not yet fully resolved (and, thus, who's balance is not + * available for inclusion in new inbound HTLCs). + * Note that there are some corner cases not fully handled here, so the actual available + * inbound capacity may be slightly higher than this. + */ public void set_inbound_capacity_msat(long val) { bindings.ChannelDetails_set_inbound_capacity_msat(this.ptr, val); } + /** + * True if the channel is (a) confirmed and funding_locked messages have been exchanged, (b) + * the peer is connected, and (c) no monitor update failure is pending resolution. + */ public boolean get_is_live() { boolean ret = bindings.ChannelDetails_get_is_live(this.ptr); return ret; } + /** + * True if the channel is (a) confirmed and funding_locked messages have been exchanged, (b) + * the peer is connected, and (c) no monitor update failure is pending resolution. + */ public void set_is_live(boolean val) { bindings.ChannelDetails_set_is_live(this.ptr, val); } + /** + * Creates a copy of the ChannelDetails + */ public ChannelDetails clone() { long ret = bindings.ChannelDetails_clone(this.ptr); ChannelDetails ret_hu_conv = new ChannelDetails(null, ret); diff --git a/src/main/java/org/ldk/structs/ChannelFeatures.java b/src/main/java/org/ldk/structs/ChannelFeatures.java index 7b10e51b..bac024ad 100644 --- a/src/main/java/org/ldk/structs/ChannelFeatures.java +++ b/src/main/java/org/ldk/structs/ChannelFeatures.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Features used within a `channel_announcement` message. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelFeatures extends CommonBase { ChannelFeatures(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class ChannelFeatures extends CommonBase { if (ptr != 0) { bindings.ChannelFeatures_free(ptr); } } + /** + * Creates a copy of the ChannelFeatures + */ public ChannelFeatures clone() { long ret = bindings.ChannelFeatures_clone(this.ptr); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -21,6 +28,9 @@ public class ChannelFeatures extends CommonBase { return ret_hu_conv; } + /** + * Create a blank Features with no features set + */ public static ChannelFeatures constructor_empty() { long ret = bindings.ChannelFeatures_empty(); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -28,6 +38,11 @@ public class ChannelFeatures extends CommonBase { return ret_hu_conv; } + /** + * Creates features known by the implementation as defined by [`T::KNOWN_FEATURE_FLAGS`]. + * + * [`T::KNOWN_FEATURE_FLAGS`]: sealed/trait.Context.html#associatedconstant.KNOWN_FEATURE_FLAGS + */ public static ChannelFeatures constructor_known() { long ret = bindings.ChannelFeatures_known(); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -35,11 +50,17 @@ public class ChannelFeatures extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelFeatures object into a byte array which can be read by ChannelFeatures_read + */ public byte[] write() { byte[] ret = bindings.ChannelFeatures_write(this.ptr); return ret; } + /** + * Read a ChannelFeatures from a byte array, created by ChannelFeatures_write + */ public static Result_ChannelFeaturesDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelFeatures_read(ser); Result_ChannelFeaturesDecodeErrorZ ret_hu_conv = Result_ChannelFeaturesDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java b/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java index 730d50ad..3bab616c 100644 --- a/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java +++ b/src/main/java/org/ldk/structs/ChannelHandshakeConfig.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Configuration we set when applicable. + * + * Default::default() provides sane defaults. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelHandshakeConfig extends CommonBase { ChannelHandshakeConfig(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +20,96 @@ public class ChannelHandshakeConfig extends CommonBase { if (ptr != 0) { bindings.ChannelHandshakeConfig_free(ptr); } } + /** + * Confirmations we will wait for before considering the channel locked in. + * Applied only for inbound channels (see ChannelHandshakeLimits::max_minimum_depth for the + * equivalent limit applied to outbound channels). + * + * Default value: 6. + */ public int get_minimum_depth() { int ret = bindings.ChannelHandshakeConfig_get_minimum_depth(this.ptr); return ret; } + /** + * Confirmations we will wait for before considering the channel locked in. + * Applied only for inbound channels (see ChannelHandshakeLimits::max_minimum_depth for the + * equivalent limit applied to outbound channels). + * + * Default value: 6. + */ public void set_minimum_depth(int val) { bindings.ChannelHandshakeConfig_set_minimum_depth(this.ptr, val); } + /** + * Set to the amount of time we require our counterparty to wait to claim their money. + * + * It's one of the main parameter of our security model. We (or one of our watchtowers) MUST + * be online to check for peer having broadcast a revoked transaction to steal our funds + * at least once every our_to_self_delay blocks. + * + * Meanwhile, asking for a too high delay, we bother peer to freeze funds for nothing in + * case of an honest unilateral channel close, which implicitly decrease the economic value of + * our channel. + * + * Default value: BREAKDOWN_TIMEOUT (currently 144), we enforce it as a minimum at channel + * opening so you can tweak config to ask for more security, not less. + */ public short get_our_to_self_delay() { short ret = bindings.ChannelHandshakeConfig_get_our_to_self_delay(this.ptr); return ret; } + /** + * Set to the amount of time we require our counterparty to wait to claim their money. + * + * It's one of the main parameter of our security model. We (or one of our watchtowers) MUST + * be online to check for peer having broadcast a revoked transaction to steal our funds + * at least once every our_to_self_delay blocks. + * + * Meanwhile, asking for a too high delay, we bother peer to freeze funds for nothing in + * case of an honest unilateral channel close, which implicitly decrease the economic value of + * our channel. + * + * Default value: BREAKDOWN_TIMEOUT (currently 144), we enforce it as a minimum at channel + * opening so you can tweak config to ask for more security, not less. + */ public void set_our_to_self_delay(short val) { bindings.ChannelHandshakeConfig_set_our_to_self_delay(this.ptr, val); } + /** + * Set to the smallest value HTLC we will accept to process. + * + * This value is sent to our counterparty on channel-open and we close the channel any time + * our counterparty misbehaves by sending us an HTLC with a value smaller than this. + * + * Default value: 1. If the value is less than 1, it is ignored and set to 1, as is required + * by the protocol. + */ public long get_our_htlc_minimum_msat() { long ret = bindings.ChannelHandshakeConfig_get_our_htlc_minimum_msat(this.ptr); return ret; } + /** + * Set to the smallest value HTLC we will accept to process. + * + * This value is sent to our counterparty on channel-open and we close the channel any time + * our counterparty misbehaves by sending us an HTLC with a value smaller than this. + * + * Default value: 1. If the value is less than 1, it is ignored and set to 1, as is required + * by the protocol. + */ public void set_our_htlc_minimum_msat(long val) { bindings.ChannelHandshakeConfig_set_our_htlc_minimum_msat(this.ptr, val); } + /** + * Constructs a new ChannelHandshakeConfig given each field + */ public static ChannelHandshakeConfig constructor_new(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); ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); @@ -48,6 +117,9 @@ public class ChannelHandshakeConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelHandshakeConfig + */ public ChannelHandshakeConfig clone() { long ret = bindings.ChannelHandshakeConfig_clone(this.ptr); ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); @@ -55,6 +127,9 @@ public class ChannelHandshakeConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a "default" ChannelHandshakeConfig. See other documentaiton for details on what this implies. + */ public static ChannelHandshakeConfig constructor_default() { long ret = bindings.ChannelHandshakeConfig_default(); ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); diff --git a/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java b/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java index 33eec305..e154ab0a 100644 --- a/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java +++ b/src/main/java/org/ldk/structs/ChannelHandshakeLimits.java @@ -5,6 +5,20 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Optional channel limits which are applied during channel creation. + * + * These limits are only applied to our counterparty's limits, not our own. + * + * Use 0/::max_value() as appropriate to skip checking. + * + * Provides sane defaults for most configurations. + * + * Most additional limits are disabled except those with which specify a default in individual + * field documentation. Note that this may result in barely-usable channels, but since they + * are applied mostly only to incoming channels that's not much of a problem. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelHandshakeLimits extends CommonBase { ChannelHandshakeLimits(Object _dummy, long ptr) { super(ptr); } @@ -14,96 +28,245 @@ public class ChannelHandshakeLimits extends CommonBase { if (ptr != 0) { bindings.ChannelHandshakeLimits_free(ptr); } } + /** + * Minimum allowed satoshis when a channel is funded, this is supplied by the sender and so + * only applies to inbound channels. + * + * Default value: 0. + */ public long get_min_funding_satoshis() { long ret = bindings.ChannelHandshakeLimits_get_min_funding_satoshis(this.ptr); return ret; } + /** + * Minimum allowed satoshis when a channel is funded, this is supplied by the sender and so + * only applies to inbound channels. + * + * Default value: 0. + */ public void set_min_funding_satoshis(long val) { bindings.ChannelHandshakeLimits_set_min_funding_satoshis(this.ptr, val); } + /** + * The remote node sets a limit on the minimum size of HTLCs we can send to them. This allows + * you to limit the maximum minimum-size they can require. + * + * Default value: u64::max_value. + */ public long get_max_htlc_minimum_msat() { long ret = bindings.ChannelHandshakeLimits_get_max_htlc_minimum_msat(this.ptr); return ret; } + /** + * The remote node sets a limit on the minimum size of HTLCs we can send to them. This allows + * you to limit the maximum minimum-size they can require. + * + * Default value: u64::max_value. + */ public void set_max_htlc_minimum_msat(long val) { bindings.ChannelHandshakeLimits_set_max_htlc_minimum_msat(this.ptr, val); } + /** + * The remote node sets a limit on the maximum value of pending HTLCs to them at any given + * time to limit their funds exposure to HTLCs. This allows you to set a minimum such value. + * + * Default value: 0. + */ public long get_min_max_htlc_value_in_flight_msat() { long ret = bindings.ChannelHandshakeLimits_get_min_max_htlc_value_in_flight_msat(this.ptr); return ret; } + /** + * The remote node sets a limit on the maximum value of pending HTLCs to them at any given + * time to limit their funds exposure to HTLCs. This allows you to set a minimum such value. + * + * Default value: 0. + */ public void set_min_max_htlc_value_in_flight_msat(long val) { bindings.ChannelHandshakeLimits_set_min_max_htlc_value_in_flight_msat(this.ptr, val); } + /** + * The remote node will require we keep a certain amount in direct payment to ourselves at all + * time, ensuring that we are able to be punished if we broadcast an old state. This allows to + * you limit the amount which we will have to keep to ourselves (and cannot use for HTLCs). + * + * Default value: u64::max_value. + */ public long get_max_channel_reserve_satoshis() { long ret = bindings.ChannelHandshakeLimits_get_max_channel_reserve_satoshis(this.ptr); return ret; } + /** + * The remote node will require we keep a certain amount in direct payment to ourselves at all + * time, ensuring that we are able to be punished if we broadcast an old state. This allows to + * you limit the amount which we will have to keep to ourselves (and cannot use for HTLCs). + * + * Default value: u64::max_value. + */ public void set_max_channel_reserve_satoshis(long val) { bindings.ChannelHandshakeLimits_set_max_channel_reserve_satoshis(this.ptr, val); } + /** + * The remote node sets a limit on the maximum number of pending HTLCs to them at any given + * time. This allows you to set a minimum such value. + * + * Default value: 0. + */ public short get_min_max_accepted_htlcs() { short ret = bindings.ChannelHandshakeLimits_get_min_max_accepted_htlcs(this.ptr); return ret; } + /** + * The remote node sets a limit on the maximum number of pending HTLCs to them at any given + * time. This allows you to set a minimum such value. + * + * Default value: 0. + */ public void set_min_max_accepted_htlcs(short val) { bindings.ChannelHandshakeLimits_set_min_max_accepted_htlcs(this.ptr, val); } + /** + * Outputs below a certain value will not be added to on-chain transactions. The dust value is + * required to always be higher than this value so this only applies to HTLC outputs (and + * potentially to-self outputs before any payments have been made). + * Thus, HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain. + * This setting allows you to set a minimum dust limit for their commitment transactions, + * reflecting the reality that tiny outputs are not considered standard transactions and will + * not propagate through the Bitcoin network. + * + * Default value: 546, the current dust limit on the Bitcoin network. + */ public long get_min_dust_limit_satoshis() { long ret = bindings.ChannelHandshakeLimits_get_min_dust_limit_satoshis(this.ptr); return ret; } + /** + * Outputs below a certain value will not be added to on-chain transactions. The dust value is + * required to always be higher than this value so this only applies to HTLC outputs (and + * potentially to-self outputs before any payments have been made). + * Thus, HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain. + * This setting allows you to set a minimum dust limit for their commitment transactions, + * reflecting the reality that tiny outputs are not considered standard transactions and will + * not propagate through the Bitcoin network. + * + * Default value: 546, the current dust limit on the Bitcoin network. + */ public void set_min_dust_limit_satoshis(long val) { bindings.ChannelHandshakeLimits_set_min_dust_limit_satoshis(this.ptr, val); } + /** + * Maximum allowed threshold above which outputs will not be generated in their commitment + * transactions. + * HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain. + * + * Default value: u64::max_value. + */ public long get_max_dust_limit_satoshis() { long ret = bindings.ChannelHandshakeLimits_get_max_dust_limit_satoshis(this.ptr); return ret; } + /** + * Maximum allowed threshold above which outputs will not be generated in their commitment + * transactions. + * HTLCs below this amount plus HTLC transaction fees are not enforceable on-chain. + * + * Default value: u64::max_value. + */ public void set_max_dust_limit_satoshis(long val) { bindings.ChannelHandshakeLimits_set_max_dust_limit_satoshis(this.ptr, val); } + /** + * Before a channel is usable the funding transaction will need to be confirmed by at least a + * certain number of blocks, specified by the node which is not the funder (as the funder can + * assume they aren't going to double-spend themselves). + * This config allows you to set a limit on the maximum amount of time to wait. + * + * Default value: 144, or roughly one day and only applies to outbound channels. + */ public int get_max_minimum_depth() { int ret = bindings.ChannelHandshakeLimits_get_max_minimum_depth(this.ptr); return ret; } + /** + * Before a channel is usable the funding transaction will need to be confirmed by at least a + * certain number of blocks, specified by the node which is not the funder (as the funder can + * assume they aren't going to double-spend themselves). + * This config allows you to set a limit on the maximum amount of time to wait. + * + * Default value: 144, or roughly one day and only applies to outbound channels. + */ public void set_max_minimum_depth(int val) { bindings.ChannelHandshakeLimits_set_max_minimum_depth(this.ptr, val); } + /** + * Set to force the incoming channel to match our announced channel preference in + * ChannelConfig. + * + * Default value: true, to make the default that no announced channels are possible (which is + * appropriate for any nodes which are not online very reliably). + */ public boolean get_force_announced_channel_preference() { boolean ret = bindings.ChannelHandshakeLimits_get_force_announced_channel_preference(this.ptr); return ret; } + /** + * Set to force the incoming channel to match our announced channel preference in + * ChannelConfig. + * + * Default value: true, to make the default that no announced channels are possible (which is + * appropriate for any nodes which are not online very reliably). + */ public void set_force_announced_channel_preference(boolean val) { bindings.ChannelHandshakeLimits_set_force_announced_channel_preference(this.ptr, val); } + /** + * Set to the amount of time we're willing to wait to claim money back to us. + * + * Not checking this value would be a security issue, as our peer would be able to set it to + * max relative lock-time (a year) and we would \"lose\" money as it would be locked for a long time. + * + * Default value: MAX_LOCAL_BREAKDOWN_TIMEOUT (1008), which we also enforce as a maximum value + * so you can tweak config to reduce the loss of having useless locked funds (if your peer accepts) + */ public short get_their_to_self_delay() { short ret = bindings.ChannelHandshakeLimits_get_their_to_self_delay(this.ptr); return ret; } + /** + * Set to the amount of time we're willing to wait to claim money back to us. + * + * Not checking this value would be a security issue, as our peer would be able to set it to + * max relative lock-time (a year) and we would \"lose\" money as it would be locked for a long time. + * + * Default value: MAX_LOCAL_BREAKDOWN_TIMEOUT (1008), which we also enforce as a maximum value + * so you can tweak config to reduce the loss of having useless locked funds (if your peer accepts) + */ public void set_their_to_self_delay(short val) { bindings.ChannelHandshakeLimits_set_their_to_self_delay(this.ptr, val); } + /** + * Constructs a new ChannelHandshakeLimits given each field + */ public static ChannelHandshakeLimits constructor_new(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, long min_dust_limit_satoshis_arg, long max_dust_limit_satoshis_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, min_dust_limit_satoshis_arg, max_dust_limit_satoshis_arg, max_minimum_depth_arg, force_announced_channel_preference_arg, their_to_self_delay_arg); ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); @@ -111,6 +274,9 @@ public class ChannelHandshakeLimits extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelHandshakeLimits + */ public ChannelHandshakeLimits clone() { long ret = bindings.ChannelHandshakeLimits_clone(this.ptr); ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); @@ -118,6 +284,9 @@ public class ChannelHandshakeLimits extends CommonBase { return ret_hu_conv; } + /** + * Creates a "default" ChannelHandshakeLimits. See other documentaiton for details on what this implies. + */ public static ChannelHandshakeLimits constructor_default() { long ret = bindings.ChannelHandshakeLimits_default(); ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); diff --git a/src/main/java/org/ldk/structs/ChannelInfo.java b/src/main/java/org/ldk/structs/ChannelInfo.java index 90f1f4b7..8206d572 100644 --- a/src/main/java/org/ldk/structs/ChannelInfo.java +++ b/src/main/java/org/ldk/structs/ChannelInfo.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Details about a channel (both directions). + * Received within a channel announcement. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelInfo extends CommonBase { ChannelInfo(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +19,9 @@ public class ChannelInfo extends CommonBase { if (ptr != 0) { bindings.ChannelInfo_free(ptr); } } + /** + * Protocol features of a channel communicated during its announcement + */ public ChannelFeatures get_features() { long ret = bindings.ChannelInfo_get_features(this.ptr); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -21,20 +29,32 @@ public class ChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Protocol features of a channel communicated during its announcement + */ public void set_features(ChannelFeatures val) { bindings.ChannelInfo_set_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Source node of the first direction of a channel + */ public byte[] get_node_one() { byte[] ret = bindings.ChannelInfo_get_node_one(this.ptr); return ret; } + /** + * Source node of the first direction of a channel + */ public void set_node_one(byte[] val) { bindings.ChannelInfo_set_node_one(this.ptr, val); } + /** + * Details about the first direction of a channel + */ public DirectionalChannelInfo get_one_to_two() { long ret = bindings.ChannelInfo_get_one_to_two(this.ptr); DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); @@ -42,20 +62,32 @@ public class ChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Details about the first direction of a channel + */ public void set_one_to_two(DirectionalChannelInfo val) { bindings.ChannelInfo_set_one_to_two(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Source node of the second direction of a channel + */ public byte[] get_node_two() { byte[] ret = bindings.ChannelInfo_get_node_two(this.ptr); return ret; } + /** + * Source node of the second direction of a channel + */ public void set_node_two(byte[] val) { bindings.ChannelInfo_set_node_two(this.ptr, val); } + /** + * Details about the second direction of a channel + */ public DirectionalChannelInfo get_two_to_one() { long ret = bindings.ChannelInfo_get_two_to_one(this.ptr); DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); @@ -63,11 +95,20 @@ public class ChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Details about the second direction of a channel + */ public void set_two_to_one(DirectionalChannelInfo val) { bindings.ChannelInfo_set_two_to_one(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * An initial announcement of the channel + * 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. + */ public ChannelAnnouncement get_announcement_message() { long ret = bindings.ChannelInfo_get_announcement_message(this.ptr); ChannelAnnouncement ret_hu_conv = new ChannelAnnouncement(null, ret); @@ -75,11 +116,20 @@ public class ChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * An initial announcement of the channel + * 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. + */ public void set_announcement_message(ChannelAnnouncement val) { bindings.ChannelInfo_set_announcement_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Creates a copy of the ChannelInfo + */ public ChannelInfo clone() { long ret = bindings.ChannelInfo_clone(this.ptr); ChannelInfo ret_hu_conv = new ChannelInfo(null, ret); @@ -87,11 +137,17 @@ public class ChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelInfo object into a byte array which can be read by ChannelInfo_read + */ public byte[] write() { byte[] ret = bindings.ChannelInfo_write(this.ptr); return ret; } + /** + * Read a ChannelInfo from a byte array, created by ChannelInfo_write + */ public static Result_ChannelInfoDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelInfo_read(ser); Result_ChannelInfoDecodeErrorZ ret_hu_conv = Result_ChannelInfoDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelManager.java b/src/main/java/org/ldk/structs/ChannelManager.java index 48780568..c5afb196 100644 --- a/src/main/java/org/ldk/structs/ChannelManager.java +++ b/src/main/java/org/ldk/structs/ChannelManager.java @@ -5,6 +5,45 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Manager which keeps track of a number of channels and sends messages to the appropriate + * channel, also tracking HTLC preimages and forwarding onion packets appropriately. + * + * Implements ChannelMessageHandler, handling the multi-channel parts and passing things through + * to individual Channels. + * + * Implements Writeable to write out all channel state to disk. Implies peer_disconnected() for + * all peers during write/read (though does not modify this instance, only the instance being + * serialized). This will result in any channels which have not yet exchanged funding_created (ie + * called funding_transaction_generated for outbound channels). + * + * Note that you can be a bit lazier about writing out ChannelManager than you can be with + * ChannelMonitors. With ChannelMonitors you MUST write each monitor update out to disk before + * returning from chain::Watch::watch_/update_channel, with ChannelManagers, writing updates + * happens out-of-band (and will prevent any other ChannelManager operations from occurring during + * the serialization process). If the deserialized version is out-of-date compared to the + * ChannelMonitors passed by reference to read(), those channels will be force-closed based on the + * ChannelMonitor state and no funds will be lost (mod on-chain transaction fees). + * + * Note that the deserializer is only implemented for (BlockHash, ChannelManager), which + * tells you the last block hash which was block_connect()ed. You MUST rescan any blocks along + * the \"reorg path\" (ie call block_disconnected() until you get to a common block and then call + * block_connected() to step towards your best block) upon deserialization before using the + * object! + * + * Note that ChannelManager is responsible for tracking liveness of its channels and generating + * ChannelUpdate messages informing peers that the channel is temporarily disabled. To avoid + * spam due to quick disconnection/reconnection, updates are not sent until the channel has been + * offline for a full minute. In order to track this, you must call + * timer_chan_freshness_every_min roughly once per minute, though it doesn't have to be perfect. + * + * Rather than using a plain ChannelManager, it is preferable to use either a SimpleArcChannelManager + * a SimpleRefChannelManager, for conciseness. See their documentation for more details, but + * essentially you should default to using a SimpleRefChannelManager, and use a + * SimpleArcChannelManager when you require a ChannelManager with a static lifetime, such as when + * you're using lightning-net-tokio. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelManager extends CommonBase { ChannelManager(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +53,20 @@ public class ChannelManager extends CommonBase { if (ptr != 0) { bindings.ChannelManager_free(ptr); } } + /** + * Constructs a new ChannelManager to hold several channels and route between them. + * + * This is the main \"logic hub\" for all channel-related actions, and implements + * ChannelMessageHandler. + * + * Non-proportional fees are fixed according to our risk using the provided fee estimator. + * + * panics if channel_value_satoshis is >= `MAX_FUNDING_SATOSHIS`! + * + * Users need to notify the new ChannelManager when a new block is connected or + * disconnected using its `block_connected` and `block_disconnected` methods, starting + * from after `params.latest_hash`. + */ public static ChannelManager constructor_new(FeeEstimator fee_est, Watch chain_monitor, BroadcasterInterface tx_broadcaster, Logger logger, KeysInterface keys_manager, UserConfig config, LDKNetwork params_network_arg, byte[] params_latest_hash_arg, long params_latest_height_arg) { 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, bindings.ChainParameters_new(params_network_arg, params_latest_hash_arg, params_latest_height_arg)); ChannelManager ret_hu_conv = new ChannelManager(null, ret); @@ -27,6 +80,20 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Creates a new outbound channel to the given remote node and with the given value. + * + * user_id will be provided back as user_channel_id in FundingGenerationReady and + * FundingBroadcastSafe events to allow tracking of which events correspond with which + * create_channel call. Note that user_channel_id defaults to 0 for inbound channels, so you + * may wish to avoid using 0 for user_id here. + * + * If successful, will generate a SendOpenChannel message event, so you should probably poll + * PeerManager::process_events afterwards. + * + * Raises APIError::APIMisuseError when channel_value_satoshis > 2**24 or push_msat is + * greater than channel_value_satoshis * 1k or channel_value_satoshis is < 1000. + */ 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); Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); @@ -34,6 +101,10 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Gets the list of open channels, in random order. See ChannelDetail field documentation for + * more information. + */ public ChannelDetails[] list_channels() { long[] ret = bindings.ChannelManager_list_channels(this.ptr); ChannelDetails[] ret_conv_16_arr = new ChannelDetails[ret.length]; @@ -46,6 +117,13 @@ public class ChannelManager extends CommonBase { return ret_conv_16_arr; } + /** + * Gets the list of usable channels, in random order. Useful as an argument to + * get_route to ensure non-announced channels are used. + * + * These are guaranteed to have their is_live value set to true, see the documentation for + * ChannelDetails::is_live for more info on exactly what the criteria are. + */ public ChannelDetails[] list_usable_channels() { long[] ret = bindings.ChannelManager_list_usable_channels(this.ptr); ChannelDetails[] ret_conv_16_arr = new ChannelDetails[ret.length]; @@ -58,22 +136,78 @@ public class ChannelManager extends CommonBase { return ret_conv_16_arr; } + /** + * Begins the process of closing a channel. After this call (plus some timeout), no new HTLCs + * will be accepted on the given channel, and after additional timeout/the closing of all + * pending HTLCs, the channel will be closed on chain. + * + * May generate a SendShutdown message event on success, which should be relayed. + */ public Result_NoneAPIErrorZ close_channel(byte[] channel_id) { long ret = bindings.ChannelManager_close_channel(this.ptr, channel_id); Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Force closes a channel, immediately broadcasting the latest local commitment transaction to + * the chain and rejecting new HTLCs on the given channel. Fails if channel_id is unknown to the manager. + */ public Result_NoneAPIErrorZ force_close_channel(byte[] channel_id) { long ret = bindings.ChannelManager_force_close_channel(this.ptr, channel_id); Result_NoneAPIErrorZ ret_hu_conv = Result_NoneAPIErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Force close all channels, immediately broadcasting the latest local commitment transaction + * for each to the chain and rejecting new HTLCs on each. + */ public void force_close_all_channels() { bindings.ChannelManager_force_close_all_channels(this.ptr); } + /** + * Sends a payment along a given route. + * + * Value parameters are provided via the last hop in route, see documentation for RouteHop + * fields for more info. + * + * Note that if the payment_hash already exists elsewhere (eg you're sending a duplicative + * payment), we don't do anything to stop you! We always try to ensure that if the provided + * next hop knows the preimage to payment_hash they can claim an additional amount as + * specified in the last hop in the route! Thus, you should probably do your own + * payment_preimage tracking (which you should already be doing as they represent \"proof of + * payment\") and prevent double-sends yourself. + * + * May generate SendHTLCs message(s) event on success, which should be relayed. + * + * Each path may have a different return value, and PaymentSendValue may return a Vec with + * each entry matching the corresponding-index entry in the route paths, see + * PaymentSendFailure for more info. + * + * In general, a path may raise: + * APIError::RouteError when an invalid route or forwarding parameter (cltv_delta, fee, + * node public key) is specified. + * APIError::ChannelUnavailable if the next-hop channel is not available for updates + * (including due to previous monitor update failure or new permanent monitor update + * failure). + * APIError::MonitorUpdateFailed if a new monitor update failure prevented sending the + * relevant updates. + * + * Note that depending on the type of the PaymentSendFailure the HTLC may have been + * irrevocably committed to on our end. In such a case, do NOT retry the payment with a + * different route unless you intend to pay twice! + * + * payment_secret is unrelated to payment_hash (or PaymentPreimage) and exists to authenticate + * the sender to the recipient and prevent payment-probing (deanonymization) attacks. For + * newer nodes, it will be provided to you in the invoice. If you do not have one, the Route + * must not contain multiple paths as multi-path payments require a recipient-provided + * payment_secret. + * 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. + */ 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); Result_NonePaymentSendFailureZ ret_hu_conv = Result_NonePaymentSendFailureZ.constr_from_ptr(ret); @@ -81,44 +215,138 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Call this upon creation of a funding transaction for the given channel. + * + * Note that ALL inputs in the transaction pointed to by funding_txo MUST spend SegWit outputs + * or your counterparty can steal your funds! + * + * Panics if a funding transaction has already been provided for this channel. + * + * May panic if the funding_txo is duplicative with some other channel (note that this should + * be trivially prevented by using unique funding transaction keys per-channel). + */ public void funding_transaction_generated(byte[] temporary_channel_id, OutPoint funding_txo) { bindings.ChannelManager_funding_transaction_generated(this.ptr, temporary_channel_id, funding_txo == null ? 0 : funding_txo.ptr & ~1); this.ptrs_to.add(funding_txo); } + /** + * Generates a signed node_announcement from the given arguments and creates a + * BroadcastNodeAnnouncement event. Note that such messages will be ignored unless peers have + * seen a channel_announcement from us (ie unless we have public channels open). + * + * RGB is a node \"color\" and alias is a printable human-readable string to describe this node + * to humans. They carry no in-protocol meaning. + * + * addresses represent the set (possibly empty) of socket addresses on which this node accepts + * incoming connections. These will be broadcast to the network, publicly tying these + * addresses together. If you wish to preserve user privacy, addresses should likely contain + * only Tor Onion addresses. + * + * Panics if addresses is absurdly large (more than 500). + */ public void broadcast_node_announcement(byte[] rgb, byte[] alias, NetAddress[] addresses) { bindings.ChannelManager_broadcast_node_announcement(this.ptr, rgb, alias, Arrays.stream(addresses).mapToLong(addresses_conv_12 -> addresses_conv_12.ptr).toArray()); /* TODO 2 NetAddress */; } + /** + * Processes HTLCs which are pending waiting on random forward delay. + * + * Should only really ever be called in response to a PendingHTLCsForwardable event. + * Will likely generate further events. + */ public void process_pending_htlc_forwards() { bindings.ChannelManager_process_pending_htlc_forwards(this.ptr); } + /** + * If a peer is disconnected we mark any channels with that peer as 'disabled'. + * After some time, if channels are still disabled we need to broadcast a ChannelUpdate + * to inform the network about the uselessness of these channels. + * + * This method handles all the details, and must be called roughly once per minute. + * + * Note that in some rare cases this may generate a `chain::Watch::update_channel` call. + */ public void timer_chan_freshness_every_min() { bindings.ChannelManager_timer_chan_freshness_every_min(this.ptr); } + /** + * Indicates that the preimage for payment_hash is unknown or the received amount is incorrect + * after a PaymentReceived event, failing the HTLC back to its origin and freeing resources + * along the path (including in our own channel on which we received it). + * Returns false if no payment was found to fail backwards, true if the process of failing the + * HTLC backwards has been started. + */ public boolean fail_htlc_backwards(byte[] payment_hash, byte[] payment_secret) { boolean ret = bindings.ChannelManager_fail_htlc_backwards(this.ptr, payment_hash, payment_secret); return ret; } + /** + * Provides a payment preimage in response to a PaymentReceived event, returning true and + * generating message events for the net layer to claim the payment, if possible. Thus, you + * should probably kick the net layer to go send messages if this returns true! + * + * You must specify the expected amounts for this HTLC, and we will only claim HTLCs + * available within a few percent of the expected amount. This is critical for several + * reasons : a) it avoids providing senders with `proof-of-payment` (in the form of the + * payment_preimage without having provided the full value and b) it avoids certain + * privacy-breaking recipient-probing attacks which may reveal payment activity to + * motivated attackers. + * + * Note that the privacy concerns in (b) are not relevant in payments with a payment_secret + * set. Thus, for such payments we will claim any payments which do not under-pay. + * + * May panic if called except in response to a PaymentReceived event. + */ public boolean claim_funds(byte[] payment_preimage, byte[] payment_secret, long expected_amount) { boolean ret = bindings.ChannelManager_claim_funds(this.ptr, payment_preimage, payment_secret, expected_amount); return ret; } + /** + * Gets the node_id held by this ChannelManager + */ public byte[] get_our_node_id() { byte[] ret = bindings.ChannelManager_get_our_node_id(this.ptr); return ret; } + /** + * Restores a single, given channel to normal operation after a + * ChannelMonitorUpdateErr::TemporaryFailure was returned from a channel monitor update + * operation. + * + * All ChannelMonitor updates up to and including highest_applied_update_id must have been + * fully committed in every copy of the given channels' ChannelMonitors. + * + * Note that there is no effect to calling with a highest_applied_update_id other than the + * current latest ChannelMonitorUpdate and one call to this function after multiple + * ChannelMonitorUpdateErr::TemporaryFailures is fine. The highest_applied_update_id field + * exists largely only to prevent races between this and concurrent update_monitor calls. + * + * Thus, the anticipated use is, at a high level: + * 1) You register a chain::Watch with this ChannelManager, + * 2) it stores each update to disk, and begins updating any remote (eg watchtower) copies of + * said ChannelMonitors as it can, returning ChannelMonitorUpdateErr::TemporaryFailures + * any time it cannot do so instantly, + * 3) update(s) are applied to each remote copy of a ChannelMonitor, + * 4) once all remote copies are updated, you call this function with the update_id that + * completed, and once it is the latest the Channel will be re-enabled. + */ public void channel_monitor_updated(OutPoint funding_txo, long highest_applied_update_id) { bindings.ChannelManager_channel_monitor_updated(this.ptr, funding_txo == null ? 0 : funding_txo.ptr & ~1, highest_applied_update_id); this.ptrs_to.add(funding_txo); } + /** + * Constructs a new MessageSendEventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned MessageSendEventsProvider must be freed before this_arg is + */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.ChannelManager_as_MessageSendEventsProvider(this.ptr); MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); @@ -126,6 +354,10 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new EventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned EventsProvider must be freed before this_arg is + */ public EventsProvider as_EventsProvider() { long ret = bindings.ChannelManager_as_EventsProvider(this.ptr); EventsProvider ret_hu_conv = new EventsProvider(null, ret); @@ -133,6 +365,10 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new Listen which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned Listen must be freed before this_arg is + */ public Listen as_Listen() { long ret = bindings.ChannelManager_as_Listen(this.ptr); Listen ret_hu_conv = new Listen(null, ret); @@ -140,19 +376,37 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Updates channel state based on transactions seen in a connected block. + */ public void block_connected(byte[] header, TwoTuple[] txdata, int height) { bindings.ChannelManager_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(txdata_conv_24 -> bindings.C2Tuple_usizeTransactionZ_new(txdata_conv_24.a, txdata_conv_24.b)).toArray(), height); /* TODO 2 TwoTuple */; } + /** + * Updates channel state based on a disconnected block. + * + * If necessary, the channel may be force-closed without letting the counterparty participate + * in the shutdown. + */ public void block_disconnected(byte[] header) { bindings.ChannelManager_block_disconnected(this.ptr, header); } + /** + * Blocks until ChannelManager needs to be persisted. Only one listener on + * `await_persistable_update` or `await_persistable_update_timeout` is guaranteed to be woken + * up. + */ public void await_persistable_update() { bindings.ChannelManager_await_persistable_update(this.ptr); } + /** + * Constructs a new ChannelMessageHandler which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned ChannelMessageHandler must be freed before this_arg is + */ public ChannelMessageHandler as_ChannelMessageHandler() { long ret = bindings.ChannelManager_as_ChannelMessageHandler(this.ptr); ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); @@ -160,6 +414,9 @@ public class ChannelManager extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelManager object into a byte array which can be read by ChannelManager_read + */ public byte[] write() { byte[] ret = bindings.ChannelManager_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java b/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java index 5653e5d4..87af037c 100644 --- a/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java +++ b/src/main/java/org/ldk/structs/ChannelManagerReadArgs.java @@ -5,6 +5,34 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Arguments for the creation of a ChannelManager that are not deserialized. + * + * At a high-level, the process for deserializing a ChannelManager and resuming normal operation + * is: + * 1) Deserialize all stored ChannelMonitors. + * 2) Deserialize the ChannelManager by filling in this struct and calling: + * <(BlockHash, ChannelManager)>::read(reader, args) + * This may result in closing some Channels if the ChannelMonitor is newer than the stored + * ChannelManager state to ensure no loss of funds. Thus, transactions may be broadcasted. + * 3) If you are not fetching full blocks, register all relevant ChannelMonitor outpoints the same + * way you would handle a `chain::Filter` call using ChannelMonitor::get_outputs_to_watch() and + * ChannelMonitor::get_funding_txo(). + * 4) Reconnect blocks on your ChannelMonitors. + * 5) Disconnect/connect blocks on the ChannelManager. + * 6) Move the ChannelMonitors into your local chain::Watch. + * + * Note that the ordering of #4-6 is not of importance, however all three must occur before you + * call any other methods on the newly-deserialized ChannelManager. + * + * Note that because some channels may be closed during deserialization, it is critical that you + * always deserialize only the latest version of a ChannelManager and ChannelMonitors available to + * you. If you deserialize an old ChannelManager (during which force-closure transactions may be + * broadcast), and then later deserialize a newer version of the same ChannelManager (which will + * not force-close the same channels but consider them live), you may end up revoking a state for + * which you've already broadcasted the transaction. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelManagerReadArgs extends CommonBase { ChannelManagerReadArgs(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +42,11 @@ public class ChannelManagerReadArgs extends CommonBase { if (ptr != 0) { bindings.ChannelManagerReadArgs_free(ptr); } } + /** + * The keys provider which will give us relevant keys. Some keys will be loaded during + * deserialization and KeysInterface::read_chan_signer will be used to read per-Channel + * signing data. + */ public KeysInterface get_keys_manager() { long ret = bindings.ChannelManagerReadArgs_get_keys_manager(this.ptr); KeysInterface ret_hu_conv = new KeysInterface(null, ret); @@ -21,11 +54,21 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * The keys provider which will give us relevant keys. Some keys will be loaded during + * deserialization and KeysInterface::read_chan_signer will be used to read per-Channel + * signing data. + */ public void set_keys_manager(KeysInterface val) { bindings.ChannelManagerReadArgs_set_keys_manager(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * The fee_estimator for use in the ChannelManager in the future. + * + * No calls to the FeeEstimator will be made during deserialization. + */ public FeeEstimator get_fee_estimator() { long ret = bindings.ChannelManagerReadArgs_get_fee_estimator(this.ptr); FeeEstimator ret_hu_conv = new FeeEstimator(null, ret); @@ -33,11 +76,23 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * The fee_estimator for use in the ChannelManager in the future. + * + * No calls to the FeeEstimator will be made during deserialization. + */ public void set_fee_estimator(FeeEstimator val) { bindings.ChannelManagerReadArgs_set_fee_estimator(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * The chain::Watch for use in the ChannelManager in the future. + * + * No calls to the chain::Watch will be made during deserialization. It is assumed that + * you have deserialized ChannelMonitors separately and will add them to your + * chain::Watch after deserializing this ChannelManager. + */ public Watch get_chain_monitor() { long ret = bindings.ChannelManagerReadArgs_get_chain_monitor(this.ptr); Watch ret_hu_conv = new Watch(null, ret); @@ -45,11 +100,23 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * The chain::Watch for use in the ChannelManager in the future. + * + * No calls to the chain::Watch will be made during deserialization. It is assumed that + * you have deserialized ChannelMonitors separately and will add them to your + * chain::Watch after deserializing this ChannelManager. + */ public void set_chain_monitor(Watch val) { bindings.ChannelManagerReadArgs_set_chain_monitor(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * The BroadcasterInterface which will be used in the ChannelManager in the future and may be + * used to broadcast the latest local commitment transactions of channels which must be + * force-closed during deserialization. + */ public BroadcasterInterface get_tx_broadcaster() { long ret = bindings.ChannelManagerReadArgs_get_tx_broadcaster(this.ptr); BroadcasterInterface ret_hu_conv = new BroadcasterInterface(null, ret); @@ -57,11 +124,20 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * The BroadcasterInterface which will be used in the ChannelManager in the future and may be + * used to broadcast the latest local commitment transactions of channels which must be + * force-closed during deserialization. + */ public void set_tx_broadcaster(BroadcasterInterface val) { bindings.ChannelManagerReadArgs_set_tx_broadcaster(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * The Logger for use in the ChannelManager and which may be used to log information during + * deserialization. + */ public Logger get_logger() { long ret = bindings.ChannelManagerReadArgs_get_logger(this.ptr); Logger ret_hu_conv = new Logger(null, ret); @@ -69,11 +145,19 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * The Logger for use in the ChannelManager and which may be used to log information during + * deserialization. + */ public void set_logger(Logger val) { bindings.ChannelManagerReadArgs_set_logger(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * Default settings used for new channels. Any existing channels will continue to use the + * runtime settings which were stored when the ChannelManager was serialized. + */ public UserConfig get_default_config() { long ret = bindings.ChannelManagerReadArgs_get_default_config(this.ptr); UserConfig ret_hu_conv = new UserConfig(null, ret); @@ -81,11 +165,20 @@ public class ChannelManagerReadArgs extends CommonBase { return ret_hu_conv; } + /** + * Default settings used for new channels. Any existing channels will continue to use the + * runtime settings which were stored when the ChannelManager was serialized. + */ public void set_default_config(UserConfig val) { bindings.ChannelManagerReadArgs_set_default_config(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Simple utility function to create a ChannelManagerReadArgs which creates the monitor + * HashMap for you. This is primarily useful for C bindings where it is not practical to + * populate a HashMap directly from C. + */ public static ChannelManagerReadArgs constructor_new(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()); ChannelManagerReadArgs ret_hu_conv = new ChannelManagerReadArgs(null, ret); diff --git a/src/main/java/org/ldk/structs/ChannelMessageHandler.java b/src/main/java/org/ldk/structs/ChannelMessageHandler.java index 2b9aebe4..5eaedc16 100644 --- a/src/main/java/org/ldk/structs/ChannelMessageHandler.java +++ b/src/main/java/org/ldk/structs/ChannelMessageHandler.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait to describe an object which can receive channel messages. + * + * Messages MAY be called in parallel when they originate from different their_node_ids, however + * they MUST NOT be called in parallel when the two calls have the same their_node_id. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelMessageHandler extends CommonBase { final bindings.LDKChannelMessageHandler bindings_instance; @@ -21,24 +27,84 @@ public class ChannelMessageHandler extends CommonBase { } public static interface ChannelMessageHandlerInterface { + /** + * Handle an incoming open_channel message from the given peer. + */ void handle_open_channel(byte[] their_node_id, InitFeatures their_features, OpenChannel msg); + /** + * Handle an incoming accept_channel message from the given peer. + */ void handle_accept_channel(byte[] their_node_id, InitFeatures their_features, AcceptChannel msg); + /** + * Handle an incoming funding_created message from the given peer. + */ void handle_funding_created(byte[] their_node_id, FundingCreated msg); + /** + * Handle an incoming funding_signed message from the given peer. + */ void handle_funding_signed(byte[] their_node_id, FundingSigned msg); + /** + * Handle an incoming funding_locked message from the given peer. + */ void handle_funding_locked(byte[] their_node_id, FundingLocked msg); + /** + * Handle an incoming shutdown message from the given peer. + */ void handle_shutdown(byte[] their_node_id, InitFeatures their_features, Shutdown msg); + /** + * Handle an incoming closing_signed message from the given peer. + */ void handle_closing_signed(byte[] their_node_id, ClosingSigned msg); + /** + * Handle an incoming update_add_htlc message from the given peer. + */ void handle_update_add_htlc(byte[] their_node_id, UpdateAddHTLC msg); + /** + * Handle an incoming update_fulfill_htlc message from the given peer. + */ void handle_update_fulfill_htlc(byte[] their_node_id, UpdateFulfillHTLC msg); + /** + * Handle an incoming update_fail_htlc message from the given peer. + */ void handle_update_fail_htlc(byte[] their_node_id, UpdateFailHTLC msg); + /** + * Handle an incoming update_fail_malformed_htlc message from the given peer. + */ void handle_update_fail_malformed_htlc(byte[] their_node_id, UpdateFailMalformedHTLC msg); + /** + * Handle an incoming commitment_signed message from the given peer. + */ void handle_commitment_signed(byte[] their_node_id, CommitmentSigned msg); + /** + * Handle an incoming revoke_and_ack message from the given peer. + */ void handle_revoke_and_ack(byte[] their_node_id, RevokeAndACK msg); + /** + * Handle an incoming update_fee message from the given peer. + */ void handle_update_fee(byte[] their_node_id, UpdateFee msg); + /** + * Handle an incoming announcement_signatures message from the given peer. + */ void handle_announcement_signatures(byte[] their_node_id, AnnouncementSignatures msg); + /** + * Indicates a connection to the peer failed/an existing connection was lost. If no connection + * is believed to be possible in the future (eg they're sending us messages we don't + * understand or indicate they require unknown feature bits), no_connection_possible is set + * and any outstanding channels should be failed. + */ void peer_disconnected(byte[] their_node_id, boolean no_connection_possible); + /** + * Handle a peer reconnecting, possibly generating channel_reestablish message(s). + */ void peer_connected(byte[] their_node_id, Init msg); + /** + * Handle an incoming channel_reestablish message from the given peer. + */ void handle_channel_reestablish(byte[] their_node_id, ChannelReestablish msg); + /** + * Handle an incoming error message from the given peer. + */ void handle_error(byte[] their_node_id, ErrorMessage msg); } private static class LDKChannelMessageHandlerHolder { ChannelMessageHandler held; } @@ -128,98 +194,158 @@ public class ChannelMessageHandler extends CommonBase { }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance); return impl_holder.held; } + /** + * Handle an incoming open_channel message from the given peer. + */ public void handle_open_channel(byte[] their_node_id, InitFeatures their_features, OpenChannel msg) { bindings.ChannelMessageHandler_handle_open_channel(this.ptr, their_node_id, their_features == null ? 0 : their_features.ptr & ~1, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(their_features); this.ptrs_to.add(msg); } + /** + * Handle an incoming accept_channel message from the given peer. + */ public void handle_accept_channel(byte[] their_node_id, InitFeatures their_features, AcceptChannel msg) { bindings.ChannelMessageHandler_handle_accept_channel(this.ptr, their_node_id, their_features == null ? 0 : their_features.ptr & ~1, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(their_features); this.ptrs_to.add(msg); } + /** + * Handle an incoming funding_created message from the given peer. + */ public void handle_funding_created(byte[] their_node_id, FundingCreated msg) { bindings.ChannelMessageHandler_handle_funding_created(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming funding_signed message from the given peer. + */ public void handle_funding_signed(byte[] their_node_id, FundingSigned msg) { bindings.ChannelMessageHandler_handle_funding_signed(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming funding_locked message from the given peer. + */ public void handle_funding_locked(byte[] their_node_id, FundingLocked msg) { bindings.ChannelMessageHandler_handle_funding_locked(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming shutdown message from the given peer. + */ public void handle_shutdown(byte[] their_node_id, InitFeatures their_features, Shutdown msg) { bindings.ChannelMessageHandler_handle_shutdown(this.ptr, their_node_id, their_features == null ? 0 : their_features.ptr & ~1, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(their_features); this.ptrs_to.add(msg); } + /** + * Handle an incoming closing_signed message from the given peer. + */ public void handle_closing_signed(byte[] their_node_id, ClosingSigned msg) { bindings.ChannelMessageHandler_handle_closing_signed(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming update_add_htlc message from the given peer. + */ public void handle_update_add_htlc(byte[] their_node_id, UpdateAddHTLC msg) { bindings.ChannelMessageHandler_handle_update_add_htlc(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming update_fulfill_htlc message from the given peer. + */ public void handle_update_fulfill_htlc(byte[] their_node_id, UpdateFulfillHTLC msg) { bindings.ChannelMessageHandler_handle_update_fulfill_htlc(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming update_fail_htlc message from the given peer. + */ public void handle_update_fail_htlc(byte[] their_node_id, UpdateFailHTLC msg) { bindings.ChannelMessageHandler_handle_update_fail_htlc(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming update_fail_malformed_htlc message from the given peer. + */ public void handle_update_fail_malformed_htlc(byte[] their_node_id, UpdateFailMalformedHTLC msg) { bindings.ChannelMessageHandler_handle_update_fail_malformed_htlc(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming commitment_signed message from the given peer. + */ public void handle_commitment_signed(byte[] their_node_id, CommitmentSigned msg) { bindings.ChannelMessageHandler_handle_commitment_signed(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming revoke_and_ack message from the given peer. + */ public void handle_revoke_and_ack(byte[] their_node_id, RevokeAndACK msg) { bindings.ChannelMessageHandler_handle_revoke_and_ack(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming update_fee message from the given peer. + */ public void handle_update_fee(byte[] their_node_id, UpdateFee msg) { bindings.ChannelMessageHandler_handle_update_fee(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming announcement_signatures message from the given peer. + */ public void handle_announcement_signatures(byte[] their_node_id, AnnouncementSignatures msg) { bindings.ChannelMessageHandler_handle_announcement_signatures(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Indicates a connection to the peer failed/an existing connection was lost. If no connection + * is believed to be possible in the future (eg they're sending us messages we don't + * understand or indicate they require unknown feature bits), no_connection_possible is set + * and any outstanding channels should be failed. + */ public void peer_disconnected(byte[] their_node_id, boolean no_connection_possible) { bindings.ChannelMessageHandler_peer_disconnected(this.ptr, their_node_id, no_connection_possible); } + /** + * Handle a peer reconnecting, possibly generating channel_reestablish message(s). + */ public void peer_connected(byte[] their_node_id, Init msg) { bindings.ChannelMessageHandler_peer_connected(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming channel_reestablish message from the given peer. + */ public void handle_channel_reestablish(byte[] their_node_id, ChannelReestablish msg) { bindings.ChannelMessageHandler_handle_channel_reestablish(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); } + /** + * Handle an incoming error message from the given peer. + */ public void handle_error(byte[] their_node_id, ErrorMessage msg) { bindings.ChannelMessageHandler_handle_error(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1); this.ptrs_to.add(msg); diff --git a/src/main/java/org/ldk/structs/ChannelMonitor.java b/src/main/java/org/ldk/structs/ChannelMonitor.java index 84f7f4e8..1ab69bc7 100644 --- a/src/main/java/org/ldk/structs/ChannelMonitor.java +++ b/src/main/java/org/ldk/structs/ChannelMonitor.java @@ -5,6 +5,25 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A ChannelMonitor handles chain events (blocks connected and disconnected) and generates + * on-chain transactions to ensure no loss of funds occurs. + * + * You MUST ensure that no ChannelMonitors for a given channel anywhere contain out-of-date + * information and are actively monitoring the chain. + * + * Pending Events or updated HTLCs which have not yet been read out by + * get_and_clear_pending_monitor_events or get_and_clear_pending_events are serialized to disk and + * reloaded at deserialize-time. Thus, you must ensure that, when handling events, all events + * gotten are fully handled before re-serializing the new state. + * + * Note that the deserializer is only implemented for (BlockHash, ChannelMonitor), which + * tells you the last block hash which was block_connect()ed. You MUST rescan any blocks along + * the \"reorg path\" (ie disconnecting blocks until you find a common ancestor from both the + * returned block hash and the the current chain and then reconnecting blocks to get to the + * best chain) upon deserializing the object! + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelMonitor extends CommonBase { ChannelMonitor(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +33,9 @@ public class ChannelMonitor extends CommonBase { if (ptr != 0) { bindings.ChannelMonitor_free(ptr); } } + /** + * Creates a copy of the ChannelMonitor + */ public ChannelMonitor clone() { long ret = bindings.ChannelMonitor_clone(this.ptr); ChannelMonitor ret_hu_conv = new ChannelMonitor(null, ret); @@ -21,11 +43,20 @@ public class ChannelMonitor extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelMonitor object into a byte array which can be read by ChannelMonitor_read + */ public byte[] write() { byte[] ret = bindings.ChannelMonitor_write(this.ptr); return ret; } + /** + * Updates a ChannelMonitor on the basis of some new information provided by the Channel + * itself. + * + * panics if the given update is not the next update by update_id. + */ 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); Result_NoneMonitorUpdateErrorZ ret_hu_conv = Result_NoneMonitorUpdateErrorZ.constr_from_ptr(ret); @@ -36,11 +67,18 @@ public class ChannelMonitor extends CommonBase { return ret_hu_conv; } + /** + * Gets the update_id from the latest ChannelMonitorUpdate which was applied to this + * ChannelMonitor. + */ public long get_latest_update_id() { long ret = bindings.ChannelMonitor_get_latest_update_id(this.ptr); return ret; } + /** + * Gets the funding transaction outpoint of the channel this ChannelMonitor is monitoring for. + */ public TwoTuple get_funding_txo() { long ret = bindings.ChannelMonitor_get_funding_txo(this.ptr); long ret_a = bindings.LDKC2Tuple_OutPointScriptZ_get_a(ret); @@ -54,6 +92,50 @@ public class ChannelMonitor extends CommonBase { return ret_conv; } + /** + * Gets a list of txids, with their output scripts (in the order they appear in the + * transaction), which we must learn about spends of via block_connected(). + */ + public TwoTuple[]>[] get_outputs_to_watch() { + long[] ret = bindings.ChannelMonitor_get_outputs_to_watch(this.ptr); + TwoTuple[]>[] ret_conv_47_arr = new TwoTuple[ret.length]; + for (int v = 0; v < ret.length; v++) { + long ret_conv_47 = ret[v]; + byte[] ret_conv_47_a = bindings.LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(ret_conv_47); + long[] ret_conv_47_b = bindings.LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(ret_conv_47); + TwoTuple[] ret_conv_47_b_conv_27_arr = new TwoTuple[ret_conv_47_b.length]; + for (int b = 0; b < ret_conv_47_b.length; b++) { + long ret_conv_47_b_conv_27 = ret_conv_47_b[b]; + int ret_conv_47_b_conv_27_a = bindings.LDKC2Tuple_u32ScriptZ_get_a(ret_conv_47_b_conv_27); + byte[] ret_conv_47_b_conv_27_b = bindings.LDKC2Tuple_u32ScriptZ_get_b(ret_conv_47_b_conv_27); + TwoTuple ret_conv_47_b_conv_27_conv = new TwoTuple(ret_conv_47_b_conv_27_a, ret_conv_47_b_conv_27_b, () -> { + bindings.C2Tuple_u32ScriptZ_free(ret_conv_47_b_conv_27); + }); + ret_conv_47_b_conv_27_arr[b] = ret_conv_47_b_conv_27_conv; + }; + TwoTuple[]> ret_conv_47_conv = new TwoTuple[]>(ret_conv_47_a, ret_conv_47_b_conv_27_arr); + // Warning: We may not free the C tuple object! + ret_conv_47_arr[v] = ret_conv_47_conv; + } + return ret_conv_47_arr; + } + + /** + * Loads the funding txo and outputs to watch into the given `chain::Filter` by repeatedly + * calling `chain::Filter::register_output` and `chain::Filter::register_tx` until all outputs + * have been registered. + */ + public void load_outputs_to_watch(Filter filter) { + bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, filter == null ? 0 : filter.ptr); + this.ptrs_to.add(filter); + } + + /** + * Get the list of HTLCs who's status has been updated on chain. This should be called by + * ChannelManager via [`chain::Watch::release_pending_monitor_events`]. + * + * [`chain::Watch::release_pending_monitor_events`]: ../trait.Watch.html#tymethod.release_pending_monitor_events + */ public MonitorEvent[] get_and_clear_pending_monitor_events() { long[] ret = bindings.ChannelMonitor_get_and_clear_pending_monitor_events(this.ptr); MonitorEvent[] ret_conv_14_arr = new MonitorEvent[ret.length]; @@ -66,6 +148,14 @@ public class ChannelMonitor extends CommonBase { return ret_conv_14_arr; } + /** + * Gets the list of pending events which were generated by previous actions, clearing the list + * in the process. + * + * This is called by ChainMonitor::get_and_clear_pending_events() and is equivalent to + * EventsProvider::get_and_clear_pending_events() except that it requires &mut self as we do + * no internal locking in ChannelMonitors. + */ public Event[] get_and_clear_pending_events() { long[] ret = bindings.ChannelMonitor_get_and_clear_pending_events(this.ptr); Event[] ret_conv_7_arr = new Event[ret.length]; @@ -78,12 +168,36 @@ public class ChannelMonitor extends CommonBase { return ret_conv_7_arr; } + /** + * Used by ChannelManager deserialization to broadcast the latest holder state if its copy of + * the Channel was out-of-date. You may use it to get a broadcastable holder toxic tx in case of + * fallen-behind, i.e when receiving a channel_reestablish with a proof that our counterparty side knows + * a higher revocation secret than the holder commitment number we are aware of. Broadcasting these + * transactions are UNSAFE, as they allow counterparty side to punish you. Nevertheless you may want to + * broadcast them if counterparty don't close channel with his higher commitment transaction after a + * substantial amount of time (a month or even a year) to get back funds. Best may be to contact + * out-of-band the other node operator to coordinate with him if option is available to you. + * In any-case, choice is up to the user. + */ public byte[][] get_latest_holder_commitment_txn(Logger logger) { byte[][] ret = bindings.ChannelMonitor_get_latest_holder_commitment_txn(this.ptr, logger == null ? 0 : logger.ptr); this.ptrs_to.add(logger); return ret; } + /** + * Processes transactions in a newly connected block, which may result in any of the following: + * - update the monitor's state against resolved HTLCs + * - punish the counterparty in the case of seeing a revoked commitment transaction + * - force close the channel and claim/timeout incoming/outgoing HTLCs if near expiration + * - detect settled outputs for later spending + * - schedule and bump any in-flight claims + * + * Returns any new outputs to watch from `txdata`; after called, these are also included in + * [`get_outputs_to_watch`]. + * + * [`get_outputs_to_watch`]: #method.get_outputs_to_watch + */ public TwoTuple[]>[] block_connected(byte[] header, TwoTuple[] txdata, int height, BroadcasterInterface broadcaster, FeeEstimator fee_estimator, Logger logger) { long[] ret = bindings.ChannelMonitor_block_connected(this.ptr, header, Arrays.stream(txdata).mapToLong(txdata_conv_24 -> bindings.C2Tuple_usizeTransactionZ_new(txdata_conv_24.a, txdata_conv_24.b)).toArray(), height, broadcaster == null ? 0 : broadcaster.ptr, fee_estimator == null ? 0 : fee_estimator.ptr, logger == null ? 0 : logger.ptr); TwoTuple[]>[] ret_conv_46_arr = new TwoTuple[ret.length]; @@ -114,6 +228,10 @@ public class ChannelMonitor extends CommonBase { return ret_conv_46_arr; } + /** + * Determines if the disconnected block contained any transactions of interest and updates + * appropriately. + */ public void block_disconnected(byte[] header, int height, BroadcasterInterface broadcaster, FeeEstimator fee_estimator, Logger logger) { bindings.ChannelMonitor_block_disconnected(this.ptr, header, height, broadcaster == null ? 0 : broadcaster.ptr, fee_estimator == null ? 0 : fee_estimator.ptr, logger == null ? 0 : logger.ptr); this.ptrs_to.add(broadcaster); diff --git a/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java b/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java index 179a200d..4373180a 100644 --- a/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java +++ b/src/main/java/org/ldk/structs/ChannelMonitorUpdate.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update generated by the underlying Channel itself which contains some new information the + * ChannelMonitor should be made aware of. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelMonitorUpdate extends CommonBase { ChannelMonitorUpdate(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +19,48 @@ public class ChannelMonitorUpdate extends CommonBase { if (ptr != 0) { bindings.ChannelMonitorUpdate_free(ptr); } } + /** + * The sequence number of this update. Updates *must* be replayed in-order according to this + * sequence number (and updates may panic if they are not). The update_id values are strictly + * increasing and increase by one for each new update, with one exception specified below. + * + * This sequence number is also used to track up to which points updates which returned + * ChannelMonitorUpdateErr::TemporaryFailure have been applied to all copies of a given + * ChannelMonitor when ChannelManager::channel_monitor_updated is called. + * + * The only instance where update_id values are not strictly increasing is the case where we + * allow post-force-close updates with a special update ID of [`CLOSED_CHANNEL_UPDATE_ID`]. See + * its docs for more details. + * + * [`CLOSED_CHANNEL_UPDATE_ID`]: constant.CLOSED_CHANNEL_UPDATE_ID.html + */ public long get_update_id() { long ret = bindings.ChannelMonitorUpdate_get_update_id(this.ptr); return ret; } + /** + * The sequence number of this update. Updates *must* be replayed in-order according to this + * sequence number (and updates may panic if they are not). The update_id values are strictly + * increasing and increase by one for each new update, with one exception specified below. + * + * This sequence number is also used to track up to which points updates which returned + * ChannelMonitorUpdateErr::TemporaryFailure have been applied to all copies of a given + * ChannelMonitor when ChannelManager::channel_monitor_updated is called. + * + * The only instance where update_id values are not strictly increasing is the case where we + * allow post-force-close updates with a special update ID of [`CLOSED_CHANNEL_UPDATE_ID`]. See + * its docs for more details. + * + * [`CLOSED_CHANNEL_UPDATE_ID`]: constant.CLOSED_CHANNEL_UPDATE_ID.html + */ public void set_update_id(long val) { bindings.ChannelMonitorUpdate_set_update_id(this.ptr, val); } + /** + * Creates a copy of the ChannelMonitorUpdate + */ public ChannelMonitorUpdate clone() { long ret = bindings.ChannelMonitorUpdate_clone(this.ptr); ChannelMonitorUpdate ret_hu_conv = new ChannelMonitorUpdate(null, ret); @@ -30,11 +68,17 @@ public class ChannelMonitorUpdate extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelMonitorUpdate object into a byte array which can be read by ChannelMonitorUpdate_read + */ public byte[] write() { byte[] ret = bindings.ChannelMonitorUpdate_write(this.ptr); return ret; } + /** + * Read a ChannelMonitorUpdate from a byte array, created by ChannelMonitorUpdate_write + */ public static Result_ChannelMonitorUpdateDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelMonitorUpdate_read(ser); Result_ChannelMonitorUpdateDecodeErrorZ ret_hu_conv = Result_ChannelMonitorUpdateDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelPublicKeys.java b/src/main/java/org/ldk/structs/ChannelPublicKeys.java index 0d2664a6..c67b24a7 100644 --- a/src/main/java/org/ldk/structs/ChannelPublicKeys.java +++ b/src/main/java/org/ldk/structs/ChannelPublicKeys.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * One counterparty's public keys which do not change over the life of a channel. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelPublicKeys extends CommonBase { ChannelPublicKeys(Object _dummy, long ptr) { super(ptr); } @@ -14,51 +18,102 @@ public class ChannelPublicKeys extends CommonBase { if (ptr != 0) { bindings.ChannelPublicKeys_free(ptr); } } + /** + * The public key which is used to sign all commitment transactions, as it appears in the + * on-chain channel lock-in 2-of-2 multisig output. + */ public byte[] get_funding_pubkey() { byte[] ret = bindings.ChannelPublicKeys_get_funding_pubkey(this.ptr); return ret; } + /** + * The public key which is used to sign all commitment transactions, as it appears in the + * on-chain channel lock-in 2-of-2 multisig output. + */ public void set_funding_pubkey(byte[] val) { bindings.ChannelPublicKeys_set_funding_pubkey(this.ptr, val); } + /** + * The base point which is used (with derive_public_revocation_key) to derive per-commitment + * revocation keys. This is combined with the per-commitment-secret generated by the + * counterparty to create a secret which the counterparty can reveal to revoke previous + * states. + */ public byte[] get_revocation_basepoint() { byte[] ret = bindings.ChannelPublicKeys_get_revocation_basepoint(this.ptr); return ret; } + /** + * The base point which is used (with derive_public_revocation_key) to derive per-commitment + * revocation keys. This is combined with the per-commitment-secret generated by the + * counterparty to create a secret which the counterparty can reveal to revoke previous + * states. + */ public void set_revocation_basepoint(byte[] val) { bindings.ChannelPublicKeys_set_revocation_basepoint(this.ptr, val); } + /** + * The public key on which the non-broadcaster (ie the countersignatory) receives an immediately + * spendable primary channel balance on the broadcaster's commitment transaction. This key is + * static across every commitment transaction. + */ public byte[] get_payment_point() { byte[] ret = bindings.ChannelPublicKeys_get_payment_point(this.ptr); return ret; } + /** + * The public key on which the non-broadcaster (ie the countersignatory) receives an immediately + * spendable primary channel balance on the broadcaster's commitment transaction. This key is + * static across every commitment transaction. + */ public void set_payment_point(byte[] val) { bindings.ChannelPublicKeys_set_payment_point(this.ptr, val); } + /** + * The base point which is used (with derive_public_key) to derive a per-commitment payment + * public key which receives non-HTLC-encumbered funds which are only available for spending + * after some delay (or can be claimed via the revocation path). + */ public byte[] get_delayed_payment_basepoint() { byte[] ret = bindings.ChannelPublicKeys_get_delayed_payment_basepoint(this.ptr); return ret; } + /** + * The base point which is used (with derive_public_key) to derive a per-commitment payment + * public key which receives non-HTLC-encumbered funds which are only available for spending + * after some delay (or can be claimed via the revocation path). + */ public void set_delayed_payment_basepoint(byte[] val) { bindings.ChannelPublicKeys_set_delayed_payment_basepoint(this.ptr, val); } + /** + * The base point which is used (with derive_public_key) to derive a per-commitment public key + * which is used to encumber HTLC-in-flight outputs. + */ public byte[] get_htlc_basepoint() { byte[] ret = bindings.ChannelPublicKeys_get_htlc_basepoint(this.ptr); return ret; } + /** + * The base point which is used (with derive_public_key) to derive a per-commitment public key + * which is used to encumber HTLC-in-flight outputs. + */ public void set_htlc_basepoint(byte[] val) { bindings.ChannelPublicKeys_set_htlc_basepoint(this.ptr, val); } + /** + * Constructs a new ChannelPublicKeys given each field + */ public static ChannelPublicKeys constructor_new(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); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -66,6 +121,9 @@ public class ChannelPublicKeys extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelPublicKeys + */ public ChannelPublicKeys clone() { long ret = bindings.ChannelPublicKeys_clone(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -73,11 +131,17 @@ public class ChannelPublicKeys extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelPublicKeys object into a byte array which can be read by ChannelPublicKeys_read + */ public byte[] write() { byte[] ret = bindings.ChannelPublicKeys_write(this.ptr); return ret; } + /** + * Read a ChannelPublicKeys from a byte array, created by ChannelPublicKeys_write + */ public static Result_ChannelPublicKeysDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelPublicKeys_read(ser); Result_ChannelPublicKeysDecodeErrorZ ret_hu_conv = Result_ChannelPublicKeysDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelReestablish.java b/src/main/java/org/ldk/structs/ChannelReestablish.java index be928489..bd5fe0ea 100644 --- a/src/main/java/org/ldk/structs/ChannelReestablish.java +++ b/src/main/java/org/ldk/structs/ChannelReestablish.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A channel_reestablish message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelReestablish extends CommonBase { ChannelReestablish(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +18,54 @@ public class ChannelReestablish extends CommonBase { if (ptr != 0) { bindings.ChannelReestablish_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.ChannelReestablish_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.ChannelReestablish_set_channel_id(this.ptr, val); } + /** + * The next commitment number for the sender + */ public long get_next_local_commitment_number() { long ret = bindings.ChannelReestablish_get_next_local_commitment_number(this.ptr); return ret; } + /** + * The next commitment number for the sender + */ public void set_next_local_commitment_number(long val) { bindings.ChannelReestablish_set_next_local_commitment_number(this.ptr, val); } + /** + * The next commitment number for the recipient + */ public long get_next_remote_commitment_number() { long ret = bindings.ChannelReestablish_get_next_remote_commitment_number(this.ptr); return ret; } + /** + * The next commitment number for the recipient + */ public void set_next_remote_commitment_number(long val) { bindings.ChannelReestablish_set_next_remote_commitment_number(this.ptr, val); } + /** + * Creates a copy of the ChannelReestablish + */ public ChannelReestablish clone() { long ret = bindings.ChannelReestablish_clone(this.ptr); ChannelReestablish ret_hu_conv = new ChannelReestablish(null, ret); @@ -48,11 +73,17 @@ public class ChannelReestablish extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelReestablish object into a byte array which can be read by ChannelReestablish_read + */ public byte[] write() { byte[] ret = bindings.ChannelReestablish_write(this.ptr); return ret; } + /** + * Read a ChannelReestablish from a byte array, created by ChannelReestablish_write + */ public static Result_ChannelReestablishDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelReestablish_read(ser); Result_ChannelReestablishDecodeErrorZ ret_hu_conv = Result_ChannelReestablishDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelTransactionParameters.java b/src/main/java/org/ldk/structs/ChannelTransactionParameters.java index a64af173..2930d5cb 100644 --- a/src/main/java/org/ldk/structs/ChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/ChannelTransactionParameters.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Per-channel data used to build transactions in conjunction with the per-commitment data (CommitmentTransaction). + * The fields are organized by holder/counterparty. + * + * Normally, this is converted to the broadcaster/countersignatory-organized DirectedChannelTransactionParameters + * before use, via the as_holder_broadcastable and as_counterparty_broadcastable functions. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelTransactionParameters extends CommonBase { ChannelTransactionParameters(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +22,9 @@ public class ChannelTransactionParameters extends CommonBase { if (ptr != 0) { bindings.ChannelTransactionParameters_free(ptr); } } + /** + * Holder public keys + */ public ChannelPublicKeys get_holder_pubkeys() { long ret = bindings.ChannelTransactionParameters_get_holder_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -21,29 +32,50 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Holder public keys + */ public void set_holder_pubkeys(ChannelPublicKeys val) { bindings.ChannelTransactionParameters_set_holder_pubkeys(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The contest delay selected by the holder, which applies to counterparty-broadcast transactions + */ public short get_holder_selected_contest_delay() { short ret = bindings.ChannelTransactionParameters_get_holder_selected_contest_delay(this.ptr); return ret; } + /** + * The contest delay selected by the holder, which applies to counterparty-broadcast transactions + */ public void set_holder_selected_contest_delay(short val) { bindings.ChannelTransactionParameters_set_holder_selected_contest_delay(this.ptr, val); } + /** + * Whether the holder is the initiator of this channel. + * This is an input to the commitment number obscure factor computation. + */ public boolean get_is_outbound_from_holder() { boolean ret = bindings.ChannelTransactionParameters_get_is_outbound_from_holder(this.ptr); return ret; } + /** + * Whether the holder is the initiator of this channel. + * This is an input to the commitment number obscure factor computation. + */ public void set_is_outbound_from_holder(boolean val) { bindings.ChannelTransactionParameters_set_is_outbound_from_holder(this.ptr, val); } + /** + * The late-bound counterparty channel transaction parameters. + * These parameters are populated at the point in the protocol where the counterparty provides them. + */ public CounterpartyChannelTransactionParameters get_counterparty_parameters() { long ret = bindings.ChannelTransactionParameters_get_counterparty_parameters(this.ptr); CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); @@ -51,11 +83,18 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * The late-bound counterparty channel transaction parameters. + * These parameters are populated at the point in the protocol where the counterparty provides them. + */ public void set_counterparty_parameters(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 + */ public OutPoint get_funding_outpoint() { long ret = bindings.ChannelTransactionParameters_get_funding_outpoint(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -63,11 +102,17 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * The late-bound funding outpoint + */ public void set_funding_outpoint(OutPoint val) { bindings.ChannelTransactionParameters_set_funding_outpoint(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new ChannelTransactionParameters given each field + */ public static ChannelTransactionParameters constructor_new(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); ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); @@ -78,6 +123,9 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelTransactionParameters + */ public ChannelTransactionParameters clone() { long ret = bindings.ChannelTransactionParameters_clone(this.ptr); ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); @@ -85,11 +133,20 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Whether the late bound parameters are populated. + */ public boolean is_populated() { boolean ret = bindings.ChannelTransactionParameters_is_populated(this.ptr); return ret; } + /** + * Convert the holder/counterparty parameters to broadcaster/countersignatory-organized parameters, + * given that the holder is the broadcaster. + * + * self.is_populated() must be true before calling this function. + */ public DirectedChannelTransactionParameters as_holder_broadcastable() { long ret = bindings.ChannelTransactionParameters_as_holder_broadcastable(this.ptr); DirectedChannelTransactionParameters ret_hu_conv = new DirectedChannelTransactionParameters(null, ret); @@ -97,6 +154,12 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Convert the holder/counterparty parameters to broadcaster/countersignatory-organized parameters, + * given that the counterparty is the broadcaster. + * + * self.is_populated() must be true before calling this function. + */ public DirectedChannelTransactionParameters as_counterparty_broadcastable() { long ret = bindings.ChannelTransactionParameters_as_counterparty_broadcastable(this.ptr); DirectedChannelTransactionParameters ret_hu_conv = new DirectedChannelTransactionParameters(null, ret); @@ -104,11 +167,17 @@ public class ChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelTransactionParameters object into a byte array which can be read by ChannelTransactionParameters_read + */ public byte[] write() { byte[] ret = bindings.ChannelTransactionParameters_write(this.ptr); return ret; } + /** + * Read a ChannelTransactionParameters from a byte array, created by ChannelTransactionParameters_write + */ public static Result_ChannelTransactionParametersDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelTransactionParameters_read(ser); Result_ChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_ChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ChannelUpdate.java b/src/main/java/org/ldk/structs/ChannelUpdate.java index 805b4511..cce8c155 100644 --- a/src/main/java/org/ldk/structs/ChannelUpdate.java +++ b/src/main/java/org/ldk/structs/ChannelUpdate.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A channel_update message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ChannelUpdate extends CommonBase { ChannelUpdate(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +18,24 @@ public class ChannelUpdate extends CommonBase { if (ptr != 0) { bindings.ChannelUpdate_free(ptr); } } + /** + * A signature of the channel update + */ public byte[] get_signature() { byte[] ret = bindings.ChannelUpdate_get_signature(this.ptr); return ret; } + /** + * A signature of the channel update + */ public void set_signature(byte[] val) { bindings.ChannelUpdate_set_signature(this.ptr, val); } + /** + * The actual channel update + */ public UnsignedChannelUpdate get_contents() { long ret = bindings.ChannelUpdate_get_contents(this.ptr); UnsignedChannelUpdate ret_hu_conv = new UnsignedChannelUpdate(null, ret); @@ -30,11 +43,17 @@ public class ChannelUpdate extends CommonBase { return ret_hu_conv; } + /** + * The actual channel update + */ public void set_contents(UnsignedChannelUpdate val) { bindings.ChannelUpdate_set_contents(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new ChannelUpdate given each field + */ public static ChannelUpdate constructor_new(byte[] signature_arg, UnsignedChannelUpdate contents_arg) { long ret = bindings.ChannelUpdate_new(signature_arg, contents_arg == null ? 0 : contents_arg.ptr & ~1); ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); @@ -43,6 +62,9 @@ public class ChannelUpdate extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ChannelUpdate + */ public ChannelUpdate clone() { long ret = bindings.ChannelUpdate_clone(this.ptr); ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); @@ -50,11 +72,17 @@ public class ChannelUpdate extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ChannelUpdate object into a byte array which can be read by ChannelUpdate_read + */ public byte[] write() { byte[] ret = bindings.ChannelUpdate_write(this.ptr); return ret; } + /** + * Read a ChannelUpdate from a byte array, created by ChannelUpdate_write + */ public static Result_ChannelUpdateDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ChannelUpdate_read(ser); Result_ChannelUpdateDecodeErrorZ ret_hu_conv = Result_ChannelUpdateDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ClosingSigned.java b/src/main/java/org/ldk/structs/ClosingSigned.java index a42c3e50..4fe37bd1 100644 --- a/src/main/java/org/ldk/structs/ClosingSigned.java +++ b/src/main/java/org/ldk/structs/ClosingSigned.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A closing_signed message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ClosingSigned extends CommonBase { ClosingSigned(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +18,54 @@ public class ClosingSigned extends CommonBase { if (ptr != 0) { bindings.ClosingSigned_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.ClosingSigned_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.ClosingSigned_set_channel_id(this.ptr, val); } + /** + * The proposed total fee for the closing transaction + */ public long get_fee_satoshis() { long ret = bindings.ClosingSigned_get_fee_satoshis(this.ptr); return ret; } + /** + * The proposed total fee for the closing transaction + */ public void set_fee_satoshis(long val) { bindings.ClosingSigned_set_fee_satoshis(this.ptr, val); } + /** + * A signature on the closing transaction + */ public byte[] get_signature() { byte[] ret = bindings.ClosingSigned_get_signature(this.ptr); return ret; } + /** + * A signature on the closing transaction + */ public void set_signature(byte[] val) { bindings.ClosingSigned_set_signature(this.ptr, val); } + /** + * Constructs a new ClosingSigned given each field + */ public static ClosingSigned constructor_new(byte[] channel_id_arg, long fee_satoshis_arg, byte[] signature_arg) { long ret = bindings.ClosingSigned_new(channel_id_arg, fee_satoshis_arg, signature_arg); ClosingSigned ret_hu_conv = new ClosingSigned(null, ret); @@ -48,6 +73,9 @@ public class ClosingSigned extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ClosingSigned + */ public ClosingSigned clone() { long ret = bindings.ClosingSigned_clone(this.ptr); ClosingSigned ret_hu_conv = new ClosingSigned(null, ret); @@ -55,11 +83,17 @@ public class ClosingSigned extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ClosingSigned object into a byte array which can be read by ClosingSigned_read + */ public byte[] write() { byte[] ret = bindings.ClosingSigned_write(this.ptr); return ret; } + /** + * Read a ClosingSigned from a byte array, created by ClosingSigned_write + */ public static Result_ClosingSignedDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ClosingSigned_read(ser); Result_ClosingSignedDecodeErrorZ ret_hu_conv = Result_ClosingSignedDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/CommitmentSigned.java b/src/main/java/org/ldk/structs/CommitmentSigned.java index b14e1ca4..35100476 100644 --- a/src/main/java/org/ldk/structs/CommitmentSigned.java +++ b/src/main/java/org/ldk/structs/CommitmentSigned.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A commitment_signed message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class CommitmentSigned extends CommonBase { CommitmentSigned(Object _dummy, long ptr) { super(ptr); } @@ -14,28 +18,46 @@ public class CommitmentSigned extends CommonBase { if (ptr != 0) { bindings.CommitmentSigned_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.CommitmentSigned_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.CommitmentSigned_set_channel_id(this.ptr, val); } + /** + * A signature on the commitment transaction + */ public byte[] get_signature() { byte[] ret = bindings.CommitmentSigned_get_signature(this.ptr); return ret; } + /** + * A signature on the commitment transaction + */ public void set_signature(byte[] val) { bindings.CommitmentSigned_set_signature(this.ptr, val); } + /** + * Signatures on the HTLC transactions + */ public void set_htlc_signatures(byte[][] val) { bindings.CommitmentSigned_set_htlc_signatures(this.ptr, val); } + /** + * Constructs a new CommitmentSigned given each field + */ public static CommitmentSigned constructor_new(byte[] channel_id_arg, byte[] signature_arg, byte[][] htlc_signatures_arg) { long ret = bindings.CommitmentSigned_new(channel_id_arg, signature_arg, htlc_signatures_arg); CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); @@ -43,6 +65,9 @@ public class CommitmentSigned extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the CommitmentSigned + */ public CommitmentSigned clone() { long ret = bindings.CommitmentSigned_clone(this.ptr); CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); @@ -50,11 +75,17 @@ public class CommitmentSigned extends CommonBase { return ret_hu_conv; } + /** + * Serialize the CommitmentSigned object into a byte array which can be read by CommitmentSigned_read + */ public byte[] write() { byte[] ret = bindings.CommitmentSigned_write(this.ptr); return ret; } + /** + * Read a CommitmentSigned from a byte array, created by CommitmentSigned_write + */ public static Result_CommitmentSignedDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.CommitmentSigned_read(ser); Result_CommitmentSignedDecodeErrorZ ret_hu_conv = Result_CommitmentSignedDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/CommitmentTransaction.java b/src/main/java/org/ldk/structs/CommitmentTransaction.java index a4f1698c..70b0ab5a 100644 --- a/src/main/java/org/ldk/structs/CommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/CommitmentTransaction.java @@ -5,6 +5,15 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * This class tracks the per-transaction information needed to build a commitment transaction and to + * actually build it and sign. It is used for holder transactions that we sign only when needed + * and for transactions we sign for the counterparty. + * + * This class can be used inside a signer implementation to generate a signature given the relevant + * secret key. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class CommitmentTransaction extends CommonBase { CommitmentTransaction(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +23,9 @@ public class CommitmentTransaction extends CommonBase { if (ptr != 0) { bindings.CommitmentTransaction_free(ptr); } } + /** + * Creates a copy of the CommitmentTransaction + */ public CommitmentTransaction clone() { long ret = bindings.CommitmentTransaction_clone(this.ptr); CommitmentTransaction ret_hu_conv = new CommitmentTransaction(null, ret); @@ -21,37 +33,63 @@ public class CommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * Serialize the CommitmentTransaction object into a byte array which can be read by CommitmentTransaction_read + */ public byte[] write() { byte[] ret = bindings.CommitmentTransaction_write(this.ptr); return ret; } + /** + * Read a CommitmentTransaction from a byte array, created by CommitmentTransaction_write + */ public static Result_CommitmentTransactionDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.CommitmentTransaction_read(ser); Result_CommitmentTransactionDecodeErrorZ ret_hu_conv = Result_CommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * The backwards-counting commitment number + */ public long commitment_number() { long ret = bindings.CommitmentTransaction_commitment_number(this.ptr); return ret; } + /** + * The value to be sent to the broadcaster + */ public long to_broadcaster_value_sat() { long ret = bindings.CommitmentTransaction_to_broadcaster_value_sat(this.ptr); return ret; } + /** + * The value to be sent to the counterparty + */ public long to_countersignatory_value_sat() { long ret = bindings.CommitmentTransaction_to_countersignatory_value_sat(this.ptr); return ret; } + /** + * The feerate paid per 1000-weight-unit in this commitment transaction. + */ public int feerate_per_kw() { int ret = bindings.CommitmentTransaction_feerate_per_kw(this.ptr); return ret; } + /** + * Trust our pre-built transaction and derived transaction creation public keys. + * + * Applies a wrapper which allows access to these fields. + * + * This should only be used if you fully trust the builder of this object. It should not + * \tbe used by an external signer - instead use the verify function. + */ public TrustedCommitmentTransaction trust() { long ret = bindings.CommitmentTransaction_trust(this.ptr); TrustedCommitmentTransaction ret_hu_conv = new TrustedCommitmentTransaction(null, ret); @@ -59,6 +97,14 @@ public class CommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * Verify our pre-built transaction and derived transaction creation public keys. + * + * Applies a wrapper which allows access to these fields. + * + * An external validating signer must call this method before signing + * or using the built transaction. + */ 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); Result_TrustedCommitmentTransactionNoneZ ret_hu_conv = Result_TrustedCommitmentTransactionNoneZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/CommitmentUpdate.java b/src/main/java/org/ldk/structs/CommitmentUpdate.java index b6c5d482..94bc354c 100644 --- a/src/main/java/org/ldk/structs/CommitmentUpdate.java +++ b/src/main/java/org/ldk/structs/CommitmentUpdate.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Struct used to return values from revoke_and_ack messages, containing a bunch of commitment + * transaction updates if they were pending. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class CommitmentUpdate extends CommonBase { CommitmentUpdate(Object _dummy, long ptr) { super(ptr); } @@ -14,26 +19,41 @@ public class CommitmentUpdate extends CommonBase { if (ptr != 0) { bindings.CommitmentUpdate_free(ptr); } } + /** + * update_add_htlc messages which should be sent + */ public void set_update_add_htlcs(UpdateAddHTLC[] val) { bindings.CommitmentUpdate_set_update_add_htlcs(this.ptr, Arrays.stream(val).mapToLong(val_conv_15 -> val_conv_15 == null ? 0 : val_conv_15.ptr & ~1).toArray()); /* TODO 2 UpdateAddHTLC */; } + /** + * update_fulfill_htlc messages which should be sent + */ public void set_update_fulfill_htlcs(UpdateFulfillHTLC[] val) { bindings.CommitmentUpdate_set_update_fulfill_htlcs(this.ptr, Arrays.stream(val).mapToLong(val_conv_19 -> val_conv_19 == null ? 0 : val_conv_19.ptr & ~1).toArray()); /* TODO 2 UpdateFulfillHTLC */; } + /** + * update_fail_htlc messages which should be sent + */ public void set_update_fail_htlcs(UpdateFailHTLC[] val) { bindings.CommitmentUpdate_set_update_fail_htlcs(this.ptr, Arrays.stream(val).mapToLong(val_conv_16 -> val_conv_16 == null ? 0 : val_conv_16.ptr & ~1).toArray()); /* TODO 2 UpdateFailHTLC */; } + /** + * update_fail_malformed_htlc messages which should be sent + */ public void set_update_fail_malformed_htlcs(UpdateFailMalformedHTLC[] val) { bindings.CommitmentUpdate_set_update_fail_malformed_htlcs(this.ptr, Arrays.stream(val).mapToLong(val_conv_25 -> val_conv_25 == null ? 0 : val_conv_25.ptr & ~1).toArray()); /* TODO 2 UpdateFailMalformedHTLC */; } + /** + * An update_fee message which should be sent + */ public UpdateFee get_update_fee() { long ret = bindings.CommitmentUpdate_get_update_fee(this.ptr); UpdateFee ret_hu_conv = new UpdateFee(null, ret); @@ -41,11 +61,17 @@ public class CommitmentUpdate extends CommonBase { return ret_hu_conv; } + /** + * An update_fee message which should be sent + */ public void set_update_fee(UpdateFee val) { bindings.CommitmentUpdate_set_update_fee(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Finally, the commitment_signed message which should be sent + */ public CommitmentSigned get_commitment_signed() { long ret = bindings.CommitmentUpdate_get_commitment_signed(this.ptr); CommitmentSigned ret_hu_conv = new CommitmentSigned(null, ret); @@ -53,11 +79,17 @@ public class CommitmentUpdate extends CommonBase { return ret_hu_conv; } + /** + * Finally, the commitment_signed message which should be sent + */ public void set_commitment_signed(CommitmentSigned val) { bindings.CommitmentUpdate_set_commitment_signed(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new CommitmentUpdate given each field + */ public static CommitmentUpdate constructor_new(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); CommitmentUpdate ret_hu_conv = new CommitmentUpdate(null, ret); @@ -71,6 +103,9 @@ public class CommitmentUpdate extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the CommitmentUpdate + */ public CommitmentUpdate clone() { long ret = bindings.CommitmentUpdate_clone(this.ptr); CommitmentUpdate ret_hu_conv = new CommitmentUpdate(null, ret); diff --git a/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java b/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java index ae2d77cc..b06ef372 100644 --- a/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/CounterpartyChannelTransactionParameters.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Late-bound per-channel counterparty data used to build transactions. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class CounterpartyChannelTransactionParameters extends CommonBase { CounterpartyChannelTransactionParameters(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { if (ptr != 0) { bindings.CounterpartyChannelTransactionParameters_free(ptr); } } + /** + * Counter-party public keys + */ public ChannelPublicKeys get_pubkeys() { long ret = bindings.CounterpartyChannelTransactionParameters_get_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -21,20 +28,32 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Counter-party public keys + */ public void set_pubkeys(ChannelPublicKeys val) { bindings.CounterpartyChannelTransactionParameters_set_pubkeys(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The contest delay selected by the counterparty, which applies to holder-broadcast transactions + */ public short get_selected_contest_delay() { short ret = bindings.CounterpartyChannelTransactionParameters_get_selected_contest_delay(this.ptr); return ret; } + /** + * The contest delay selected by the counterparty, which applies to holder-broadcast transactions + */ public void set_selected_contest_delay(short val) { bindings.CounterpartyChannelTransactionParameters_set_selected_contest_delay(this.ptr, val); } + /** + * Constructs a new CounterpartyChannelTransactionParameters given each field + */ public static CounterpartyChannelTransactionParameters constructor_new(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); CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); @@ -43,6 +62,9 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the CounterpartyChannelTransactionParameters + */ public CounterpartyChannelTransactionParameters clone() { long ret = bindings.CounterpartyChannelTransactionParameters_clone(this.ptr); CounterpartyChannelTransactionParameters ret_hu_conv = new CounterpartyChannelTransactionParameters(null, ret); @@ -50,11 +72,17 @@ public class CounterpartyChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Serialize the CounterpartyChannelTransactionParameters object into a byte array which can be read by CounterpartyChannelTransactionParameters_read + */ public byte[] write() { byte[] ret = bindings.CounterpartyChannelTransactionParameters_write(this.ptr); return ret; } + /** + * Read a CounterpartyChannelTransactionParameters from a byte array, created by CounterpartyChannelTransactionParameters_write + */ public static Result_CounterpartyChannelTransactionParametersDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.CounterpartyChannelTransactionParameters_read(ser); Result_CounterpartyChannelTransactionParametersDecodeErrorZ ret_hu_conv = Result_CounterpartyChannelTransactionParametersDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/DataLossProtect.java b/src/main/java/org/ldk/structs/DataLossProtect.java index 4d0e79d4..17d56110 100644 --- a/src/main/java/org/ldk/structs/DataLossProtect.java +++ b/src/main/java/org/ldk/structs/DataLossProtect.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Proof that the sender knows the per-commitment secret of the previous commitment transaction. + * This is used to convince the recipient that the channel is at a certain commitment + * number even if they lost that data due to a local failure. Of course, the peer may lie + * and even later commitments may have been revoked. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class DataLossProtect extends CommonBase { DataLossProtect(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +21,41 @@ public class DataLossProtect extends CommonBase { if (ptr != 0) { bindings.DataLossProtect_free(ptr); } } + /** + * Proof that the sender knows the per-commitment secret of a specific commitment transaction + * belonging to the recipient + */ public byte[] get_your_last_per_commitment_secret() { byte[] ret = bindings.DataLossProtect_get_your_last_per_commitment_secret(this.ptr); return ret; } + /** + * Proof that the sender knows the per-commitment secret of a specific commitment transaction + * belonging to the recipient + */ public void set_your_last_per_commitment_secret(byte[] val) { bindings.DataLossProtect_set_your_last_per_commitment_secret(this.ptr, val); } + /** + * The sender's per-commitment point for their current commitment transaction + */ public byte[] get_my_current_per_commitment_point() { byte[] ret = bindings.DataLossProtect_get_my_current_per_commitment_point(this.ptr); return ret; } + /** + * The sender's per-commitment point for their current commitment transaction + */ public void set_my_current_per_commitment_point(byte[] val) { bindings.DataLossProtect_set_my_current_per_commitment_point(this.ptr, val); } + /** + * Constructs a new DataLossProtect given each field + */ public static DataLossProtect constructor_new(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); DataLossProtect ret_hu_conv = new DataLossProtect(null, ret); @@ -39,6 +63,9 @@ public class DataLossProtect extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the DataLossProtect + */ public DataLossProtect clone() { long ret = bindings.DataLossProtect_clone(this.ptr); DataLossProtect ret_hu_conv = new DataLossProtect(null, ret); diff --git a/src/main/java/org/ldk/structs/DecodeError.java b/src/main/java/org/ldk/structs/DecodeError.java index d39265af..5a7703fc 100644 --- a/src/main/java/org/ldk/structs/DecodeError.java +++ b/src/main/java/org/ldk/structs/DecodeError.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An error in decoding a message or struct. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class DecodeError extends CommonBase { DecodeError(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class DecodeError extends CommonBase { if (ptr != 0) { bindings.DecodeError_free(ptr); } } + /** + * Creates a copy of the DecodeError + */ public DecodeError clone() { long ret = bindings.DecodeError_clone(this.ptr); DecodeError ret_hu_conv = new DecodeError(null, ret); diff --git a/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java b/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java index fd70cb97..87aaedf9 100644 --- a/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/DelayedPaymentOutputDescriptor.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Information about a spendable output to a P2WSH script. See + * SpendableOutputDescriptor::DelayedPaymentOutput for more details on how to spend this. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class DelayedPaymentOutputDescriptor extends CommonBase { DelayedPaymentOutputDescriptor(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +19,9 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { if (ptr != 0) { bindings.DelayedPaymentOutputDescriptor_free(ptr); } } + /** + * The outpoint which is spendable + */ public OutPoint get_outpoint() { long ret = bindings.DelayedPaymentOutputDescriptor_get_outpoint(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -21,60 +29,107 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { return ret_hu_conv; } + /** + * The outpoint which is spendable + */ public void set_outpoint(OutPoint val) { bindings.DelayedPaymentOutputDescriptor_set_outpoint(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Per commitment point to derive delayed_payment_key by key holder + */ public byte[] get_per_commitment_point() { byte[] ret = bindings.DelayedPaymentOutputDescriptor_get_per_commitment_point(this.ptr); return ret; } + /** + * Per commitment point to derive delayed_payment_key by key holder + */ public void set_per_commitment_point(byte[] val) { bindings.DelayedPaymentOutputDescriptor_set_per_commitment_point(this.ptr, val); } + /** + * The nSequence value which must be set in the spending input to satisfy the OP_CSV in + * the witness_script. + */ public short get_to_self_delay() { short ret = bindings.DelayedPaymentOutputDescriptor_get_to_self_delay(this.ptr); return ret; } + /** + * The nSequence value which must be set in the spending input to satisfy the OP_CSV in + * the witness_script. + */ public void set_to_self_delay(short val) { bindings.DelayedPaymentOutputDescriptor_set_to_self_delay(this.ptr, val); } + /** + * The output which is referenced by the given outpoint + */ public void set_output(TxOut val) { bindings.DelayedPaymentOutputDescriptor_set_output(this.ptr, val.ptr); } + /** + * The revocation point specific to the commitment transaction which was broadcast. Used to + * derive the witnessScript for this output. + */ public byte[] get_revocation_pubkey() { byte[] ret = bindings.DelayedPaymentOutputDescriptor_get_revocation_pubkey(this.ptr); return ret; } + /** + * The revocation point specific to the commitment transaction which was broadcast. Used to + * derive the witnessScript for this output. + */ public void set_revocation_pubkey(byte[] val) { bindings.DelayedPaymentOutputDescriptor_set_revocation_pubkey(this.ptr, val); } + /** + * Arbitrary identification information returned by a call to + * `Sign::channel_keys_id()`. This may be useful in re-deriving keys used in + * the channel to spend the output. + */ public byte[] get_channel_keys_id() { byte[] ret = bindings.DelayedPaymentOutputDescriptor_get_channel_keys_id(this.ptr); return ret; } + /** + * Arbitrary identification information returned by a call to + * `Sign::channel_keys_id()`. This may be useful in re-deriving keys used in + * the channel to spend the output. + */ public void set_channel_keys_id(byte[] val) { bindings.DelayedPaymentOutputDescriptor_set_channel_keys_id(this.ptr, val); } + /** + * The value of the channel which this output originated from, possibly indirectly. + */ public long get_channel_value_satoshis() { long ret = bindings.DelayedPaymentOutputDescriptor_get_channel_value_satoshis(this.ptr); return ret; } + /** + * The value of the channel which this output originated from, possibly indirectly. + */ public void set_channel_value_satoshis(long val) { bindings.DelayedPaymentOutputDescriptor_set_channel_value_satoshis(this.ptr, val); } + /** + * Constructs a new DelayedPaymentOutputDescriptor given each field + */ public static DelayedPaymentOutputDescriptor constructor_new(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); DelayedPaymentOutputDescriptor ret_hu_conv = new DelayedPaymentOutputDescriptor(null, ret); @@ -83,6 +138,9 @@ public class DelayedPaymentOutputDescriptor extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the DelayedPaymentOutputDescriptor + */ public DelayedPaymentOutputDescriptor clone() { long ret = bindings.DelayedPaymentOutputDescriptor_clone(this.ptr); DelayedPaymentOutputDescriptor ret_hu_conv = new DelayedPaymentOutputDescriptor(null, ret); diff --git a/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java b/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java index 2358c615..17b9ab0b 100644 --- a/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java +++ b/src/main/java/org/ldk/structs/DirectedChannelTransactionParameters.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Static channel fields used to build transactions given per-commitment fields, organized by + * broadcaster/countersignatory. + * + * This is derived from the holder/counterparty-organized ChannelTransactionParameters via the + * as_holder_broadcastable and as_counterparty_broadcastable functions. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class DirectedChannelTransactionParameters extends CommonBase { DirectedChannelTransactionParameters(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +22,9 @@ public class DirectedChannelTransactionParameters extends CommonBase { if (ptr != 0) { bindings.DirectedChannelTransactionParameters_free(ptr); } } + /** + * Get the channel pubkeys for the broadcaster + */ public ChannelPublicKeys broadcaster_pubkeys() { long ret = bindings.DirectedChannelTransactionParameters_broadcaster_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -21,6 +32,9 @@ public class DirectedChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Get the channel pubkeys for the countersignatory + */ public ChannelPublicKeys countersignatory_pubkeys() { long ret = bindings.DirectedChannelTransactionParameters_countersignatory_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -28,16 +42,29 @@ public class DirectedChannelTransactionParameters extends CommonBase { return ret_hu_conv; } + /** + * Get the contest delay applicable to the transactions. + * Note that the contest delay was selected by the countersignatory. + */ public short contest_delay() { short ret = bindings.DirectedChannelTransactionParameters_contest_delay(this.ptr); return ret; } + /** + * Whether the channel is outbound from the broadcaster. + * + * The boolean representing the side that initiated the channel is + * an input to the commitment number obscure factor computation. + */ public boolean is_outbound() { boolean ret = bindings.DirectedChannelTransactionParameters_is_outbound(this.ptr); return ret; } + /** + * The funding outpoint + */ public OutPoint funding_outpoint() { long ret = bindings.DirectedChannelTransactionParameters_funding_outpoint(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); diff --git a/src/main/java/org/ldk/structs/DirectionalChannelInfo.java b/src/main/java/org/ldk/structs/DirectionalChannelInfo.java index 8e51c3f2..5610a704 100644 --- a/src/main/java/org/ldk/structs/DirectionalChannelInfo.java +++ b/src/main/java/org/ldk/structs/DirectionalChannelInfo.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Details about one direction of a channel. Received + * within a channel update. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class DirectionalChannelInfo extends CommonBase { DirectionalChannelInfo(Object _dummy, long ptr) { super(ptr); } @@ -14,42 +19,71 @@ public class DirectionalChannelInfo extends CommonBase { if (ptr != 0) { bindings.DirectionalChannelInfo_free(ptr); } } + /** + * When the last update to the channel direction was issued. + * Value is opaque, as set in the announcement. + */ public int get_last_update() { int ret = bindings.DirectionalChannelInfo_get_last_update(this.ptr); return ret; } + /** + * When the last update to the channel direction was issued. + * Value is opaque, as set in the announcement. + */ public void set_last_update(int val) { bindings.DirectionalChannelInfo_set_last_update(this.ptr, val); } + /** + * Whether the channel can be currently used for payments (in this one direction). + */ public boolean get_enabled() { boolean ret = bindings.DirectionalChannelInfo_get_enabled(this.ptr); return ret; } + /** + * Whether the channel can be currently used for payments (in this one direction). + */ public void set_enabled(boolean val) { bindings.DirectionalChannelInfo_set_enabled(this.ptr, val); } + /** + * The difference in CLTV values that you must have when routing through this channel. + */ public short get_cltv_expiry_delta() { short ret = bindings.DirectionalChannelInfo_get_cltv_expiry_delta(this.ptr); return ret; } + /** + * The difference in CLTV values that you must have when routing through this channel. + */ public void set_cltv_expiry_delta(short val) { bindings.DirectionalChannelInfo_set_cltv_expiry_delta(this.ptr, val); } + /** + * The minimum value, which must be relayed to the next hop via the channel + */ public long get_htlc_minimum_msat() { long ret = bindings.DirectionalChannelInfo_get_htlc_minimum_msat(this.ptr); return ret; } + /** + * The minimum value, which must be relayed to the next hop via the channel + */ public void set_htlc_minimum_msat(long val) { bindings.DirectionalChannelInfo_set_htlc_minimum_msat(this.ptr, val); } + /** + * Fees charged when the channel is used for routing + */ public RoutingFees get_fees() { long ret = bindings.DirectionalChannelInfo_get_fees(this.ptr); RoutingFees ret_hu_conv = new RoutingFees(null, ret); @@ -57,11 +91,20 @@ public class DirectionalChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Fees charged when the channel is used for routing + */ public void set_fees(RoutingFees val) { bindings.DirectionalChannelInfo_set_fees(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Most recent update for the channel received from the network + * 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. + */ public ChannelUpdate get_last_update_message() { long ret = bindings.DirectionalChannelInfo_get_last_update_message(this.ptr); ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret); @@ -69,11 +112,20 @@ public class DirectionalChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Most recent update for the channel received from the network + * 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. + */ public void set_last_update_message(ChannelUpdate val) { bindings.DirectionalChannelInfo_set_last_update_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Creates a copy of the DirectionalChannelInfo + */ public DirectionalChannelInfo clone() { long ret = bindings.DirectionalChannelInfo_clone(this.ptr); DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret); @@ -81,11 +133,17 @@ public class DirectionalChannelInfo extends CommonBase { return ret_hu_conv; } + /** + * Serialize the DirectionalChannelInfo object into a byte array which can be read by DirectionalChannelInfo_read + */ public byte[] write() { byte[] ret = bindings.DirectionalChannelInfo_write(this.ptr); return ret; } + /** + * Read a DirectionalChannelInfo from a byte array, created by DirectionalChannelInfo_write + */ public static Result_DirectionalChannelInfoDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.DirectionalChannelInfo_read(ser); Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ErrorAction.java b/src/main/java/org/ldk/structs/ErrorAction.java index f5d1f0fb..08f79d46 100644 --- a/src/main/java/org/ldk/structs/ErrorAction.java +++ b/src/main/java/org/ldk/structs/ErrorAction.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Used to put an error message in a LightningError + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ErrorAction extends CommonBase { private ErrorAction(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/ErrorMessage.java b/src/main/java/org/ldk/structs/ErrorMessage.java index 8e1f30dd..bf512b9a 100644 --- a/src/main/java/org/ldk/structs/ErrorMessage.java +++ b/src/main/java/org/ldk/structs/ErrorMessage.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An error message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ErrorMessage extends CommonBase { ErrorMessage(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,45 @@ public class ErrorMessage extends CommonBase { if (ptr != 0) { bindings.ErrorMessage_free(ptr); } } + /** + * The channel ID involved in the error + */ public byte[] get_channel_id() { byte[] ret = bindings.ErrorMessage_get_channel_id(this.ptr); return ret; } + /** + * The channel ID involved in the error + */ public void set_channel_id(byte[] val) { bindings.ErrorMessage_set_channel_id(this.ptr, val); } + /** + * A possibly human-readable error description. + * The string should be sanitized before it is used (e.g. emitted to logs + * or printed to stdout). Otherwise, a well crafted error message may trigger a security + * vulnerability in the terminal emulator or the logging subsystem. + */ public String get_data() { String ret = bindings.ErrorMessage_get_data(this.ptr); return ret; } + /** + * A possibly human-readable error description. + * The string should be sanitized before it is used (e.g. emitted to logs + * or printed to stdout). Otherwise, a well crafted error message may trigger a security + * vulnerability in the terminal emulator or the logging subsystem. + */ public void set_data(byte[] val) { bindings.ErrorMessage_set_data(this.ptr, val); } + /** + * Constructs a new ErrorMessage given each field + */ public static ErrorMessage constructor_new(byte[] channel_id_arg, byte[] data_arg) { long ret = bindings.ErrorMessage_new(channel_id_arg, data_arg); ErrorMessage ret_hu_conv = new ErrorMessage(null, ret); @@ -39,6 +64,9 @@ public class ErrorMessage extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ErrorMessage + */ public ErrorMessage clone() { long ret = bindings.ErrorMessage_clone(this.ptr); ErrorMessage ret_hu_conv = new ErrorMessage(null, ret); @@ -46,11 +74,17 @@ public class ErrorMessage extends CommonBase { return ret_hu_conv; } + /** + * Serialize the ErrorMessage object into a byte array which can be read by ErrorMessage_read + */ public byte[] write() { byte[] ret = bindings.ErrorMessage_write(this.ptr); return ret; } + /** + * Read a ErrorMessage from a byte array, created by ErrorMessage_write + */ public static Result_ErrorMessageDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ErrorMessage_read(ser); Result_ErrorMessageDecodeErrorZ ret_hu_conv = Result_ErrorMessageDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/ErroringMessageHandler.java b/src/main/java/org/ldk/structs/ErroringMessageHandler.java index 3b8ce070..2bb111f4 100644 --- a/src/main/java/org/ldk/structs/ErroringMessageHandler.java +++ b/src/main/java/org/ldk/structs/ErroringMessageHandler.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A dummy struct which implements `ChannelMessageHandler` without having any channels. + * You can provide one of these as the route_handler in a MessageHandler. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ErroringMessageHandler extends CommonBase { ErroringMessageHandler(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +19,9 @@ public class ErroringMessageHandler extends CommonBase { if (ptr != 0) { bindings.ErroringMessageHandler_free(ptr); } } + /** + * Constructs a new ErroringMessageHandler + */ public static ErroringMessageHandler constructor_new() { long ret = bindings.ErroringMessageHandler_new(); ErroringMessageHandler ret_hu_conv = new ErroringMessageHandler(null, ret); @@ -21,6 +29,10 @@ public class ErroringMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new MessageSendEventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned MessageSendEventsProvider must be freed before this_arg is + */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.ErroringMessageHandler_as_MessageSendEventsProvider(this.ptr); MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); @@ -28,6 +40,10 @@ public class ErroringMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new ChannelMessageHandler which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned ChannelMessageHandler must be freed before this_arg is + */ public ChannelMessageHandler as_ChannelMessageHandler() { long ret = bindings.ErroringMessageHandler_as_ChannelMessageHandler(this.ptr); ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); diff --git a/src/main/java/org/ldk/structs/Event.java b/src/main/java/org/ldk/structs/Event.java index abc24cec..163c7a97 100644 --- a/src/main/java/org/ldk/structs/Event.java +++ b/src/main/java/org/ldk/structs/Event.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An Event which you should probably take some action in response to. + * + * Note that while Writeable and Readable are implemented for Event, you probably shouldn't use + * them directly as they don't round-trip exactly (for example FundingGenerationReady is never + * written as it makes no sense to respond to it after reconnecting to peers). + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Event extends CommonBase { private Event(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/EventsProvider.java b/src/main/java/org/ldk/structs/EventsProvider.java index 7bcb3367..83714020 100644 --- a/src/main/java/org/ldk/structs/EventsProvider.java +++ b/src/main/java/org/ldk/structs/EventsProvider.java @@ -5,6 +5,9 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait indicating an object may generate events + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class EventsProvider extends CommonBase { final bindings.LDKEventsProvider bindings_instance; @@ -20,6 +23,10 @@ public class EventsProvider extends CommonBase { } public static interface EventsProviderInterface { + /** + * Gets the list of pending events which were generated by previous actions, clearing the list + * in the process. + */ Event[] get_and_clear_pending_events(); } private static class LDKEventsProviderHolder { EventsProvider held; } @@ -35,6 +42,10 @@ public class EventsProvider extends CommonBase { }); return impl_holder.held; } + /** + * Gets the list of pending events which were generated by previous actions, clearing the list + * in the process. + */ public Event[] get_and_clear_pending_events() { long[] ret = bindings.EventsProvider_get_and_clear_pending_events(this.ptr); Event[] ret_conv_7_arr = new Event[ret.length]; diff --git a/src/main/java/org/ldk/structs/FeeEstimator.java b/src/main/java/org/ldk/structs/FeeEstimator.java index 910edae7..3e247df2 100644 --- a/src/main/java/org/ldk/structs/FeeEstimator.java +++ b/src/main/java/org/ldk/structs/FeeEstimator.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait which should be implemented to provide feerate information on a number of time + * horizons. + * + * Note that all of the functions implemented here *must* be reentrant-safe (obviously - they're + * called from inside the library in response to chain events, P2P events, or timer events). + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class FeeEstimator extends CommonBase { final bindings.LDKFeeEstimator bindings_instance; @@ -20,6 +27,16 @@ public class FeeEstimator extends CommonBase { } public static interface FeeEstimatorInterface { + /** + * Gets estimated satoshis of fee required per 1000 Weight-Units. + * + * Must be no smaller than 253 (ie 1 satoshi-per-byte rounded up to ensure later round-downs + * don't put us below 1 satoshi-per-byte). + * + * This translates to: + * satoshis-per-byte * 250 + * ceil(satoshis-per-kbyte / 4) + */ int get_est_sat_per_1000_weight(LDKConfirmationTarget confirmation_target); } private static class LDKFeeEstimatorHolder { FeeEstimator held; } @@ -33,6 +50,16 @@ public class FeeEstimator extends CommonBase { }); return impl_holder.held; } + /** + * Gets estimated satoshis of fee required per 1000 Weight-Units. + * + * Must be no smaller than 253 (ie 1 satoshi-per-byte rounded up to ensure later round-downs + * don't put us below 1 satoshi-per-byte). + * + * This translates to: + * satoshis-per-byte * 250 + * ceil(satoshis-per-kbyte / 4) + */ public int get_est_sat_per_1000_weight(LDKConfirmationTarget confirmation_target) { int ret = bindings.FeeEstimator_get_est_sat_per_1000_weight(this.ptr, confirmation_target); return ret; diff --git a/src/main/java/org/ldk/structs/Filter.java b/src/main/java/org/ldk/structs/Filter.java index 64882310..092c6561 100644 --- a/src/main/java/org/ldk/structs/Filter.java +++ b/src/main/java/org/ldk/structs/Filter.java @@ -5,6 +5,29 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * The `Filter` trait defines behavior for indicating chain activity of interest pertaining to + * channels. + * + * This is useful in order to have a [`Watch`] implementation convey to a chain source which + * transactions to be notified of. Notification may take the form of pre-filtering blocks or, in + * the case of [BIP 157]/[BIP 158], only fetching a block if the compact filter matches. If + * receiving full blocks from a chain source, any further filtering is unnecessary. + * + * After an output has been registered, subsequent block retrievals from the chain source must not + * exclude any transactions matching the new criteria nor any in-block descendants of such + * transactions. + * + * Note that use as part of a [`Watch`] implementation involves reentrancy. Therefore, the `Filter` + * should not block on I/O. Implementations should instead queue the newly monitored data to be + * processed later. Then, in order to block until the data has been processed, any `Watch` + * invocation that has called the `Filter` must return [`TemporaryFailure`]. + * + * [`Watch`]: trait.Watch.html + * [`TemporaryFailure`]: channelmonitor/enum.ChannelMonitorUpdateErr.html#variant.TemporaryFailure + * [BIP 157]: https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki + * [BIP 158]: https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Filter extends CommonBase { final bindings.LDKFilter bindings_instance; @@ -20,7 +43,15 @@ public class Filter extends CommonBase { } public static interface FilterInterface { + /** + * Registers interest in a transaction with `txid` and having an output with `script_pubkey` as + * a spending condition. + */ void register_tx(byte[] txid, byte[] script_pubkey); + /** + * Registers interest in spends of a transaction output identified by `outpoint` having + * `script_pubkey` as the spending condition. + */ void register_output(OutPoint outpoint, byte[] script_pubkey); } private static class LDKFilterHolder { Filter held; } @@ -37,10 +68,18 @@ public class Filter extends CommonBase { }); return impl_holder.held; } + /** + * Registers interest in a transaction with `txid` and having an output with `script_pubkey` as + * a spending condition. + */ public void register_tx(byte[] txid, byte[] script_pubkey) { bindings.Filter_register_tx(this.ptr, txid, script_pubkey); } + /** + * Registers interest in spends of a transaction output identified by `outpoint` having + * `script_pubkey` as the spending condition. + */ public void register_output(OutPoint outpoint, byte[] script_pubkey) { bindings.Filter_register_output(this.ptr, outpoint == null ? 0 : outpoint.ptr & ~1, script_pubkey); this.ptrs_to.add(outpoint); diff --git a/src/main/java/org/ldk/structs/FundingCreated.java b/src/main/java/org/ldk/structs/FundingCreated.java index c6388db5..6faf150f 100644 --- a/src/main/java/org/ldk/structs/FundingCreated.java +++ b/src/main/java/org/ldk/structs/FundingCreated.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A funding_created message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class FundingCreated extends CommonBase { FundingCreated(Object _dummy, long ptr) { super(ptr); } @@ -14,42 +18,69 @@ public class FundingCreated extends CommonBase { if (ptr != 0) { bindings.FundingCreated_free(ptr); } } + /** + * A temporary channel ID, until the funding is established + */ public byte[] get_temporary_channel_id() { byte[] ret = bindings.FundingCreated_get_temporary_channel_id(this.ptr); return ret; } + /** + * A temporary channel ID, until the funding is established + */ public void set_temporary_channel_id(byte[] val) { bindings.FundingCreated_set_temporary_channel_id(this.ptr, val); } + /** + * The funding transaction ID + */ public byte[] get_funding_txid() { byte[] ret = bindings.FundingCreated_get_funding_txid(this.ptr); return ret; } + /** + * The funding transaction ID + */ public void set_funding_txid(byte[] val) { bindings.FundingCreated_set_funding_txid(this.ptr, val); } + /** + * The specific output index funding this channel + */ public short get_funding_output_index() { short ret = bindings.FundingCreated_get_funding_output_index(this.ptr); return ret; } + /** + * The specific output index funding this channel + */ public void set_funding_output_index(short val) { bindings.FundingCreated_set_funding_output_index(this.ptr, val); } + /** + * The signature of the channel initiator (funder) on the funding transaction + */ public byte[] get_signature() { byte[] ret = bindings.FundingCreated_get_signature(this.ptr); return ret; } + /** + * The signature of the channel initiator (funder) on the funding transaction + */ public void set_signature(byte[] val) { bindings.FundingCreated_set_signature(this.ptr, val); } + /** + * Constructs a new FundingCreated given each field + */ public static FundingCreated constructor_new(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); FundingCreated ret_hu_conv = new FundingCreated(null, ret); @@ -57,6 +88,9 @@ public class FundingCreated extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the FundingCreated + */ public FundingCreated clone() { long ret = bindings.FundingCreated_clone(this.ptr); FundingCreated ret_hu_conv = new FundingCreated(null, ret); @@ -64,11 +98,17 @@ public class FundingCreated extends CommonBase { return ret_hu_conv; } + /** + * Serialize the FundingCreated object into a byte array which can be read by FundingCreated_read + */ public byte[] write() { byte[] ret = bindings.FundingCreated_write(this.ptr); return ret; } + /** + * Read a FundingCreated from a byte array, created by FundingCreated_write + */ public static Result_FundingCreatedDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.FundingCreated_read(ser); Result_FundingCreatedDecodeErrorZ ret_hu_conv = Result_FundingCreatedDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/FundingLocked.java b/src/main/java/org/ldk/structs/FundingLocked.java index 0462f1a0..0b8188c1 100644 --- a/src/main/java/org/ldk/structs/FundingLocked.java +++ b/src/main/java/org/ldk/structs/FundingLocked.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A funding_locked message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class FundingLocked extends CommonBase { FundingLocked(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,39 @@ public class FundingLocked extends CommonBase { if (ptr != 0) { bindings.FundingLocked_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.FundingLocked_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.FundingLocked_set_channel_id(this.ptr, val); } + /** + * The per-commitment point of the second commitment transaction + */ public byte[] get_next_per_commitment_point() { byte[] ret = bindings.FundingLocked_get_next_per_commitment_point(this.ptr); return ret; } + /** + * The per-commitment point of the second commitment transaction + */ public void set_next_per_commitment_point(byte[] val) { bindings.FundingLocked_set_next_per_commitment_point(this.ptr, val); } + /** + * Constructs a new FundingLocked given each field + */ public static FundingLocked constructor_new(byte[] channel_id_arg, byte[] next_per_commitment_point_arg) { long ret = bindings.FundingLocked_new(channel_id_arg, next_per_commitment_point_arg); FundingLocked ret_hu_conv = new FundingLocked(null, ret); @@ -39,6 +58,9 @@ public class FundingLocked extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the FundingLocked + */ public FundingLocked clone() { long ret = bindings.FundingLocked_clone(this.ptr); FundingLocked ret_hu_conv = new FundingLocked(null, ret); @@ -46,11 +68,17 @@ public class FundingLocked extends CommonBase { return ret_hu_conv; } + /** + * Serialize the FundingLocked object into a byte array which can be read by FundingLocked_read + */ public byte[] write() { byte[] ret = bindings.FundingLocked_write(this.ptr); return ret; } + /** + * Read a FundingLocked from a byte array, created by FundingLocked_write + */ public static Result_FundingLockedDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.FundingLocked_read(ser); Result_FundingLockedDecodeErrorZ ret_hu_conv = Result_FundingLockedDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/FundingSigned.java b/src/main/java/org/ldk/structs/FundingSigned.java index e4241d92..037a9c17 100644 --- a/src/main/java/org/ldk/structs/FundingSigned.java +++ b/src/main/java/org/ldk/structs/FundingSigned.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A funding_signed message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class FundingSigned extends CommonBase { FundingSigned(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,39 @@ public class FundingSigned extends CommonBase { if (ptr != 0) { bindings.FundingSigned_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.FundingSigned_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.FundingSigned_set_channel_id(this.ptr, val); } + /** + * The signature of the channel acceptor (fundee) on the funding transaction + */ public byte[] get_signature() { byte[] ret = bindings.FundingSigned_get_signature(this.ptr); return ret; } + /** + * The signature of the channel acceptor (fundee) on the funding transaction + */ public void set_signature(byte[] val) { bindings.FundingSigned_set_signature(this.ptr, val); } + /** + * Constructs a new FundingSigned given each field + */ public static FundingSigned constructor_new(byte[] channel_id_arg, byte[] signature_arg) { long ret = bindings.FundingSigned_new(channel_id_arg, signature_arg); FundingSigned ret_hu_conv = new FundingSigned(null, ret); @@ -39,6 +58,9 @@ public class FundingSigned extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the FundingSigned + */ public FundingSigned clone() { long ret = bindings.FundingSigned_clone(this.ptr); FundingSigned ret_hu_conv = new FundingSigned(null, ret); @@ -46,11 +68,17 @@ public class FundingSigned extends CommonBase { return ret_hu_conv; } + /** + * Serialize the FundingSigned object into a byte array which can be read by FundingSigned_read + */ public byte[] write() { byte[] ret = bindings.FundingSigned_write(this.ptr); return ret; } + /** + * Read a FundingSigned from a byte array, created by FundingSigned_write + */ public static Result_FundingSignedDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.FundingSigned_read(ser); Result_FundingSignedDecodeErrorZ ret_hu_conv = Result_FundingSignedDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/GossipTimestampFilter.java b/src/main/java/org/ldk/structs/GossipTimestampFilter.java index 7f935692..f63dbdd3 100644 --- a/src/main/java/org/ldk/structs/GossipTimestampFilter.java +++ b/src/main/java/org/ldk/structs/GossipTimestampFilter.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A gossip_timestamp_filter message is used by a node to request + * gossip relay for messages in the requested time range when the + * gossip_queries feature has been negotiated. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class GossipTimestampFilter extends CommonBase { GossipTimestampFilter(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +20,54 @@ public class GossipTimestampFilter extends CommonBase { if (ptr != 0) { bindings.GossipTimestampFilter_free(ptr); } } + /** + * The genesis hash of the blockchain for channel and node information + */ public byte[] get_chain_hash() { byte[] ret = bindings.GossipTimestampFilter_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain for channel and node information + */ public void set_chain_hash(byte[] val) { bindings.GossipTimestampFilter_set_chain_hash(this.ptr, val); } + /** + * The starting unix timestamp + */ public int get_first_timestamp() { int ret = bindings.GossipTimestampFilter_get_first_timestamp(this.ptr); return ret; } + /** + * The starting unix timestamp + */ public void set_first_timestamp(int val) { bindings.GossipTimestampFilter_set_first_timestamp(this.ptr, val); } + /** + * The range of information in seconds + */ public int get_timestamp_range() { int ret = bindings.GossipTimestampFilter_get_timestamp_range(this.ptr); return ret; } + /** + * The range of information in seconds + */ public void set_timestamp_range(int val) { bindings.GossipTimestampFilter_set_timestamp_range(this.ptr, val); } + /** + * Constructs a new GossipTimestampFilter given each field + */ public static GossipTimestampFilter constructor_new(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); GossipTimestampFilter ret_hu_conv = new GossipTimestampFilter(null, ret); @@ -48,6 +75,9 @@ public class GossipTimestampFilter extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the GossipTimestampFilter + */ public GossipTimestampFilter clone() { long ret = bindings.GossipTimestampFilter_clone(this.ptr); GossipTimestampFilter ret_hu_conv = new GossipTimestampFilter(null, ret); @@ -55,12 +85,18 @@ public class GossipTimestampFilter extends CommonBase { return ret_hu_conv; } + /** + * Read a GossipTimestampFilter from a byte array, created by GossipTimestampFilter_write + */ public static Result_GossipTimestampFilterDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.GossipTimestampFilter_read(ser); Result_GossipTimestampFilterDecodeErrorZ ret_hu_conv = Result_GossipTimestampFilterDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the GossipTimestampFilter object into a byte array which can be read by GossipTimestampFilter_read + */ public byte[] write() { byte[] ret = bindings.GossipTimestampFilter_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java b/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java index a9352937..86388930 100644 --- a/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java +++ b/src/main/java/org/ldk/structs/HTLCFailChannelUpdate.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * The information we received from a peer along the route of a payment we originated. This is + * returned by ChannelMessageHandler::handle_update_fail_htlc to be passed into + * RoutingMessageHandler::handle_htlc_fail_channel_update to update our network map. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class HTLCFailChannelUpdate extends CommonBase { private HTLCFailChannelUpdate(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java b/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java index ea8dd2cb..0f47affa 100644 --- a/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java +++ b/src/main/java/org/ldk/structs/HTLCOutputInCommitment.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Information about an HTLC as it appears in a commitment transaction + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class HTLCOutputInCommitment extends CommonBase { HTLCOutputInCommitment(Object _dummy, long ptr) { super(ptr); } @@ -14,42 +18,77 @@ public class HTLCOutputInCommitment extends CommonBase { if (ptr != 0) { bindings.HTLCOutputInCommitment_free(ptr); } } + /** + * Whether the HTLC was \"offered\" (ie outbound in relation to this commitment transaction). + * Note that this is not the same as whether it is ountbound *from us*. To determine that you + * need to compare this value to whether the commitment transaction in question is that of + * the counterparty or our own. + */ public boolean get_offered() { boolean ret = bindings.HTLCOutputInCommitment_get_offered(this.ptr); return ret; } + /** + * Whether the HTLC was \"offered\" (ie outbound in relation to this commitment transaction). + * Note that this is not the same as whether it is ountbound *from us*. To determine that you + * need to compare this value to whether the commitment transaction in question is that of + * the counterparty or our own. + */ public void set_offered(boolean val) { bindings.HTLCOutputInCommitment_set_offered(this.ptr, val); } + /** + * The value, in msat, of the HTLC. The value as it appears in the commitment transaction is + * this divided by 1000. + */ public long get_amount_msat() { long ret = bindings.HTLCOutputInCommitment_get_amount_msat(this.ptr); return ret; } + /** + * The value, in msat, of the HTLC. The value as it appears in the commitment transaction is + * this divided by 1000. + */ public void set_amount_msat(long val) { bindings.HTLCOutputInCommitment_set_amount_msat(this.ptr, val); } + /** + * The CLTV lock-time at which this HTLC expires. + */ public int get_cltv_expiry() { int ret = bindings.HTLCOutputInCommitment_get_cltv_expiry(this.ptr); return ret; } + /** + * The CLTV lock-time at which this HTLC expires. + */ public void set_cltv_expiry(int val) { bindings.HTLCOutputInCommitment_set_cltv_expiry(this.ptr, val); } + /** + * The hash of the preimage which unlocks this HTLC. + */ public byte[] get_payment_hash() { byte[] ret = bindings.HTLCOutputInCommitment_get_payment_hash(this.ptr); return ret; } + /** + * The hash of the preimage which unlocks this HTLC. + */ public void set_payment_hash(byte[] val) { bindings.HTLCOutputInCommitment_set_payment_hash(this.ptr, val); } + /** + * Creates a copy of the HTLCOutputInCommitment + */ public HTLCOutputInCommitment clone() { long ret = bindings.HTLCOutputInCommitment_clone(this.ptr); HTLCOutputInCommitment ret_hu_conv = new HTLCOutputInCommitment(null, ret); @@ -57,11 +96,17 @@ public class HTLCOutputInCommitment extends CommonBase { return ret_hu_conv; } + /** + * Serialize the HTLCOutputInCommitment object into a byte array which can be read by HTLCOutputInCommitment_read + */ public byte[] write() { byte[] ret = bindings.HTLCOutputInCommitment_write(this.ptr); return ret; } + /** + * Read a HTLCOutputInCommitment from a byte array, created by HTLCOutputInCommitment_write + */ public static Result_HTLCOutputInCommitmentDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.HTLCOutputInCommitment_read(ser); Result_HTLCOutputInCommitmentDecodeErrorZ ret_hu_conv = Result_HTLCOutputInCommitmentDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/HTLCUpdate.java b/src/main/java/org/ldk/structs/HTLCUpdate.java index 57f94ec2..5951ab2e 100644 --- a/src/main/java/org/ldk/structs/HTLCUpdate.java +++ b/src/main/java/org/ldk/structs/HTLCUpdate.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Simple structure sent back by `chain::Watch` when an HTLC from a forward channel is detected on + * chain. Used to update the corresponding HTLC in the backward channel. Failing to pass the + * preimage claim backward will lead to loss of funds. + * + * [`chain::Watch`]: ../trait.Watch.html + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class HTLCUpdate extends CommonBase { HTLCUpdate(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +22,9 @@ public class HTLCUpdate extends CommonBase { if (ptr != 0) { bindings.HTLCUpdate_free(ptr); } } + /** + * Creates a copy of the HTLCUpdate + */ public HTLCUpdate clone() { long ret = bindings.HTLCUpdate_clone(this.ptr); HTLCUpdate ret_hu_conv = new HTLCUpdate(null, ret); @@ -21,11 +32,17 @@ public class HTLCUpdate extends CommonBase { return ret_hu_conv; } + /** + * Serialize the HTLCUpdate object into a byte array which can be read by HTLCUpdate_read + */ public byte[] write() { byte[] ret = bindings.HTLCUpdate_write(this.ptr); return ret; } + /** + * Read a HTLCUpdate from a byte array, created by HTLCUpdate_write + */ public static Result_HTLCUpdateDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.HTLCUpdate_read(ser); Result_HTLCUpdateDecodeErrorZ ret_hu_conv = Result_HTLCUpdateDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java b/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java index 2ca98f51..455c1ed2 100644 --- a/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/HolderCommitmentTransaction.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Information needed to build and sign a holder's commitment transaction. + * + * The transaction is only signed once we are ready to broadcast. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class HolderCommitmentTransaction extends CommonBase { HolderCommitmentTransaction(Object _dummy, long ptr) { super(ptr); } @@ -14,19 +20,31 @@ public class HolderCommitmentTransaction extends CommonBase { if (ptr != 0) { bindings.HolderCommitmentTransaction_free(ptr); } } + /** + * Our counterparty's signature for the transaction + */ public byte[] get_counterparty_sig() { byte[] ret = bindings.HolderCommitmentTransaction_get_counterparty_sig(this.ptr); return ret; } + /** + * Our counterparty's signature for the transaction + */ public void set_counterparty_sig(byte[] val) { bindings.HolderCommitmentTransaction_set_counterparty_sig(this.ptr, val); } + /** + * All non-dust counterparty HTLC signatures, in the order they appear in the transaction + */ public void set_counterparty_htlc_sigs(byte[][] val) { bindings.HolderCommitmentTransaction_set_counterparty_htlc_sigs(this.ptr, val); } + /** + * Creates a copy of the HolderCommitmentTransaction + */ public HolderCommitmentTransaction clone() { long ret = bindings.HolderCommitmentTransaction_clone(this.ptr); HolderCommitmentTransaction ret_hu_conv = new HolderCommitmentTransaction(null, ret); @@ -34,17 +52,27 @@ public class HolderCommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * Serialize the HolderCommitmentTransaction object into a byte array which can be read by HolderCommitmentTransaction_read + */ public byte[] write() { byte[] ret = bindings.HolderCommitmentTransaction_write(this.ptr); return ret; } + /** + * Read a HolderCommitmentTransaction from a byte array, created by HolderCommitmentTransaction_write + */ public static Result_HolderCommitmentTransactionDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.HolderCommitmentTransaction_read(ser); Result_HolderCommitmentTransactionDecodeErrorZ ret_hu_conv = Result_HolderCommitmentTransactionDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Create a new holder transaction with the given counterparty signatures. + * The funding keys are used to figure out which signature should go first when building the transaction for broadcast. + */ public static HolderCommitmentTransaction constructor_new(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); HolderCommitmentTransaction ret_hu_conv = new HolderCommitmentTransaction(null, ret); diff --git a/src/main/java/org/ldk/structs/IgnoringMessageHandler.java b/src/main/java/org/ldk/structs/IgnoringMessageHandler.java index 65ca6c6f..d1cc45a0 100644 --- a/src/main/java/org/ldk/structs/IgnoringMessageHandler.java +++ b/src/main/java/org/ldk/structs/IgnoringMessageHandler.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A dummy struct which implements `RoutingMessageHandler` without storing any routing information + * or doing any processing. You can provide one of these as the route_handler in a MessageHandler. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class IgnoringMessageHandler extends CommonBase { IgnoringMessageHandler(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +19,9 @@ public class IgnoringMessageHandler extends CommonBase { if (ptr != 0) { bindings.IgnoringMessageHandler_free(ptr); } } + /** + * Constructs a new IgnoringMessageHandler given each field + */ public static IgnoringMessageHandler constructor_new() { long ret = bindings.IgnoringMessageHandler_new(); IgnoringMessageHandler ret_hu_conv = new IgnoringMessageHandler(null, ret); @@ -21,6 +29,10 @@ public class IgnoringMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new MessageSendEventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned MessageSendEventsProvider must be freed before this_arg is + */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.IgnoringMessageHandler_as_MessageSendEventsProvider(this.ptr); MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); @@ -28,6 +40,10 @@ public class IgnoringMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new RoutingMessageHandler which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned RoutingMessageHandler must be freed before this_arg is + */ public RoutingMessageHandler as_RoutingMessageHandler() { long ret = bindings.IgnoringMessageHandler_as_RoutingMessageHandler(this.ptr); RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); diff --git a/src/main/java/org/ldk/structs/InMemorySigner.java b/src/main/java/org/ldk/structs/InMemorySigner.java index 5bf7ca9b..d3bf409e 100644 --- a/src/main/java/org/ldk/structs/InMemorySigner.java +++ b/src/main/java/org/ldk/structs/InMemorySigner.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A simple implementation of Sign that just keeps the private keys in memory. + * + * This implementation performs no policy checks and is insufficient by itself as + * a secure external signer. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class InMemorySigner extends CommonBase { InMemorySigner(Object _dummy, long ptr) { super(ptr); } @@ -14,60 +21,99 @@ public class InMemorySigner extends CommonBase { if (ptr != 0) { bindings.InMemorySigner_free(ptr); } } + /** + * Private key of anchor tx + */ public byte[] get_funding_key() { byte[] ret = bindings.InMemorySigner_get_funding_key(this.ptr); return ret; } + /** + * Private key of anchor tx + */ public void set_funding_key(byte[] val) { bindings.InMemorySigner_set_funding_key(this.ptr, val); } + /** + * Holder secret key for blinded revocation pubkey + */ public byte[] get_revocation_base_key() { byte[] ret = bindings.InMemorySigner_get_revocation_base_key(this.ptr); return ret; } + /** + * Holder secret key for blinded revocation pubkey + */ public void set_revocation_base_key(byte[] val) { bindings.InMemorySigner_set_revocation_base_key(this.ptr, val); } + /** + * Holder secret key used for our balance in counterparty-broadcasted commitment transactions + */ public byte[] get_payment_key() { byte[] ret = bindings.InMemorySigner_get_payment_key(this.ptr); return ret; } + /** + * Holder secret key used for our balance in counterparty-broadcasted commitment transactions + */ public void set_payment_key(byte[] val) { bindings.InMemorySigner_set_payment_key(this.ptr, val); } + /** + * Holder secret key used in HTLC tx + */ public byte[] get_delayed_payment_base_key() { byte[] ret = bindings.InMemorySigner_get_delayed_payment_base_key(this.ptr); return ret; } + /** + * Holder secret key used in HTLC tx + */ public void set_delayed_payment_base_key(byte[] val) { bindings.InMemorySigner_set_delayed_payment_base_key(this.ptr, val); } + /** + * Holder htlc secret key used in commitment tx htlc outputs + */ public byte[] get_htlc_base_key() { byte[] ret = bindings.InMemorySigner_get_htlc_base_key(this.ptr); return ret; } + /** + * Holder htlc secret key used in commitment tx htlc outputs + */ public void set_htlc_base_key(byte[] val) { bindings.InMemorySigner_set_htlc_base_key(this.ptr, val); } + /** + * Commitment seed + */ public byte[] get_commitment_seed() { byte[] ret = bindings.InMemorySigner_get_commitment_seed(this.ptr); return ret; } + /** + * Commitment seed + */ public void set_commitment_seed(byte[] val) { bindings.InMemorySigner_set_commitment_seed(this.ptr, val); } + /** + * Creates a copy of the InMemorySigner + */ public InMemorySigner clone() { long ret = bindings.InMemorySigner_clone(this.ptr); InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); @@ -75,6 +121,9 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Create a new InMemorySigner + */ public static InMemorySigner constructor_new(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); InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); @@ -82,6 +131,10 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Counterparty pubkeys. + * Will panic if ready_channel wasn't called. + */ public ChannelPublicKeys counterparty_pubkeys() { long ret = bindings.InMemorySigner_counterparty_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -89,21 +142,41 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * The contest_delay value specified by our counterparty and applied on holder-broadcastable + * transactions, ie the amount of time that we have to wait to recover our funds if we + * broadcast a transaction. + * Will panic if ready_channel wasn't called. + */ public short counterparty_selected_contest_delay() { short ret = bindings.InMemorySigner_counterparty_selected_contest_delay(this.ptr); return ret; } + /** + * The contest_delay value specified by us and applied on transactions broadcastable + * by our counterparty, ie the amount of time that they have to wait to recover their funds + * if they broadcast a transaction. + * Will panic if ready_channel wasn't called. + */ public short holder_selected_contest_delay() { short ret = bindings.InMemorySigner_holder_selected_contest_delay(this.ptr); return ret; } + /** + * Whether the holder is the initiator + * Will panic if ready_channel wasn't called. + */ public boolean is_outbound() { boolean ret = bindings.InMemorySigner_is_outbound(this.ptr); return ret; } + /** + * Funding outpoint + * Will panic if ready_channel wasn't called. + */ public OutPoint funding_outpoint() { long ret = bindings.InMemorySigner_funding_outpoint(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -111,6 +184,12 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Obtain a ChannelTransactionParameters for this channel, to be used when verifying or + * building transactions. + * + * Will panic if ready_channel wasn't called. + */ public ChannelTransactionParameters get_channel_parameters() { long ret = bindings.InMemorySigner_get_channel_parameters(this.ptr); ChannelTransactionParameters ret_hu_conv = new ChannelTransactionParameters(null, ret); @@ -118,6 +197,13 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Sign the single input of spend_tx at index `input_idx` which spends the output + * described by descriptor, returning the witness stack for the input. + * + * Returns an Err if the input at input_idx does not exist, has a non-empty script_sig, + * or is not spending the outpoint described by `descriptor.outpoint`. + */ 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); Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); @@ -125,6 +211,14 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Sign the single input of spend_tx at index `input_idx` which spends the output + * described by descriptor, returning the witness stack for the input. + * + * Returns an Err if the input at input_idx does not exist, has a non-empty script_sig, + * is not spending the outpoint described by `descriptor.outpoint`, or does not have a + * sequence set to `descriptor.to_self_delay`. + */ 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); Result_CVec_CVec_u8ZZNoneZ ret_hu_conv = Result_CVec_CVec_u8ZZNoneZ.constr_from_ptr(ret); @@ -132,6 +226,10 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new Sign which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned Sign must be freed before this_arg is + */ public Sign as_Sign() { long ret = bindings.InMemorySigner_as_Sign(this.ptr); Sign ret_hu_conv = new Sign(null, ret); @@ -139,11 +237,17 @@ public class InMemorySigner extends CommonBase { return ret_hu_conv; } + /** + * Serialize the InMemorySigner object into a byte array which can be read by InMemorySigner_read + */ public byte[] write() { byte[] ret = bindings.InMemorySigner_write(this.ptr); return ret; } + /** + * Read a InMemorySigner from a byte array, created by InMemorySigner_write + */ public static Result_InMemorySignerDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.InMemorySigner_read(ser); Result_InMemorySignerDecodeErrorZ ret_hu_conv = Result_InMemorySignerDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Init.java b/src/main/java/org/ldk/structs/Init.java index 867b1ab9..78b0c502 100644 --- a/src/main/java/org/ldk/structs/Init.java +++ b/src/main/java/org/ldk/structs/Init.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An init message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Init extends CommonBase { Init(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class Init extends CommonBase { if (ptr != 0) { bindings.Init_free(ptr); } } + /** + * The relevant features which the sender supports + */ public InitFeatures get_features() { long ret = bindings.Init_get_features(this.ptr); InitFeatures ret_hu_conv = new InitFeatures(null, ret); @@ -21,11 +28,17 @@ public class Init extends CommonBase { return ret_hu_conv; } + /** + * The relevant features which the sender supports + */ public void set_features(InitFeatures val) { bindings.Init_set_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new Init given each field + */ public static Init constructor_new(InitFeatures features_arg) { long ret = bindings.Init_new(features_arg == null ? 0 : features_arg.ptr & ~1); Init ret_hu_conv = new Init(null, ret); @@ -34,6 +47,9 @@ public class Init extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the Init + */ public Init clone() { long ret = bindings.Init_clone(this.ptr); Init ret_hu_conv = new Init(null, ret); @@ -41,11 +57,17 @@ public class Init extends CommonBase { return ret_hu_conv; } + /** + * Serialize the Init object into a byte array which can be read by Init_read + */ public byte[] write() { byte[] ret = bindings.Init_write(this.ptr); return ret; } + /** + * Read a Init from a byte array, created by Init_write + */ public static Result_InitDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.Init_read(ser); Result_InitDecodeErrorZ ret_hu_conv = Result_InitDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/InitFeatures.java b/src/main/java/org/ldk/structs/InitFeatures.java index 2ab513ac..38195c91 100644 --- a/src/main/java/org/ldk/structs/InitFeatures.java +++ b/src/main/java/org/ldk/structs/InitFeatures.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Features used within an `init` message. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class InitFeatures extends CommonBase { InitFeatures(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class InitFeatures extends CommonBase { if (ptr != 0) { bindings.InitFeatures_free(ptr); } } + /** + * Creates a copy of the InitFeatures + */ public InitFeatures clone() { long ret = bindings.InitFeatures_clone(this.ptr); InitFeatures ret_hu_conv = new InitFeatures(null, ret); @@ -21,6 +28,9 @@ public class InitFeatures extends CommonBase { return ret_hu_conv; } + /** + * Create a blank Features with no features set + */ public static InitFeatures constructor_empty() { long ret = bindings.InitFeatures_empty(); InitFeatures ret_hu_conv = new InitFeatures(null, ret); @@ -28,6 +38,11 @@ public class InitFeatures extends CommonBase { return ret_hu_conv; } + /** + * Creates features known by the implementation as defined by [`T::KNOWN_FEATURE_FLAGS`]. + * + * [`T::KNOWN_FEATURE_FLAGS`]: sealed/trait.Context.html#associatedconstant.KNOWN_FEATURE_FLAGS + */ public static InitFeatures constructor_known() { long ret = bindings.InitFeatures_known(); InitFeatures ret_hu_conv = new InitFeatures(null, ret); @@ -35,11 +50,17 @@ public class InitFeatures extends CommonBase { return ret_hu_conv; } + /** + * Serialize the InitFeatures object into a byte array which can be read by InitFeatures_read + */ public byte[] write() { byte[] ret = bindings.InitFeatures_write(this.ptr); return ret; } + /** + * Read a InitFeatures from a byte array, created by InitFeatures_write + */ public static Result_InitFeaturesDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.InitFeatures_read(ser); Result_InitFeaturesDecodeErrorZ ret_hu_conv = Result_InitFeaturesDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/KeysInterface.java b/src/main/java/org/ldk/structs/KeysInterface.java index d3463631..bbb5df98 100644 --- a/src/main/java/org/ldk/structs/KeysInterface.java +++ b/src/main/java/org/ldk/structs/KeysInterface.java @@ -5,6 +5,9 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait to describe an object which can get user secrets and key material. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class KeysInterface extends CommonBase { final bindings.LDKKeysInterface bindings_instance; @@ -20,11 +23,50 @@ public class KeysInterface extends CommonBase { } public static interface KeysInterfaceInterface { + /** + * Get node secret key (aka node_id or network_key). + * + * This method must return the same value each time it is called. + */ byte[] get_node_secret(); + /** + * Get a script pubkey which we send funds to when claiming on-chain contestable outputs. + * + * This method should return a different value each time it is called, to avoid linking + * on-chain funds across channels as controlled to the same user. + */ byte[] get_destination_script(); + /** + * Get a public key which we will send funds to (in the form of a P2WPKH output) when closing + * a channel. + * + * This method should return a different value each time it is called, to avoid linking + * on-chain funds across channels as controlled to the same user. + */ byte[] get_shutdown_pubkey(); + /** + * Get a new set of Sign for per-channel secrets. These MUST be unique even if you + * restarted with some stale data! + * + * This method must return a different value each time it is called. + */ Sign get_channel_signer(boolean inbound, long channel_value_satoshis); + /** + * Gets a unique, cryptographically-secure, random 32 byte value. This is used for encrypting + * onion packets and for temporary channel IDs. There is no requirement that these be + * persisted anywhere, though they must be unique across restarts. + * + * This method must return a different value each time it is called. + */ byte[] get_secure_random_bytes(); + /** + * Reads a `Signer` for this `KeysInterface` from the given input stream. + * This is only called during deserialization of other objects which contain + * `Sign`-implementing objects (ie `ChannelMonitor`s and `ChannelManager`s). + * The bytes are exactly those which `::write()` writes, and + * contain no versioning scheme. You may wish to include your own version prefix and ensure + * you've read all of the provided bytes to ensure no corruption occurred. + */ Result_SignDecodeErrorZ read_chan_signer(byte[] reader); } private static class LDKKeysInterfaceHolder { KeysInterface held; } @@ -61,21 +103,45 @@ public class KeysInterface extends CommonBase { }); return impl_holder.held; } + /** + * Get node secret key (aka node_id or network_key). + * + * This method must return the same value each time it is called. + */ public byte[] get_node_secret() { byte[] ret = bindings.KeysInterface_get_node_secret(this.ptr); return ret; } + /** + * Get a script pubkey which we send funds to when claiming on-chain contestable outputs. + * + * This method should return a different value each time it is called, to avoid linking + * on-chain funds across channels as controlled to the same user. + */ public byte[] get_destination_script() { byte[] ret = bindings.KeysInterface_get_destination_script(this.ptr); return ret; } + /** + * Get a public key which we will send funds to (in the form of a P2WPKH output) when closing + * a channel. + * + * This method should return a different value each time it is called, to avoid linking + * on-chain funds across channels as controlled to the same user. + */ public byte[] get_shutdown_pubkey() { byte[] ret = bindings.KeysInterface_get_shutdown_pubkey(this.ptr); return ret; } + /** + * Get a new set of Sign for per-channel secrets. These MUST be unique even if you + * restarted with some stale data! + * + * This method must return a different value each time it is called. + */ public Sign get_channel_signer(boolean inbound, long channel_value_satoshis) { long ret = bindings.KeysInterface_get_channel_signer(this.ptr, inbound, channel_value_satoshis); Sign ret_hu_conv = new Sign(null, ret); @@ -83,11 +149,26 @@ public class KeysInterface extends CommonBase { return ret_hu_conv; } + /** + * Gets a unique, cryptographically-secure, random 32 byte value. This is used for encrypting + * onion packets and for temporary channel IDs. There is no requirement that these be + * persisted anywhere, though they must be unique across restarts. + * + * This method must return a different value each time it is called. + */ public byte[] get_secure_random_bytes() { byte[] ret = bindings.KeysInterface_get_secure_random_bytes(this.ptr); return ret; } + /** + * Reads a `Signer` for this `KeysInterface` from the given input stream. + * This is only called during deserialization of other objects which contain + * `Sign`-implementing objects (ie `ChannelMonitor`s and `ChannelManager`s). + * The bytes are exactly those which `::write()` writes, and + * contain no versioning scheme. You may wish to include your own version prefix and ensure + * you've read all of the provided bytes to ensure no corruption occurred. + */ public Result_SignDecodeErrorZ read_chan_signer(byte[] reader) { long ret = bindings.KeysInterface_read_chan_signer(this.ptr, reader); Result_SignDecodeErrorZ ret_hu_conv = Result_SignDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/KeysManager.java b/src/main/java/org/ldk/structs/KeysManager.java index c0c4cfe6..d9dfdf14 100644 --- a/src/main/java/org/ldk/structs/KeysManager.java +++ b/src/main/java/org/ldk/structs/KeysManager.java @@ -5,6 +5,16 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Simple KeysInterface implementor that takes a 32-byte seed for use as a BIP 32 extended key + * and derives keys from that. + * + * Your node_id is seed/0' + * ChannelMonitor closes may use seed/1' + * Cooperative closes may use seed/2' + * The two close keys may be needed to claim on-chain funds! + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class KeysManager extends CommonBase { KeysManager(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +24,27 @@ public class KeysManager extends CommonBase { if (ptr != 0) { bindings.KeysManager_free(ptr); } } + /** + * Constructs a KeysManager from a 32-byte seed. If the seed is in some way biased (eg your + * CSRNG is busted) this may panic (but more importantly, you will possibly lose funds). + * starting_time isn't strictly required to actually be a time, but it must absolutely, + * without a doubt, be unique to this instance. ie if you start multiple times with the same + * seed, starting_time must be unique to each run. Thus, the easiest way to achieve this is to + * simply use the current time (with very high precision). + * + * The seed MUST be backed up safely prior to use so that the keys can be re-created, however, + * obviously, starting_time should be unique every time you reload the library - it is only + * used to generate new ephemeral key data (which will be stored by the individual channel if + * necessary). + * + * Note that the seed is required to recover certain on-chain funds independent of + * ChannelMonitor data, though a current copy of ChannelMonitor data is also required for any + * channel, and some on-chain during-closing funds. + * + * Note that until the 0.1 release there is no guarantee of backward compatibility between + * versions. Once the library is more fully supported, the docs will be updated to include a + * detailed description of the guarantee. + */ public static KeysManager constructor_new(byte[] seed, long starting_time_secs, int starting_time_nanos) { long ret = bindings.KeysManager_new(seed, starting_time_secs, starting_time_nanos); KeysManager ret_hu_conv = new KeysManager(null, ret); @@ -21,6 +52,13 @@ public class KeysManager extends CommonBase { return ret_hu_conv; } + /** + * Derive an old Sign containing per-channel secrets based on a key derivation parameters. + * + * Key derivation parameters are accessible through a per-channel secrets + * Sign::channel_keys_id and is provided inside DynamicOuputP2WSH in case of + * onchain output detection for which a corresponding delayed_payment_key must be derived. + */ public InMemorySigner derive_channel_keys(long channel_value_satoshis, byte[] params) { long ret = bindings.KeysManager_derive_channel_keys(this.ptr, channel_value_satoshis, params); InMemorySigner ret_hu_conv = new InMemorySigner(null, ret); @@ -28,6 +66,19 @@ public class KeysManager extends CommonBase { return ret_hu_conv; } + /** + * Creates a Transaction which spends the given descriptors to the given outputs, plus an + * output to the given change destination (if sufficient change value remains). The + * transaction will have a feerate, at least, of the given value. + * + * Returns `Err(())` if the output value is greater than the input value minus required fee or + * if a descriptor was duplicated. + * + * We do not enforce that outputs meet the dust limit or that any output scripts are standard. + * + * May panic if the `SpendableOutputDescriptor`s were not generated by Channels which used + * this KeysManager or one of the `InMemorySigner` created by this KeysManager. + */ 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); Result_TransactionNoneZ ret_hu_conv = Result_TransactionNoneZ.constr_from_ptr(ret); @@ -36,6 +87,10 @@ public class KeysManager extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new KeysInterface which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned KeysInterface must be freed before this_arg is + */ public KeysInterface as_KeysInterface() { long ret = bindings.KeysManager_as_KeysInterface(this.ptr); KeysInterface ret_hu_conv = new KeysInterface(null, ret); diff --git a/src/main/java/org/ldk/structs/LightningError.java b/src/main/java/org/ldk/structs/LightningError.java index d4138bf4..9c82673d 100644 --- a/src/main/java/org/ldk/structs/LightningError.java +++ b/src/main/java/org/ldk/structs/LightningError.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An Err type for failure to process messages. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class LightningError extends CommonBase { LightningError(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +18,24 @@ public class LightningError extends CommonBase { if (ptr != 0) { bindings.LightningError_free(ptr); } } + /** + * A human-readable message describing the error + */ public String get_err() { String ret = bindings.LightningError_get_err(this.ptr); return ret; } + /** + * A human-readable message describing the error + */ public void set_err(byte[] val) { bindings.LightningError_set_err(this.ptr, val); } + /** + * The action which should be taken against the offending peer. + */ public ErrorAction get_action() { long ret = bindings.LightningError_get_action(this.ptr); ErrorAction ret_hu_conv = ErrorAction.constr_from_ptr(ret); @@ -30,10 +43,16 @@ public class LightningError extends CommonBase { return ret_hu_conv; } + /** + * The action which should be taken against the offending peer. + */ public void set_action(ErrorAction val) { bindings.LightningError_set_action(this.ptr, val.ptr); } + /** + * Constructs a new LightningError given each field + */ public static LightningError constructor_new(byte[] err_arg, ErrorAction action_arg) { long ret = bindings.LightningError_new(err_arg, action_arg.ptr); LightningError ret_hu_conv = new LightningError(null, ret); @@ -41,6 +60,9 @@ public class LightningError extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the LightningError + */ public LightningError clone() { long ret = bindings.LightningError_clone(this.ptr); LightningError ret_hu_conv = new LightningError(null, ret); diff --git a/src/main/java/org/ldk/structs/Listen.java b/src/main/java/org/ldk/structs/Listen.java index 075137cb..456b44f8 100644 --- a/src/main/java/org/ldk/structs/Listen.java +++ b/src/main/java/org/ldk/structs/Listen.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * The `Listen` trait is used to be notified of when blocks have been connected or disconnected + * from the chain. + * + * Useful when needing to replay chain data upon startup or as new chain events occur. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Listen extends CommonBase { final bindings.LDKListen bindings_instance; @@ -20,7 +26,13 @@ public class Listen extends CommonBase { } public static interface ListenInterface { + /** + * Notifies the listener that a block was added at the given height. + */ void block_connected(byte[] block, int height); + /** + * Notifies the listener that a block was removed at the given height. + */ void block_disconnected(byte[] header, int height); } private static class LDKListenHolder { Listen held; } @@ -36,10 +48,16 @@ public class Listen extends CommonBase { }); return impl_holder.held; } + /** + * Notifies the listener that a block was added at the given height. + */ public void block_connected(byte[] block, int height) { bindings.Listen_block_connected(this.ptr, block, height); } + /** + * Notifies the listener that a block was removed at the given height. + */ public void block_disconnected(byte[] header, int height) { bindings.Listen_block_disconnected(this.ptr, header, height); } diff --git a/src/main/java/org/ldk/structs/LockedNetworkGraph.java b/src/main/java/org/ldk/structs/LockedNetworkGraph.java index 62647c26..c77af379 100644 --- a/src/main/java/org/ldk/structs/LockedNetworkGraph.java +++ b/src/main/java/org/ldk/structs/LockedNetworkGraph.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A simple newtype for RwLockReadGuard<'a, NetworkGraph>. + * This exists only to make accessing a RwLock possible from + * the C bindings, as it can be done directly in Rust code. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class LockedNetworkGraph extends CommonBase implements AutoCloseable { LockedNetworkGraph(Object _dummy, long ptr) { super(ptr); } @@ -12,6 +18,9 @@ public class LockedNetworkGraph extends CommonBase implements AutoCloseable { if (ptr != 0) { bindings.LockedNetworkGraph_free(ptr); } } + /** + * Get a reference to the NetworkGraph which this read-lock contains. + */ public NetworkGraph graph() { long ret = bindings.LockedNetworkGraph_graph(this.ptr); NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); diff --git a/src/main/java/org/ldk/structs/Logger.java b/src/main/java/org/ldk/structs/Logger.java index 02b5075a..4edaa8af 100644 --- a/src/main/java/org/ldk/structs/Logger.java +++ b/src/main/java/org/ldk/structs/Logger.java @@ -5,6 +5,9 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait encapsulating the operations required of a logger + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Logger extends CommonBase { final bindings.LDKLogger bindings_instance; @@ -20,6 +23,9 @@ public class Logger extends CommonBase { } public static interface LoggerInterface { + /** + * Logs the `Record` + */ void log(String record); } private static class LDKLoggerHolder { Logger held; } diff --git a/src/main/java/org/ldk/structs/MessageHandler.java b/src/main/java/org/ldk/structs/MessageHandler.java index 389e2a88..9a233224 100644 --- a/src/main/java/org/ldk/structs/MessageHandler.java +++ b/src/main/java/org/ldk/structs/MessageHandler.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Provides references to trait impls which handle different types of messages. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MessageHandler extends CommonBase { MessageHandler(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,10 @@ public class MessageHandler extends CommonBase { if (ptr != 0) { bindings.MessageHandler_free(ptr); } } + /** + * A message handler which handles messages specific to channels. Usually this is just a + * ChannelManager object or a ErroringMessageHandler. + */ public ChannelMessageHandler get_chan_handler() { long ret = bindings.MessageHandler_get_chan_handler(this.ptr); ChannelMessageHandler ret_hu_conv = new ChannelMessageHandler(null, ret); @@ -21,11 +29,19 @@ public class MessageHandler extends CommonBase { return ret_hu_conv; } + /** + * A message handler which handles messages specific to channels. Usually this is just a + * ChannelManager object or a ErroringMessageHandler. + */ public void set_chan_handler(ChannelMessageHandler val) { bindings.MessageHandler_set_chan_handler(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * A message handler which handles messages updating our knowledge of the network channel + * graph. Usually this is just a NetGraphMsgHandlerMonitor object or an IgnoringMessageHandler. + */ public RoutingMessageHandler get_route_handler() { long ret = bindings.MessageHandler_get_route_handler(this.ptr); RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); @@ -33,11 +49,18 @@ public class MessageHandler extends CommonBase { return ret_hu_conv; } + /** + * A message handler which handles messages updating our knowledge of the network channel + * graph. Usually this is just a NetGraphMsgHandlerMonitor object or an IgnoringMessageHandler. + */ public void set_route_handler(RoutingMessageHandler val) { bindings.MessageHandler_set_route_handler(this.ptr, val == null ? 0 : val.ptr); this.ptrs_to.add(val); } + /** + * Constructs a new MessageHandler given each field + */ public static MessageHandler constructor_new(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); MessageHandler ret_hu_conv = new MessageHandler(null, ret); diff --git a/src/main/java/org/ldk/structs/MessageSendEvent.java b/src/main/java/org/ldk/structs/MessageSendEvent.java index 32be00ea..8327eae7 100644 --- a/src/main/java/org/ldk/structs/MessageSendEvent.java +++ b/src/main/java/org/ldk/structs/MessageSendEvent.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An event generated by ChannelManager which indicates a message should be sent to a peer (or + * broadcast to most peers). + * These events are handled by PeerManager::process_events if you are using a PeerManager. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MessageSendEvent extends CommonBase { private MessageSendEvent(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/MessageSendEventsProvider.java b/src/main/java/org/ldk/structs/MessageSendEventsProvider.java index c8bc2387..c548e4e4 100644 --- a/src/main/java/org/ldk/structs/MessageSendEventsProvider.java +++ b/src/main/java/org/ldk/structs/MessageSendEventsProvider.java @@ -5,6 +5,9 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait indicating an object may generate message send events + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MessageSendEventsProvider extends CommonBase { final bindings.LDKMessageSendEventsProvider bindings_instance; @@ -20,6 +23,10 @@ public class MessageSendEventsProvider extends CommonBase { } public static interface MessageSendEventsProviderInterface { + /** + * Gets the list of pending events which were generated by previous actions, clearing the list + * in the process. + */ MessageSendEvent[] get_and_clear_pending_msg_events(); } private static class LDKMessageSendEventsProviderHolder { MessageSendEventsProvider held; } @@ -35,6 +42,10 @@ public class MessageSendEventsProvider extends CommonBase { }); return impl_holder.held; } + /** + * Gets the list of pending events which were generated by previous actions, clearing the list + * in the process. + */ public MessageSendEvent[] get_and_clear_pending_msg_events() { long[] ret = bindings.MessageSendEventsProvider_get_and_clear_pending_msg_events(this.ptr); MessageSendEvent[] ret_conv_18_arr = new MessageSendEvent[ret.length]; diff --git a/src/main/java/org/ldk/structs/MonitorEvent.java b/src/main/java/org/ldk/structs/MonitorEvent.java index c6500e64..e3af020d 100644 --- a/src/main/java/org/ldk/structs/MonitorEvent.java +++ b/src/main/java/org/ldk/structs/MonitorEvent.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An event to be processed by the ChannelManager. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MonitorEvent extends CommonBase { private MonitorEvent(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/MonitorUpdateError.java b/src/main/java/org/ldk/structs/MonitorUpdateError.java index 419e0160..6c6c2783 100644 --- a/src/main/java/org/ldk/structs/MonitorUpdateError.java +++ b/src/main/java/org/ldk/structs/MonitorUpdateError.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * General Err type for ChannelMonitor actions. Generally, this implies that the data provided is + * inconsistent with the ChannelMonitor being called. eg for ChannelMonitor::update_monitor this + * means you tried to update a monitor for a different channel or the ChannelMonitorUpdate was + * corrupted. + * Contains a developer-readable error message. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class MonitorUpdateError extends CommonBase { MonitorUpdateError(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +22,9 @@ public class MonitorUpdateError extends CommonBase { if (ptr != 0) { bindings.MonitorUpdateError_free(ptr); } } + /** + * Creates a copy of the MonitorUpdateError + */ public MonitorUpdateError clone() { long ret = bindings.MonitorUpdateError_clone(this.ptr); MonitorUpdateError ret_hu_conv = new MonitorUpdateError(null, ret); diff --git a/src/main/java/org/ldk/structs/NetAddress.java b/src/main/java/org/ldk/structs/NetAddress.java index 6dd3708a..2cde093a 100644 --- a/src/main/java/org/ldk/structs/NetAddress.java +++ b/src/main/java/org/ldk/structs/NetAddress.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An address which can be used to connect to a remote peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NetAddress extends CommonBase { private NetAddress(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/NetGraphMsgHandler.java b/src/main/java/org/ldk/structs/NetGraphMsgHandler.java index c3e2d406..26ece016 100644 --- a/src/main/java/org/ldk/structs/NetGraphMsgHandler.java +++ b/src/main/java/org/ldk/structs/NetGraphMsgHandler.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Receives and validates network updates from peers, + * stores authentic and relevant data as a network graph. + * This network graph is then used for routing payments. + * Provides interface to help with initial routing sync by + * serving historical announcements. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NetGraphMsgHandler extends CommonBase { NetGraphMsgHandler(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +22,13 @@ public class NetGraphMsgHandler extends CommonBase { if (ptr != 0) { bindings.NetGraphMsgHandler_free(ptr); } } + /** + * Creates a new tracker of the actual state of the network of channels and nodes, + * assuming a fresh network graph. + * 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. + */ public static NetGraphMsgHandler constructor_new(byte[] genesis_hash, Access chain_access, Logger logger) { long ret = bindings.NetGraphMsgHandler_new(genesis_hash, chain_access == null ? 0 : chain_access.ptr, logger == null ? 0 : logger.ptr); NetGraphMsgHandler ret_hu_conv = new NetGraphMsgHandler(null, ret); @@ -23,6 +38,10 @@ public class NetGraphMsgHandler extends CommonBase { return ret_hu_conv; } + /** + * Creates a new tracker of the actual state of the network of channels and nodes, + * assuming an existing Network Graph. + */ public static NetGraphMsgHandler constructor_from_net_graph(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); NetGraphMsgHandler ret_hu_conv = new NetGraphMsgHandler(null, ret); @@ -33,11 +52,22 @@ public class NetGraphMsgHandler extends CommonBase { return ret_hu_conv; } + /** + * 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. + */ public void add_chain_access(Access chain_access) { bindings.NetGraphMsgHandler_add_chain_access(this.ptr, chain_access == null ? 0 : chain_access.ptr); this.ptrs_to.add(chain_access); } + /** + * Take a read lock on the network_graph and return it in the C-bindings + * newtype helper. This is likely only useful when called via the C + * bindings as you can call `self.network_graph.read().unwrap()` in Rust + * yourself. + */ public LockedNetworkGraph read_locked_graph() { long ret = bindings.NetGraphMsgHandler_read_locked_graph(this.ptr); LockedNetworkGraph ret_hu_conv = new LockedNetworkGraph(null, ret); @@ -45,6 +75,10 @@ public class NetGraphMsgHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new RoutingMessageHandler which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned RoutingMessageHandler must be freed before this_arg is + */ public RoutingMessageHandler as_RoutingMessageHandler() { long ret = bindings.NetGraphMsgHandler_as_RoutingMessageHandler(this.ptr); RoutingMessageHandler ret_hu_conv = new RoutingMessageHandler(null, ret); @@ -52,6 +86,10 @@ public class NetGraphMsgHandler extends CommonBase { return ret_hu_conv; } + /** + * Constructs a new MessageSendEventsProvider which calls the relevant methods on this_arg. + * This copies the `inner` pointer in this_arg and thus the returned MessageSendEventsProvider must be freed before this_arg is + */ public MessageSendEventsProvider as_MessageSendEventsProvider() { long ret = bindings.NetGraphMsgHandler_as_MessageSendEventsProvider(this.ptr); MessageSendEventsProvider ret_hu_conv = new MessageSendEventsProvider(null, ret); diff --git a/src/main/java/org/ldk/structs/NetworkGraph.java b/src/main/java/org/ldk/structs/NetworkGraph.java index b8badcc5..b397b47a 100644 --- a/src/main/java/org/ldk/structs/NetworkGraph.java +++ b/src/main/java/org/ldk/structs/NetworkGraph.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Represents the network as nodes and channels between them + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NetworkGraph extends CommonBase { NetworkGraph(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class NetworkGraph extends CommonBase { if (ptr != 0) { bindings.NetworkGraph_free(ptr); } } + /** + * Creates a copy of the NetworkGraph + */ public NetworkGraph clone() { long ret = bindings.NetworkGraph_clone(this.ptr); NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); @@ -21,17 +28,26 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * Serialize the NetworkGraph object into a byte array which can be read by NetworkGraph_read + */ public byte[] write() { byte[] ret = bindings.NetworkGraph_write(this.ptr); return ret; } + /** + * Read a NetworkGraph from a byte array, created by NetworkGraph_write + */ public static Result_NetworkGraphDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.NetworkGraph_read(ser); Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Creates a new, empty, network graph. + */ public static NetworkGraph constructor_new(byte[] genesis_hash) { long ret = bindings.NetworkGraph_new(genesis_hash); NetworkGraph ret_hu_conv = new NetworkGraph(null, ret); @@ -39,6 +55,14 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * For an already known node (from channel announcements), update its stored properties from a + * given node announcement. + * + * You probably don't want to call this directly, instead relying on a NetGraphMsgHandler's + * RoutingMessageHandler implementation to call it indirectly. This may be useful to accept + * routing messages from a source using a protocol other than the lightning P2P protocol. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -46,6 +70,12 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * For an already known node (from channel announcements), update its stored properties from a + * given node announcement without verifying the associated signatures. Because we aren't + * given the associated signatures here we cannot relay the node announcement to any of our + * peers. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -53,6 +83,16 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * Store or update channel info from a channel announcement. + * + * You probably don't want to call this directly, instead relying on a NetGraphMsgHandler's + * RoutingMessageHandler implementation to call it indirectly. This may be useful to accept + * routing messages from a source using a protocol other than the lightning P2P protocol. + * + * 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. + */ public Result_NoneLightningErrorZ update_channel_from_announcement(ChannelAnnouncement msg, 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -61,6 +101,14 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * Store or update channel info from a channel announcement without verifying the associated + * signatures. Because we aren't given the associated signatures here we cannot relay the + * channel announcement to any of our peers. + * + * 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. + */ public Result_NoneLightningErrorZ update_channel_from_unsigned_announcement(UnsignedChannelAnnouncement msg, 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -69,10 +117,24 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * Close a channel if a corresponding HTLC fail was sent. + * If permanent, removes a channel from the local storage. + * May cause the removal of nodes too, if this was their last channel. + * If not permanent, makes channels unavailable for routing. + */ public void close_channel_from_update(long short_channel_id, boolean is_permanent) { bindings.NetworkGraph_close_channel_from_update(this.ptr, short_channel_id, is_permanent); } + /** + * For an already known (from announcement) channel, update info about one of the directions + * of the channel. + * + * You probably don't want to call this directly, instead relying on a NetGraphMsgHandler's + * RoutingMessageHandler implementation to call it indirectly. This may be useful to accept + * routing messages from a source using a protocol other than the lightning P2P protocol. + */ public Result_NoneLightningErrorZ update_channel(ChannelUpdate msg) { long ret = bindings.NetworkGraph_update_channel(this.ptr, msg == null ? 0 : msg.ptr & ~1); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -80,6 +142,11 @@ public class NetworkGraph extends CommonBase { return ret_hu_conv; } + /** + * For an already known (from announcement) channel, update info about one of the directions + * of the channel without verifying the associated signatures. Because we aren't given the + * associated signatures here we cannot relay the channel update to any of our peers. + */ public Result_NoneLightningErrorZ update_channel_unsigned(UnsignedChannelUpdate msg) { long ret = bindings.NetworkGraph_update_channel_unsigned(this.ptr, msg == null ? 0 : msg.ptr & ~1); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/NodeAnnouncement.java b/src/main/java/org/ldk/structs/NodeAnnouncement.java index 2b83385c..70a912c3 100644 --- a/src/main/java/org/ldk/structs/NodeAnnouncement.java +++ b/src/main/java/org/ldk/structs/NodeAnnouncement.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A node_announcement message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NodeAnnouncement extends CommonBase { NodeAnnouncement(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +18,24 @@ public class NodeAnnouncement extends CommonBase { if (ptr != 0) { bindings.NodeAnnouncement_free(ptr); } } + /** + * The signature by the node key + */ public byte[] get_signature() { byte[] ret = bindings.NodeAnnouncement_get_signature(this.ptr); return ret; } + /** + * The signature by the node key + */ public void set_signature(byte[] val) { bindings.NodeAnnouncement_set_signature(this.ptr, val); } + /** + * The actual content of the announcement + */ public UnsignedNodeAnnouncement get_contents() { long ret = bindings.NodeAnnouncement_get_contents(this.ptr); UnsignedNodeAnnouncement ret_hu_conv = new UnsignedNodeAnnouncement(null, ret); @@ -30,11 +43,17 @@ public class NodeAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * The actual content of the announcement + */ public void set_contents(UnsignedNodeAnnouncement val) { bindings.NodeAnnouncement_set_contents(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new NodeAnnouncement given each field + */ public static NodeAnnouncement constructor_new(byte[] signature_arg, UnsignedNodeAnnouncement contents_arg) { long ret = bindings.NodeAnnouncement_new(signature_arg, contents_arg == null ? 0 : contents_arg.ptr & ~1); NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); @@ -43,6 +62,9 @@ public class NodeAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the NodeAnnouncement + */ public NodeAnnouncement clone() { long ret = bindings.NodeAnnouncement_clone(this.ptr); NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); @@ -50,11 +72,17 @@ public class NodeAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Serialize the NodeAnnouncement object into a byte array which can be read by NodeAnnouncement_read + */ public byte[] write() { byte[] ret = bindings.NodeAnnouncement_write(this.ptr); return ret; } + /** + * Read a NodeAnnouncement from a byte array, created by NodeAnnouncement_write + */ public static Result_NodeAnnouncementDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.NodeAnnouncement_read(ser); Result_NodeAnnouncementDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java b/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java index 561b4dd3..3c3b5739 100644 --- a/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java +++ b/src/main/java/org/ldk/structs/NodeAnnouncementInfo.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Information received in the latest node_announcement from this node. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NodeAnnouncementInfo extends CommonBase { NodeAnnouncementInfo(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class NodeAnnouncementInfo extends CommonBase { if (ptr != 0) { bindings.NodeAnnouncementInfo_free(ptr); } } + /** + * Protocol features the node announced support for + */ public NodeFeatures get_features() { long ret = bindings.NodeAnnouncementInfo_get_features(this.ptr); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -21,43 +28,79 @@ public class NodeAnnouncementInfo extends CommonBase { return ret_hu_conv; } + /** + * Protocol features the node announced support for + */ public void set_features(NodeFeatures val) { bindings.NodeAnnouncementInfo_set_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * When the last known update to the node state was issued. + * Value is opaque, as set in the announcement. + */ public int get_last_update() { int ret = bindings.NodeAnnouncementInfo_get_last_update(this.ptr); return ret; } + /** + * When the last known update to the node state was issued. + * Value is opaque, as set in the announcement. + */ public void set_last_update(int val) { bindings.NodeAnnouncementInfo_set_last_update(this.ptr, val); } + /** + * Color assigned to the node + */ public byte[] get_rgb() { byte[] ret = bindings.NodeAnnouncementInfo_get_rgb(this.ptr); return ret; } + /** + * Color assigned to the node + */ public void set_rgb(byte[] val) { bindings.NodeAnnouncementInfo_set_rgb(this.ptr, val); } + /** + * Moniker assigned to the node. + * May be invalid or malicious (eg control chars), + * should not be exposed to the user. + */ public byte[] get_alias() { byte[] ret = bindings.NodeAnnouncementInfo_get_alias(this.ptr); return ret; } + /** + * Moniker assigned to the node. + * May be invalid or malicious (eg control chars), + * should not be exposed to the user. + */ public void set_alias(byte[] val) { bindings.NodeAnnouncementInfo_set_alias(this.ptr, val); } + /** + * Internet-level addresses via which one can connect to the node + */ public void set_addresses(NetAddress[] val) { bindings.NodeAnnouncementInfo_set_addresses(this.ptr, Arrays.stream(val).mapToLong(val_conv_12 -> val_conv_12.ptr).toArray()); /* TODO 2 NetAddress */; } + /** + * An initial announcement of the node + * 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. + */ public NodeAnnouncement get_announcement_message() { long ret = bindings.NodeAnnouncementInfo_get_announcement_message(this.ptr); NodeAnnouncement ret_hu_conv = new NodeAnnouncement(null, ret); @@ -65,11 +108,20 @@ public class NodeAnnouncementInfo extends CommonBase { return ret_hu_conv; } + /** + * An initial announcement of the node + * 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. + */ public void set_announcement_message(NodeAnnouncement val) { bindings.NodeAnnouncementInfo_set_announcement_message(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new NodeAnnouncementInfo given each field + */ public static NodeAnnouncementInfo constructor_new(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); NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); @@ -80,6 +132,9 @@ public class NodeAnnouncementInfo extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the NodeAnnouncementInfo + */ public NodeAnnouncementInfo clone() { long ret = bindings.NodeAnnouncementInfo_clone(this.ptr); NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); @@ -87,11 +142,17 @@ public class NodeAnnouncementInfo extends CommonBase { return ret_hu_conv; } + /** + * Serialize the NodeAnnouncementInfo object into a byte array which can be read by NodeAnnouncementInfo_read + */ public byte[] write() { byte[] ret = bindings.NodeAnnouncementInfo_write(this.ptr); return ret; } + /** + * Read a NodeAnnouncementInfo from a byte array, created by NodeAnnouncementInfo_write + */ public static Result_NodeAnnouncementInfoDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.NodeAnnouncementInfo_read(ser); Result_NodeAnnouncementInfoDecodeErrorZ ret_hu_conv = Result_NodeAnnouncementInfoDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/NodeFeatures.java b/src/main/java/org/ldk/structs/NodeFeatures.java index a32f9680..b4d09e71 100644 --- a/src/main/java/org/ldk/structs/NodeFeatures.java +++ b/src/main/java/org/ldk/structs/NodeFeatures.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Features used within a `node_announcement` message. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NodeFeatures extends CommonBase { NodeFeatures(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class NodeFeatures extends CommonBase { if (ptr != 0) { bindings.NodeFeatures_free(ptr); } } + /** + * Creates a copy of the NodeFeatures + */ public NodeFeatures clone() { long ret = bindings.NodeFeatures_clone(this.ptr); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -21,6 +28,9 @@ public class NodeFeatures extends CommonBase { return ret_hu_conv; } + /** + * Create a blank Features with no features set + */ public static NodeFeatures constructor_empty() { long ret = bindings.NodeFeatures_empty(); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -28,6 +38,11 @@ public class NodeFeatures extends CommonBase { return ret_hu_conv; } + /** + * Creates features known by the implementation as defined by [`T::KNOWN_FEATURE_FLAGS`]. + * + * [`T::KNOWN_FEATURE_FLAGS`]: sealed/trait.Context.html#associatedconstant.KNOWN_FEATURE_FLAGS + */ public static NodeFeatures constructor_known() { long ret = bindings.NodeFeatures_known(); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -35,11 +50,17 @@ public class NodeFeatures extends CommonBase { return ret_hu_conv; } + /** + * Serialize the NodeFeatures object into a byte array which can be read by NodeFeatures_read + */ public byte[] write() { byte[] ret = bindings.NodeFeatures_write(this.ptr); return ret; } + /** + * Read a NodeFeatures from a byte array, created by NodeFeatures_write + */ public static Result_NodeFeaturesDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.NodeFeatures_read(ser); Result_NodeFeaturesDecodeErrorZ ret_hu_conv = Result_NodeFeaturesDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/NodeInfo.java b/src/main/java/org/ldk/structs/NodeInfo.java index 8b983739..42032374 100644 --- a/src/main/java/org/ldk/structs/NodeInfo.java +++ b/src/main/java/org/ldk/structs/NodeInfo.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Details about a node in the network, known from the network announcement. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class NodeInfo extends CommonBase { NodeInfo(Object _dummy, long ptr) { super(ptr); } @@ -14,10 +18,18 @@ public class NodeInfo extends CommonBase { if (ptr != 0) { bindings.NodeInfo_free(ptr); } } + /** + * All valid channels a node has announced + */ public void set_channels(long[] val) { bindings.NodeInfo_set_channels(this.ptr, val); } + /** + * 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. + */ public RoutingFees get_lowest_inbound_channel_fees() { long ret = bindings.NodeInfo_get_lowest_inbound_channel_fees(this.ptr); RoutingFees ret_hu_conv = new RoutingFees(null, ret); @@ -25,11 +37,21 @@ public class NodeInfo extends CommonBase { return ret_hu_conv; } + /** + * 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. + */ public void set_lowest_inbound_channel_fees(RoutingFees val) { bindings.NodeInfo_set_lowest_inbound_channel_fees(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * 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. + */ public NodeAnnouncementInfo get_announcement_info() { long ret = bindings.NodeInfo_get_announcement_info(this.ptr); NodeAnnouncementInfo ret_hu_conv = new NodeAnnouncementInfo(null, ret); @@ -37,11 +59,19 @@ public class NodeInfo extends CommonBase { return ret_hu_conv; } + /** + * 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. + */ public void set_announcement_info(NodeAnnouncementInfo val) { bindings.NodeInfo_set_announcement_info(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new NodeInfo given each field + */ public static NodeInfo constructor_new(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); NodeInfo ret_hu_conv = new NodeInfo(null, ret); @@ -51,6 +81,9 @@ public class NodeInfo extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the NodeInfo + */ public NodeInfo clone() { long ret = bindings.NodeInfo_clone(this.ptr); NodeInfo ret_hu_conv = new NodeInfo(null, ret); @@ -58,11 +91,17 @@ public class NodeInfo extends CommonBase { return ret_hu_conv; } + /** + * Serialize the NodeInfo object into a byte array which can be read by NodeInfo_read + */ public byte[] write() { byte[] ret = bindings.NodeInfo_write(this.ptr); return ret; } + /** + * Read a NodeInfo from a byte array, created by NodeInfo_write + */ public static Result_NodeInfoDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.NodeInfo_read(ser); Result_NodeInfoDecodeErrorZ ret_hu_conv = Result_NodeInfoDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/OpenChannel.java b/src/main/java/org/ldk/structs/OpenChannel.java index 3f2c4190..ce1dd35b 100644 --- a/src/main/java/org/ldk/structs/OpenChannel.java +++ b/src/main/java/org/ldk/structs/OpenChannel.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An open_channel message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class OpenChannel extends CommonBase { OpenChannel(Object _dummy, long ptr) { super(ptr); } @@ -14,168 +18,279 @@ public class OpenChannel extends CommonBase { if (ptr != 0) { bindings.OpenChannel_free(ptr); } } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public byte[] get_chain_hash() { byte[] ret = bindings.OpenChannel_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public void set_chain_hash(byte[] val) { bindings.OpenChannel_set_chain_hash(this.ptr, val); } + /** + * A temporary channel ID, until the funding outpoint is announced + */ public byte[] get_temporary_channel_id() { byte[] ret = bindings.OpenChannel_get_temporary_channel_id(this.ptr); return ret; } + /** + * A temporary channel ID, until the funding outpoint is announced + */ public void set_temporary_channel_id(byte[] val) { bindings.OpenChannel_set_temporary_channel_id(this.ptr, val); } + /** + * The channel value + */ public long get_funding_satoshis() { long ret = bindings.OpenChannel_get_funding_satoshis(this.ptr); return ret; } + /** + * The channel value + */ public void set_funding_satoshis(long val) { bindings.OpenChannel_set_funding_satoshis(this.ptr, val); } + /** + * The amount to push to the counterparty as part of the open, in milli-satoshi + */ public long get_push_msat() { long ret = bindings.OpenChannel_get_push_msat(this.ptr); return ret; } + /** + * The amount to push to the counterparty as part of the open, in milli-satoshi + */ public void set_push_msat(long val) { bindings.OpenChannel_set_push_msat(this.ptr, val); } + /** + * The threshold below which outputs on transactions broadcast by sender will be omitted + */ public long get_dust_limit_satoshis() { long ret = bindings.OpenChannel_get_dust_limit_satoshis(this.ptr); return ret; } + /** + * The threshold below which outputs on transactions broadcast by sender will be omitted + */ public void set_dust_limit_satoshis(long val) { bindings.OpenChannel_set_dust_limit_satoshis(this.ptr, val); } + /** + * The maximum inbound HTLC value in flight towards sender, in milli-satoshi + */ public long get_max_htlc_value_in_flight_msat() { long ret = bindings.OpenChannel_get_max_htlc_value_in_flight_msat(this.ptr); return ret; } + /** + * The maximum inbound HTLC value in flight towards sender, in milli-satoshi + */ public void set_max_htlc_value_in_flight_msat(long val) { bindings.OpenChannel_set_max_htlc_value_in_flight_msat(this.ptr, val); } + /** + * The minimum value unencumbered by HTLCs for the counterparty to keep in the channel + */ public long get_channel_reserve_satoshis() { long ret = bindings.OpenChannel_get_channel_reserve_satoshis(this.ptr); return ret; } + /** + * The minimum value unencumbered by HTLCs for the counterparty to keep in the channel + */ public void set_channel_reserve_satoshis(long val) { bindings.OpenChannel_set_channel_reserve_satoshis(this.ptr, val); } + /** + * The minimum HTLC size incoming to sender, in milli-satoshi + */ public long get_htlc_minimum_msat() { long ret = bindings.OpenChannel_get_htlc_minimum_msat(this.ptr); return ret; } + /** + * The minimum HTLC size incoming to sender, in milli-satoshi + */ public void set_htlc_minimum_msat(long val) { bindings.OpenChannel_set_htlc_minimum_msat(this.ptr, val); } + /** + * The feerate per 1000-weight of sender generated transactions, until updated by update_fee + */ public int get_feerate_per_kw() { int ret = bindings.OpenChannel_get_feerate_per_kw(this.ptr); return ret; } + /** + * The feerate per 1000-weight of sender generated transactions, until updated by update_fee + */ public void set_feerate_per_kw(int val) { bindings.OpenChannel_set_feerate_per_kw(this.ptr, val); } + /** + * The number of blocks which the counterparty will have to wait to claim on-chain funds if they broadcast a commitment transaction + */ public short get_to_self_delay() { short ret = bindings.OpenChannel_get_to_self_delay(this.ptr); return ret; } + /** + * The number of blocks which the counterparty will have to wait to claim on-chain funds if they broadcast a commitment transaction + */ public void set_to_self_delay(short val) { bindings.OpenChannel_set_to_self_delay(this.ptr, val); } + /** + * The maximum number of inbound HTLCs towards sender + */ public short get_max_accepted_htlcs() { short ret = bindings.OpenChannel_get_max_accepted_htlcs(this.ptr); return ret; } + /** + * The maximum number of inbound HTLCs towards sender + */ public void set_max_accepted_htlcs(short val) { bindings.OpenChannel_set_max_accepted_htlcs(this.ptr, val); } + /** + * The sender's key controlling the funding transaction + */ public byte[] get_funding_pubkey() { byte[] ret = bindings.OpenChannel_get_funding_pubkey(this.ptr); return ret; } + /** + * The sender's key controlling the funding transaction + */ public void set_funding_pubkey(byte[] val) { bindings.OpenChannel_set_funding_pubkey(this.ptr, val); } + /** + * Used to derive a revocation key for transactions broadcast by counterparty + */ public byte[] get_revocation_basepoint() { byte[] ret = bindings.OpenChannel_get_revocation_basepoint(this.ptr); return ret; } + /** + * Used to derive a revocation key for transactions broadcast by counterparty + */ public void set_revocation_basepoint(byte[] val) { bindings.OpenChannel_set_revocation_basepoint(this.ptr, val); } + /** + * A payment key to sender for transactions broadcast by counterparty + */ public byte[] get_payment_point() { byte[] ret = bindings.OpenChannel_get_payment_point(this.ptr); return ret; } + /** + * A payment key to sender for transactions broadcast by counterparty + */ public void set_payment_point(byte[] val) { bindings.OpenChannel_set_payment_point(this.ptr, val); } + /** + * Used to derive a payment key to sender for transactions broadcast by sender + */ public byte[] get_delayed_payment_basepoint() { byte[] ret = bindings.OpenChannel_get_delayed_payment_basepoint(this.ptr); return ret; } + /** + * Used to derive a payment key to sender for transactions broadcast by sender + */ public void set_delayed_payment_basepoint(byte[] val) { bindings.OpenChannel_set_delayed_payment_basepoint(this.ptr, val); } + /** + * Used to derive an HTLC payment key to sender + */ public byte[] get_htlc_basepoint() { byte[] ret = bindings.OpenChannel_get_htlc_basepoint(this.ptr); return ret; } + /** + * Used to derive an HTLC payment key to sender + */ public void set_htlc_basepoint(byte[] val) { bindings.OpenChannel_set_htlc_basepoint(this.ptr, val); } + /** + * The first to-be-broadcast-by-sender transaction's per commitment point + */ public byte[] get_first_per_commitment_point() { byte[] ret = bindings.OpenChannel_get_first_per_commitment_point(this.ptr); return ret; } + /** + * The first to-be-broadcast-by-sender transaction's per commitment point + */ public void set_first_per_commitment_point(byte[] val) { bindings.OpenChannel_set_first_per_commitment_point(this.ptr, val); } + /** + * Channel flags + */ public byte get_channel_flags() { byte ret = bindings.OpenChannel_get_channel_flags(this.ptr); return ret; } + /** + * Channel flags + */ public void set_channel_flags(byte val) { bindings.OpenChannel_set_channel_flags(this.ptr, val); } + /** + * Creates a copy of the OpenChannel + */ public OpenChannel clone() { long ret = bindings.OpenChannel_clone(this.ptr); OpenChannel ret_hu_conv = new OpenChannel(null, ret); @@ -183,11 +298,17 @@ public class OpenChannel extends CommonBase { return ret_hu_conv; } + /** + * Serialize the OpenChannel object into a byte array which can be read by OpenChannel_read + */ public byte[] write() { byte[] ret = bindings.OpenChannel_write(this.ptr); return ret; } + /** + * Read a OpenChannel from a byte array, created by OpenChannel_write + */ public static Result_OpenChannelDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.OpenChannel_read(ser); Result_OpenChannelDecodeErrorZ ret_hu_conv = Result_OpenChannelDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/OutPoint.java b/src/main/java/org/ldk/structs/OutPoint.java index d0c7edba..42a79f04 100644 --- a/src/main/java/org/ldk/structs/OutPoint.java +++ b/src/main/java/org/ldk/structs/OutPoint.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A reference to a transaction output. + * + * Differs from bitcoin::blockdata::transaction::OutPoint as the index is a u16 instead of u32 + * due to LN's restrictions on index values. Should reduce (possibly) unsafe conversions this way. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class OutPoint extends CommonBase { OutPoint(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +21,39 @@ public class OutPoint extends CommonBase { if (ptr != 0) { bindings.OutPoint_free(ptr); } } + /** + * The referenced transaction's txid. + */ public byte[] get_txid() { byte[] ret = bindings.OutPoint_get_txid(this.ptr); return ret; } + /** + * The referenced transaction's txid. + */ public void set_txid(byte[] val) { bindings.OutPoint_set_txid(this.ptr, val); } + /** + * The index of the referenced output in its transaction's vout. + */ public short get_index() { short ret = bindings.OutPoint_get_index(this.ptr); return ret; } + /** + * The index of the referenced output in its transaction's vout. + */ public void set_index(short val) { bindings.OutPoint_set_index(this.ptr, val); } + /** + * Constructs a new OutPoint given each field + */ public static OutPoint constructor_new(byte[] txid_arg, short index_arg) { long ret = bindings.OutPoint_new(txid_arg, index_arg); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -39,6 +61,9 @@ public class OutPoint extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the OutPoint + */ public OutPoint clone() { long ret = bindings.OutPoint_clone(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -46,16 +71,25 @@ public class OutPoint extends CommonBase { return ret_hu_conv; } + /** + * Convert an `OutPoint` to a lightning channel id. + */ public byte[] to_channel_id() { byte[] ret = bindings.OutPoint_to_channel_id(this.ptr); return ret; } + /** + * Serialize the OutPoint object into a byte array which can be read by OutPoint_read + */ public byte[] write() { byte[] ret = bindings.OutPoint_write(this.ptr); return ret; } + /** + * Read a OutPoint from a byte array, created by OutPoint_write + */ public static Result_OutPointDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.OutPoint_read(ser); Result_OutPointDecodeErrorZ ret_hu_conv = Result_OutPointDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/PaymentSendFailure.java b/src/main/java/org/ldk/structs/PaymentSendFailure.java index af08d8cc..b329a413 100644 --- a/src/main/java/org/ldk/structs/PaymentSendFailure.java +++ b/src/main/java/org/ldk/structs/PaymentSendFailure.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * If a payment fails to send, it can be in one of several states. This enum is returned as the + * Err() type describing which state the payment is in, see the description of individual enum + * states for more. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class PaymentSendFailure extends CommonBase { private PaymentSendFailure(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/PeerHandleError.java b/src/main/java/org/ldk/structs/PeerHandleError.java index 0bd7604d..429f44aa 100644 --- a/src/main/java/org/ldk/structs/PeerHandleError.java +++ b/src/main/java/org/ldk/structs/PeerHandleError.java @@ -5,6 +5,12 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Error for PeerManager errors. If you get one of these, you must disconnect the socket and + * generate no further read_event/write_buffer_space_avail/socket_disconnected calls for the + * descriptor. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class PeerHandleError extends CommonBase { PeerHandleError(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +20,26 @@ public class PeerHandleError extends CommonBase { if (ptr != 0) { bindings.PeerHandleError_free(ptr); } } + /** + * Used to indicate that we probably can't make any future connections to this peer, implying + * we should go ahead and force-close any channels we have with it. + */ public boolean get_no_connection_possible() { boolean ret = bindings.PeerHandleError_get_no_connection_possible(this.ptr); return ret; } + /** + * Used to indicate that we probably can't make any future connections to this peer, implying + * we should go ahead and force-close any channels we have with it. + */ public void set_no_connection_possible(boolean val) { bindings.PeerHandleError_set_no_connection_possible(this.ptr, val); } + /** + * Constructs a new PeerHandleError given each field + */ public static PeerHandleError constructor_new(boolean no_connection_possible_arg) { long ret = bindings.PeerHandleError_new(no_connection_possible_arg); PeerHandleError ret_hu_conv = new PeerHandleError(null, ret); @@ -30,6 +47,9 @@ public class PeerHandleError extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the PeerHandleError + */ public PeerHandleError clone() { long ret = bindings.PeerHandleError_clone(this.ptr); PeerHandleError ret_hu_conv = new PeerHandleError(null, ret); diff --git a/src/main/java/org/ldk/structs/PeerManager.java b/src/main/java/org/ldk/structs/PeerManager.java index 3c8a441a..4a73a3a6 100644 --- a/src/main/java/org/ldk/structs/PeerManager.java +++ b/src/main/java/org/ldk/structs/PeerManager.java @@ -5,6 +5,17 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A PeerManager manages a set of peers, described by their SocketDescriptor and marshalls socket + * events into messages which it passes on to its MessageHandlers. + * + * Rather than using a plain PeerManager, it is preferable to use either a SimpleArcPeerManager + * a SimpleRefPeerManager, for conciseness. See their documentation for more details, but + * essentially you should default to using a SimpleRefPeerManager, and use a + * SimpleArcPeerManager when you require a PeerManager with a static lifetime, such as when + * you're using lightning-net-tokio. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class PeerManager extends CommonBase { PeerManager(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +25,11 @@ public class PeerManager extends CommonBase { if (ptr != 0) { bindings.PeerManager_free(ptr); } } + /** + * Constructs a new PeerManager with the given message handlers and node_id secret key + * ephemeral_random_data is used to derive per-connection ephemeral keys and must be + * cryptographically secure random bytes. + */ public static PeerManager constructor_new(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); PeerManager ret_hu_conv = new PeerManager(null, ret); @@ -24,11 +40,28 @@ public class PeerManager extends CommonBase { return ret_hu_conv; } + /** + * Get the list of node ids for peers which have completed the initial handshake. + * + * For outbound connections, this will be the same as the their_node_id parameter passed in to + * new_outbound_connection, however entries will only appear once the initial handshake has + * completed and we are sure the remote peer has the private key for the given node_id. + */ public byte[][] get_peer_node_ids() { byte[][] ret = bindings.PeerManager_get_peer_node_ids(this.ptr); return ret; } + /** + * Indicates a new outbound connection has been established to a node with the given node_id. + * Note that if an Err is returned here you MUST NOT call socket_disconnected for the new + * descriptor but must disconnect the connection immediately. + * + * Returns a small number of bytes to send to the remote node (currently always 50). + * + * Panics if descriptor is duplicative with some other descriptor which has not yet had a + * socket_disconnected(). + */ 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); Result_CVec_u8ZPeerHandleErrorZ ret_hu_conv = Result_CVec_u8ZPeerHandleErrorZ.constr_from_ptr(ret); @@ -36,6 +69,17 @@ public class PeerManager extends CommonBase { return ret_hu_conv; } + /** + * Indicates a new inbound connection has been established. + * + * May refuse the connection by returning an Err, but will never write bytes to the remote end + * (outbound connector always speaks first). Note that if an Err is returned here you MUST NOT + * call socket_disconnected for the new descriptor but must disconnect the connection + * immediately. + * + * Panics if descriptor is duplicative with some other descriptor which has not yet had + * socket_disconnected called. + */ public Result_NonePeerHandleErrorZ new_inbound_connection(SocketDescriptor descriptor) { long ret = bindings.PeerManager_new_inbound_connection(this.ptr, descriptor == null ? 0 : descriptor.ptr); Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); @@ -43,6 +87,18 @@ public class PeerManager extends CommonBase { return ret_hu_conv; } + /** + * Indicates that there is room to write data to the given socket descriptor. + * + * May return an Err to indicate that the connection should be closed. + * + * Will most likely call send_data on the descriptor passed in (or the descriptor handed into + * new_*\\_connection) before returning. Thus, be very careful with reentrancy issues! The + * invariants around calling write_buffer_space_avail in case a write did not fully complete + * must still hold - be ready to call write_buffer_space_avail again if a write call generated + * here isn't sufficient! Panics if the descriptor was not previously registered in a + * new_\\*_connection event. + */ public Result_NonePeerHandleErrorZ write_buffer_space_avail(SocketDescriptor descriptor) { long ret = bindings.PeerManager_write_buffer_space_avail(this.ptr, descriptor == null ? 0 : descriptor.ptr); Result_NonePeerHandleErrorZ ret_hu_conv = Result_NonePeerHandleErrorZ.constr_from_ptr(ret); @@ -50,6 +106,20 @@ public class PeerManager extends CommonBase { return ret_hu_conv; } + /** + * Indicates that data was read from the given socket descriptor. + * + * May return an Err to indicate that the connection should be closed. + * + * Will *not* call back into send_data on any descriptors to avoid reentrancy complexity. + * Thus, however, you almost certainly want to call process_events() after any read_event to + * generate send_data calls to handle responses. + * + * If Ok(true) is returned, further read_events should not be triggered until a send_data call + * on this file descriptor has resume_read set (preventing DoS issues in the send buffer). + * + * Panics if the descriptor was not previously registered in a new_*_connection event. + */ 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); Result_boolPeerHandleErrorZ ret_hu_conv = Result_boolPeerHandleErrorZ.constr_from_ptr(ret); @@ -57,19 +127,48 @@ public class PeerManager extends CommonBase { return ret_hu_conv; } + /** + * Checks for any events generated by our handlers and processes them. Includes sending most + * response messages as well as messages generated by calls to handler functions directly (eg + * functions like ChannelManager::process_pending_htlc_forward or send_payment). + */ public void process_events() { bindings.PeerManager_process_events(this.ptr); } + /** + * Indicates that the given socket descriptor's connection is now closed. + * + * This must only be called if the socket has been disconnected by the peer or your own + * decision to disconnect it and must NOT be called in any case where other parts of this + * library (eg PeerHandleError, explicit disconnect_socket calls) instruct you to disconnect + * the peer. + * + * Panics if the descriptor was not previously registered in a successful new_*_connection event. + */ public void socket_disconnected(SocketDescriptor descriptor) { bindings.PeerManager_socket_disconnected(this.ptr, descriptor == null ? 0 : descriptor.ptr); this.ptrs_to.add(descriptor); } + /** + * Disconnect a peer given its node id. + * + * Set no_connection_possible to true to prevent any further connection with this peer, + * force-closing any channels we have with it. + * + * If a peer is connected, this will call `disconnect_socket` on the descriptor for the peer, + * so be careful about reentrancy issues. + */ public void disconnect_by_node_id(byte[] node_id, boolean no_connection_possible) { bindings.PeerManager_disconnect_by_node_id(this.ptr, node_id, no_connection_possible); } + /** + * This function should be called roughly once every 30 seconds. + * It will send pings to each peer and disconnect those which did not respond to the last round of pings. + * Will most likely call send_data on all of the registered descriptors, thus, be very careful with reentrancy issues! + */ public void timer_tick_occured() { bindings.PeerManager_timer_tick_occured(this.ptr); } diff --git a/src/main/java/org/ldk/structs/Persist.java b/src/main/java/org/ldk/structs/Persist.java index 3e318d81..ebb48ed9 100644 --- a/src/main/java/org/ldk/structs/Persist.java +++ b/src/main/java/org/ldk/structs/Persist.java @@ -5,6 +5,19 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * `Persist` defines behavior for persisting channel monitors: this could mean + * writing once to disk, and/or uploading to one or more backup services. + * + * Note that for every new monitor, you **must** persist the new `ChannelMonitor` + * to disk/backups. And, on every update, you **must** persist either the + * `ChannelMonitorUpdate` or the updated monitor itself. Otherwise, there is risk + * of situations such as revoking a transaction, then crashing before this + * revocation can be persisted, then unintentionally broadcasting a revoked + * transaction and losing money. This is a risk because previous channel states + * are toxic, so it's important that whatever channel state is persisted is + * kept up-to-date. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Persist extends CommonBase { final bindings.LDKPersist bindings_instance; @@ -20,7 +33,49 @@ public class Persist extends CommonBase { } public static interface PersistInterface { + /** + * Persist a new channel's data. The data can be stored any way you want, but + * the identifier provided by Rust-Lightning is the channel's outpoint (and + * it is up to you to maintain a correct mapping between the outpoint and the + * stored channel data). Note that you **must** persist every new monitor to + * disk. See the `Persist` trait documentation for more details. + * + * See [`ChannelMonitor::serialize_for_disk`] for writing out a `ChannelMonitor`, + * and [`ChannelMonitorUpdateErr`] for requirements when returning errors. + * + * [`ChannelMonitor::serialize_for_disk`]: struct.ChannelMonitor.html#method.serialize_for_disk + * [`ChannelMonitorUpdateErr`]: enum.ChannelMonitorUpdateErr.html + */ Result_NoneChannelMonitorUpdateErrZ persist_new_channel(OutPoint id, ChannelMonitor data); + /** + * Update one channel's data. The provided `ChannelMonitor` has already + * applied the given update. + * + * Note that on every update, you **must** persist either the + * `ChannelMonitorUpdate` or the updated monitor itself to disk/backups. See + * the `Persist` trait documentation for more details. + * + * If an implementer chooses to persist the updates only, they need to make + * sure that all the updates are applied to the `ChannelMonitors` *before + * the set of channel monitors is given to the `ChannelManager` + * deserialization routine. See [`ChannelMonitor::update_monitor`] for + * applying a monitor update to a monitor. If full `ChannelMonitors` are + * persisted, then there is no need to persist individual updates. + * + * Note that there could be a performance tradeoff between persisting complete + * channel monitors on every update vs. persisting only updates and applying + * them in batches. The size of each monitor grows `O(number of state updates)` + * whereas updates are small and `O(1)`. + * + * See [`ChannelMonitor::serialize_for_disk`] for writing out a `ChannelMonitor`, + * [`ChannelMonitorUpdate::write`] for writing out an update, and + * [`ChannelMonitorUpdateErr`] for requirements when returning errors. + * + * [`ChannelMonitor::update_monitor`]: struct.ChannelMonitor.html#impl-1 + * [`ChannelMonitor::serialize_for_disk`]: struct.ChannelMonitor.html#method.serialize_for_disk + * [`ChannelMonitorUpdate::write`]: struct.ChannelMonitorUpdate.html#method.write + * [`ChannelMonitorUpdateErr`]: enum.ChannelMonitorUpdateErr.html + */ Result_NoneChannelMonitorUpdateErrZ update_persisted_channel(OutPoint id, ChannelMonitorUpdate update, ChannelMonitor data); } private static class LDKPersistHolder { Persist held; } @@ -47,6 +102,19 @@ public class Persist extends CommonBase { }); return impl_holder.held; } + /** + * Persist a new channel's data. The data can be stored any way you want, but + * the identifier provided by Rust-Lightning is the channel's outpoint (and + * it is up to you to maintain a correct mapping between the outpoint and the + * stored channel data). Note that you **must** persist every new monitor to + * disk. See the `Persist` trait documentation for more details. + * + * See [`ChannelMonitor::serialize_for_disk`] for writing out a `ChannelMonitor`, + * and [`ChannelMonitorUpdateErr`] for requirements when returning errors. + * + * [`ChannelMonitor::serialize_for_disk`]: struct.ChannelMonitor.html#method.serialize_for_disk + * [`ChannelMonitorUpdateErr`]: enum.ChannelMonitorUpdateErr.html + */ 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); Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); @@ -55,6 +123,35 @@ public class Persist extends CommonBase { return ret_hu_conv; } + /** + * Update one channel's data. The provided `ChannelMonitor` has already + * applied the given update. + * + * Note that on every update, you **must** persist either the + * `ChannelMonitorUpdate` or the updated monitor itself to disk/backups. See + * the `Persist` trait documentation for more details. + * + * If an implementer chooses to persist the updates only, they need to make + * sure that all the updates are applied to the `ChannelMonitors` *before + * the set of channel monitors is given to the `ChannelManager` + * deserialization routine. See [`ChannelMonitor::update_monitor`] for + * applying a monitor update to a monitor. If full `ChannelMonitors` are + * persisted, then there is no need to persist individual updates. + * + * Note that there could be a performance tradeoff between persisting complete + * channel monitors on every update vs. persisting only updates and applying + * them in batches. The size of each monitor grows `O(number of state updates)` + * whereas updates are small and `O(1)`. + * + * See [`ChannelMonitor::serialize_for_disk`] for writing out a `ChannelMonitor`, + * [`ChannelMonitorUpdate::write`] for writing out an update, and + * [`ChannelMonitorUpdateErr`] for requirements when returning errors. + * + * [`ChannelMonitor::update_monitor`]: struct.ChannelMonitor.html#impl-1 + * [`ChannelMonitor::serialize_for_disk`]: struct.ChannelMonitor.html#method.serialize_for_disk + * [`ChannelMonitorUpdate::write`]: struct.ChannelMonitorUpdate.html#method.write + * [`ChannelMonitorUpdateErr`]: enum.ChannelMonitorUpdateErr.html + */ 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); Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Ping.java b/src/main/java/org/ldk/structs/Ping.java index 0f466fa9..b852fbaf 100644 --- a/src/main/java/org/ldk/structs/Ping.java +++ b/src/main/java/org/ldk/structs/Ping.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A ping message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Ping extends CommonBase { Ping(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,41 @@ public class Ping extends CommonBase { if (ptr != 0) { bindings.Ping_free(ptr); } } + /** + * The desired response length + */ public short get_ponglen() { short ret = bindings.Ping_get_ponglen(this.ptr); return ret; } + /** + * The desired response length + */ public void set_ponglen(short val) { bindings.Ping_set_ponglen(this.ptr, val); } + /** + * The ping packet size. + * This field is not sent on the wire. byteslen zeros are sent. + */ public short get_byteslen() { short ret = bindings.Ping_get_byteslen(this.ptr); return ret; } + /** + * The ping packet size. + * This field is not sent on the wire. byteslen zeros are sent. + */ public void set_byteslen(short val) { bindings.Ping_set_byteslen(this.ptr, val); } + /** + * Constructs a new Ping given each field + */ public static Ping constructor_new(short ponglen_arg, short byteslen_arg) { long ret = bindings.Ping_new(ponglen_arg, byteslen_arg); Ping ret_hu_conv = new Ping(null, ret); @@ -39,6 +60,9 @@ public class Ping extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the Ping + */ public Ping clone() { long ret = bindings.Ping_clone(this.ptr); Ping ret_hu_conv = new Ping(null, ret); @@ -46,11 +70,17 @@ public class Ping extends CommonBase { return ret_hu_conv; } + /** + * Serialize the Ping object into a byte array which can be read by Ping_read + */ public byte[] write() { byte[] ret = bindings.Ping_write(this.ptr); return ret; } + /** + * Read a Ping from a byte array, created by Ping_write + */ public static Result_PingDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.Ping_read(ser); Result_PingDecodeErrorZ ret_hu_conv = Result_PingDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Pong.java b/src/main/java/org/ldk/structs/Pong.java index 80530aa7..5e296ab6 100644 --- a/src/main/java/org/ldk/structs/Pong.java +++ b/src/main/java/org/ldk/structs/Pong.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A pong message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Pong extends CommonBase { Pong(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +18,26 @@ public class Pong extends CommonBase { if (ptr != 0) { bindings.Pong_free(ptr); } } + /** + * The pong packet size. + * This field is not sent on the wire. byteslen zeros are sent. + */ public short get_byteslen() { short ret = bindings.Pong_get_byteslen(this.ptr); return ret; } + /** + * The pong packet size. + * This field is not sent on the wire. byteslen zeros are sent. + */ public void set_byteslen(short val) { bindings.Pong_set_byteslen(this.ptr, val); } + /** + * Constructs a new Pong given each field + */ public static Pong constructor_new(short byteslen_arg) { long ret = bindings.Pong_new(byteslen_arg); Pong ret_hu_conv = new Pong(null, ret); @@ -30,6 +45,9 @@ public class Pong extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the Pong + */ public Pong clone() { long ret = bindings.Pong_clone(this.ptr); Pong ret_hu_conv = new Pong(null, ret); @@ -37,11 +55,17 @@ public class Pong extends CommonBase { return ret_hu_conv; } + /** + * Serialize the Pong object into a byte array which can be read by Pong_read + */ public byte[] write() { byte[] ret = bindings.Pong_write(this.ptr); return ret; } + /** + * Read a Pong from a byte array, created by Pong_write + */ public static Result_PongDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.Pong_read(ser); Result_PongDecodeErrorZ ret_hu_conv = Result_PongDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/QueryChannelRange.java b/src/main/java/org/ldk/structs/QueryChannelRange.java index 2f6f3a12..97d856ea 100644 --- a/src/main/java/org/ldk/structs/QueryChannelRange.java +++ b/src/main/java/org/ldk/structs/QueryChannelRange.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A query_channel_range message is used to query a peer for channel + * UTXOs in a range of blocks. The recipient of a query makes a best + * effort to reply to the query using one or more reply_channel_range + * messages. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class QueryChannelRange extends CommonBase { QueryChannelRange(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +21,54 @@ public class QueryChannelRange extends CommonBase { if (ptr != 0) { bindings.QueryChannelRange_free(ptr); } } + /** + * The genesis hash of the blockchain being queried + */ public byte[] get_chain_hash() { byte[] ret = bindings.QueryChannelRange_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain being queried + */ public void set_chain_hash(byte[] val) { bindings.QueryChannelRange_set_chain_hash(this.ptr, val); } + /** + * The height of the first block for the channel UTXOs being queried + */ public int get_first_blocknum() { int ret = bindings.QueryChannelRange_get_first_blocknum(this.ptr); return ret; } + /** + * The height of the first block for the channel UTXOs being queried + */ public void set_first_blocknum(int val) { bindings.QueryChannelRange_set_first_blocknum(this.ptr, val); } + /** + * The number of blocks to include in the query results + */ public int get_number_of_blocks() { int ret = bindings.QueryChannelRange_get_number_of_blocks(this.ptr); return ret; } + /** + * The number of blocks to include in the query results + */ public void set_number_of_blocks(int val) { bindings.QueryChannelRange_set_number_of_blocks(this.ptr, val); } + /** + * Constructs a new QueryChannelRange given each field + */ public static QueryChannelRange constructor_new(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); QueryChannelRange ret_hu_conv = new QueryChannelRange(null, ret); @@ -48,6 +76,9 @@ public class QueryChannelRange extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the QueryChannelRange + */ public QueryChannelRange clone() { long ret = bindings.QueryChannelRange_clone(this.ptr); QueryChannelRange ret_hu_conv = new QueryChannelRange(null, ret); @@ -55,12 +86,18 @@ public class QueryChannelRange extends CommonBase { return ret_hu_conv; } + /** + * Read a QueryChannelRange from a byte array, created by QueryChannelRange_write + */ public static Result_QueryChannelRangeDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.QueryChannelRange_read(ser); Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the QueryChannelRange object into a byte array which can be read by QueryChannelRange_read + */ public byte[] write() { byte[] ret = bindings.QueryChannelRange_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/QueryShortChannelIds.java b/src/main/java/org/ldk/structs/QueryShortChannelIds.java index 069bc72d..a451d753 100644 --- a/src/main/java/org/ldk/structs/QueryShortChannelIds.java +++ b/src/main/java/org/ldk/structs/QueryShortChannelIds.java @@ -5,6 +5,17 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A query_short_channel_ids message is used to query a peer for + * routing gossip messages related to one or more short_channel_ids. + * The query recipient will reply with the latest, if available, + * channel_announcement, channel_update and node_announcement messages + * it maintains for the requested short_channel_ids followed by a + * reply_short_channel_ids_end message. The short_channel_ids sent in + * this query are encoded. We only support encoding_type=0 uncompressed + * serialization and do not support encoding_type=1 zlib serialization. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class QueryShortChannelIds extends CommonBase { QueryShortChannelIds(Object _dummy, long ptr) { super(ptr); } @@ -14,19 +25,31 @@ public class QueryShortChannelIds extends CommonBase { if (ptr != 0) { bindings.QueryShortChannelIds_free(ptr); } } + /** + * The genesis hash of the blockchain being queried + */ public byte[] get_chain_hash() { byte[] ret = bindings.QueryShortChannelIds_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain being queried + */ public void set_chain_hash(byte[] val) { bindings.QueryShortChannelIds_set_chain_hash(this.ptr, val); } + /** + * The short_channel_ids that are being queried + */ public void set_short_channel_ids(long[] val) { bindings.QueryShortChannelIds_set_short_channel_ids(this.ptr, val); } + /** + * Constructs a new QueryShortChannelIds given each field + */ public static QueryShortChannelIds constructor_new(byte[] chain_hash_arg, long[] short_channel_ids_arg) { long ret = bindings.QueryShortChannelIds_new(chain_hash_arg, short_channel_ids_arg); QueryShortChannelIds ret_hu_conv = new QueryShortChannelIds(null, ret); @@ -34,6 +57,9 @@ public class QueryShortChannelIds extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the QueryShortChannelIds + */ public QueryShortChannelIds clone() { long ret = bindings.QueryShortChannelIds_clone(this.ptr); QueryShortChannelIds ret_hu_conv = new QueryShortChannelIds(null, ret); @@ -41,12 +67,18 @@ public class QueryShortChannelIds extends CommonBase { return ret_hu_conv; } + /** + * Read a QueryShortChannelIds from a byte array, created by QueryShortChannelIds_write + */ public static Result_QueryShortChannelIdsDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.QueryShortChannelIds_read(ser); Result_QueryShortChannelIdsDecodeErrorZ ret_hu_conv = Result_QueryShortChannelIdsDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the QueryShortChannelIds object into a byte array which can be read by QueryShortChannelIds_read + */ public byte[] write() { byte[] ret = bindings.QueryShortChannelIds_write(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 21934785..ba8ab368 100644 --- a/src/main/java/org/ldk/structs/ReplyChannelRange.java +++ b/src/main/java/org/ldk/structs/ReplyChannelRange.java @@ -5,6 +5,16 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A reply_channel_range message is a reply to a query_channel_range + * message. Multiple reply_channel_range messages can be sent in reply + * to a single query_channel_range message. The query recipient makes a + * best effort to respond based on their local network view which may + * not be a perfect view of the network. The short_channel_ids in the + * reply are encoded. We only support encoding_type=0 uncompressed + * serialization and do not support encoding_type=1 zlib serialization. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ReplyChannelRange extends CommonBase { ReplyChannelRange(Object _dummy, long ptr) { super(ptr); } @@ -14,46 +24,76 @@ public class ReplyChannelRange extends CommonBase { if (ptr != 0) { bindings.ReplyChannelRange_free(ptr); } } + /** + * The genesis hash of the blockchain being queried + */ public byte[] get_chain_hash() { byte[] ret = bindings.ReplyChannelRange_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain being queried + */ public void set_chain_hash(byte[] val) { bindings.ReplyChannelRange_set_chain_hash(this.ptr, val); } + /** + * The height of the first block in the range of the reply + */ public int get_first_blocknum() { int ret = bindings.ReplyChannelRange_get_first_blocknum(this.ptr); return ret; } + /** + * The height of the first block in the range of the reply + */ public void set_first_blocknum(int val) { bindings.ReplyChannelRange_set_first_blocknum(this.ptr, val); } + /** + * The number of blocks included in the range of the reply + */ public int get_number_of_blocks() { int ret = bindings.ReplyChannelRange_get_number_of_blocks(this.ptr); return ret; } + /** + * The number of blocks included in the range of the reply + */ public void set_number_of_blocks(int val) { bindings.ReplyChannelRange_set_number_of_blocks(this.ptr, val); } + /** + * True when this is the final reply for a query + */ public boolean get_sync_complete() { boolean ret = bindings.ReplyChannelRange_get_sync_complete(this.ptr); return ret; } + /** + * True when this is the final reply for a query + */ public void set_sync_complete(boolean val) { bindings.ReplyChannelRange_set_sync_complete(this.ptr, val); } + /** + * The short_channel_ids in the channel range + */ public void set_short_channel_ids(long[] val) { bindings.ReplyChannelRange_set_short_channel_ids(this.ptr, val); } + /** + * Constructs a new ReplyChannelRange given each field + */ public static ReplyChannelRange constructor_new(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); ReplyChannelRange ret_hu_conv = new ReplyChannelRange(null, ret); @@ -61,6 +101,9 @@ public class ReplyChannelRange extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ReplyChannelRange + */ public ReplyChannelRange clone() { long ret = bindings.ReplyChannelRange_clone(this.ptr); ReplyChannelRange ret_hu_conv = new ReplyChannelRange(null, ret); @@ -68,12 +111,18 @@ public class ReplyChannelRange extends CommonBase { return ret_hu_conv; } + /** + * Read a ReplyChannelRange from a byte array, created by ReplyChannelRange_write + */ public static Result_ReplyChannelRangeDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ReplyChannelRange_read(ser); Result_ReplyChannelRangeDecodeErrorZ ret_hu_conv = Result_ReplyChannelRangeDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the ReplyChannelRange object into a byte array which can be read by ReplyChannelRange_read + */ public byte[] write() { byte[] ret = bindings.ReplyChannelRange_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java b/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java index 26098810..dbc3f181 100644 --- a/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java +++ b/src/main/java/org/ldk/structs/ReplyShortChannelIdsEnd.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A reply_short_channel_ids_end message is sent as a reply to a + * query_short_channel_ids message. The query recipient makes a best + * effort to respond based on their local network view which may not be + * a perfect view of the network. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class ReplyShortChannelIdsEnd extends CommonBase { ReplyShortChannelIdsEnd(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +21,41 @@ public class ReplyShortChannelIdsEnd extends CommonBase { if (ptr != 0) { bindings.ReplyShortChannelIdsEnd_free(ptr); } } + /** + * The genesis hash of the blockchain that was queried + */ public byte[] get_chain_hash() { byte[] ret = bindings.ReplyShortChannelIdsEnd_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain that was queried + */ public void set_chain_hash(byte[] val) { bindings.ReplyShortChannelIdsEnd_set_chain_hash(this.ptr, val); } + /** + * Indicates if the query recipient maintains up-to-date channel + * information for the chain_hash + */ public boolean get_full_information() { boolean ret = bindings.ReplyShortChannelIdsEnd_get_full_information(this.ptr); return ret; } + /** + * Indicates if the query recipient maintains up-to-date channel + * information for the chain_hash + */ public void set_full_information(boolean val) { bindings.ReplyShortChannelIdsEnd_set_full_information(this.ptr, val); } + /** + * Constructs a new ReplyShortChannelIdsEnd given each field + */ public static ReplyShortChannelIdsEnd constructor_new(byte[] chain_hash_arg, boolean full_information_arg) { long ret = bindings.ReplyShortChannelIdsEnd_new(chain_hash_arg, full_information_arg); ReplyShortChannelIdsEnd ret_hu_conv = new ReplyShortChannelIdsEnd(null, ret); @@ -39,6 +63,9 @@ public class ReplyShortChannelIdsEnd extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the ReplyShortChannelIdsEnd + */ public ReplyShortChannelIdsEnd clone() { long ret = bindings.ReplyShortChannelIdsEnd_clone(this.ptr); ReplyShortChannelIdsEnd ret_hu_conv = new ReplyShortChannelIdsEnd(null, ret); @@ -46,12 +73,18 @@ public class ReplyShortChannelIdsEnd extends CommonBase { return ret_hu_conv; } + /** + * Read a ReplyShortChannelIdsEnd from a byte array, created by ReplyShortChannelIdsEnd_write + */ public static Result_ReplyShortChannelIdsEndDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.ReplyShortChannelIdsEnd_read(ser); Result_ReplyShortChannelIdsEndDecodeErrorZ ret_hu_conv = Result_ReplyShortChannelIdsEndDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the ReplyShortChannelIdsEnd object into a byte array which can be read by ReplyShortChannelIdsEnd_read + */ public byte[] write() { byte[] ret = bindings.ReplyShortChannelIdsEnd_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java index b1ade8ba..88b43652 100644 --- a/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_AcceptChannelDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_AcceptChannelDecodeErrorZ extends CommonBase { private Result_AcceptChannelDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java index 4eb9142f..ade276c5 100644 --- a/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_AnnouncementSignaturesDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_AnnouncementSignaturesDecodeErrorZ extends CommonBase { private Result_AnnouncementSignaturesDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java index ad631f5e..67492b6e 100644 --- a/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_BuiltCommitmentTransactionDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_BuiltCommitmentTransactionDecodeErrorZ extends CommonBase { private Result_BuiltCommitmentTransactionDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 dc57ee07..7f680d63 100644 --- a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ extends CommonBase { private Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 5daf871c..957c031f 100644 --- a/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ extends CommonBase { private Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 1a610732..36b1f356 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 @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_C2Tuple_SignatureCVec_SignatureZZNoneZ extends CommonBase { private Result_C2Tuple_SignatureCVec_SignatureZZNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 3bc546ff..8d9cee24 100644 --- a/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CResult_NetAddressu8ZDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CResult_NetAddressu8ZDecodeErrorZ extends CommonBase { private Result_CResult_NetAddressu8ZDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 8667abc4..768260be 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 @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CVec_CVec_u8ZZNoneZ extends CommonBase { private Result_CVec_CVec_u8ZZNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 c70e7844..b0b5b5b2 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_SignatureZNoneZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CVec_SignatureZNoneZ extends CommonBase { private Result_CVec_SignatureZNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { 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 e47dcd46..f63dc357 100644 --- a/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CVec_u8ZPeerHandleErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CVec_u8ZPeerHandleErrorZ extends CommonBase { private Result_CVec_u8ZPeerHandleErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java index d0dd49e1..696d2ab9 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelAnnouncementDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelAnnouncementDecodeErrorZ extends CommonBase { private Result_ChannelAnnouncementDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java index f58e2d12..d60374a9 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelConfigDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelConfigDecodeErrorZ extends CommonBase { private Result_ChannelConfigDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java index e8042219..27c90ecb 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelFeaturesDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelFeaturesDecodeErrorZ extends CommonBase { private Result_ChannelFeaturesDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java index ca7a8b3d..ad262d11 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelInfoDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelInfoDecodeErrorZ extends CommonBase { private Result_ChannelInfoDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java index 9e2211fb..3b7b6799 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelMonitorUpdateDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelMonitorUpdateDecodeErrorZ extends CommonBase { private Result_ChannelMonitorUpdateDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java index 3093a787..09020f0d 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelPublicKeysDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelPublicKeysDecodeErrorZ extends CommonBase { private Result_ChannelPublicKeysDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java index d13f6583..3b3101da 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelReestablishDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelReestablishDecodeErrorZ extends CommonBase { private Result_ChannelReestablishDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java index 49ba747a..c37b5862 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelTransactionParametersDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelTransactionParametersDecodeErrorZ extends CommonBase { private Result_ChannelTransactionParametersDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java index 7609ceac..1a793687 100644 --- a/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ChannelUpdateDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ChannelUpdateDecodeErrorZ extends CommonBase { private Result_ChannelUpdateDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java index b02b6924..1487c9f1 100644 --- a/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ClosingSignedDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ClosingSignedDecodeErrorZ extends CommonBase { private Result_ClosingSignedDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java index da17497b..1bb9e9dd 100644 --- a/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CommitmentSignedDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CommitmentSignedDecodeErrorZ extends CommonBase { private Result_CommitmentSignedDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java index 43d4745b..7243885f 100644 --- a/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CommitmentTransactionDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CommitmentTransactionDecodeErrorZ extends CommonBase { private Result_CommitmentTransactionDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java index aa3bc8e4..02c8d680 100644 --- a/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_CounterpartyChannelTransactionParametersDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_CounterpartyChannelTransactionParametersDecodeErrorZ extends CommonBase { private Result_CounterpartyChannelTransactionParametersDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java index ae050e88..72ec37c7 100644 --- a/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_DirectionalChannelInfoDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_DirectionalChannelInfoDecodeErrorZ extends CommonBase { private Result_DirectionalChannelInfoDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java index cd2383b4..71efe0fc 100644 --- a/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ErrorMessageDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ErrorMessageDecodeErrorZ extends CommonBase { private Result_ErrorMessageDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java index 026c7f18..9c39d4cc 100644 --- a/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingCreatedDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_FundingCreatedDecodeErrorZ extends CommonBase { private Result_FundingCreatedDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java index c43294ab..7db0a540 100644 --- a/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingLockedDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_FundingLockedDecodeErrorZ extends CommonBase { private Result_FundingLockedDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java index aaa7de2d..ec53a85c 100644 --- a/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_FundingSignedDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_FundingSignedDecodeErrorZ extends CommonBase { private Result_FundingSignedDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java index 85b872b0..0e59d061 100644 --- a/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_GossipTimestampFilterDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_GossipTimestampFilterDecodeErrorZ extends CommonBase { private Result_GossipTimestampFilterDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java index b9a23fb4..4e64e1f7 100644 --- a/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HTLCOutputInCommitmentDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_HTLCOutputInCommitmentDecodeErrorZ extends CommonBase { private Result_HTLCOutputInCommitmentDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java index 73b3d202..05b4f2a3 100644 --- a/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HTLCUpdateDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_HTLCUpdateDecodeErrorZ extends CommonBase { private Result_HTLCUpdateDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java index 1aefd3d2..7794fb95 100644 --- a/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_HolderCommitmentTransactionDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_HolderCommitmentTransactionDecodeErrorZ extends CommonBase { private Result_HolderCommitmentTransactionDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java index 997fd164..98246464 100644 --- a/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InMemorySignerDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_InMemorySignerDecodeErrorZ extends CommonBase { private Result_InMemorySignerDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java index d492d9a5..77275658 100644 --- a/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InitDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_InitDecodeErrorZ extends CommonBase { private Result_InitDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java index fd401383..cee609a3 100644 --- a/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_InitFeaturesDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_InitFeaturesDecodeErrorZ extends CommonBase { private Result_InitFeaturesDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java b/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java index a2aa53da..1149eb98 100644 --- a/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java +++ b/src/main/java/org/ldk/structs/Result_NetAddressu8Z.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NetAddressu8Z extends CommonBase { private Result_NetAddressu8Z(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java index 5d626453..da4e3b6d 100644 --- a/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NetworkGraphDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NetworkGraphDecodeErrorZ extends CommonBase { private Result_NetworkGraphDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java index 5c10a66e..9fb06a72 100644 --- a/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeAnnouncementDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NodeAnnouncementDecodeErrorZ extends CommonBase { private Result_NodeAnnouncementDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java index ef954886..611d7056 100644 --- a/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeAnnouncementInfoDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NodeAnnouncementInfoDecodeErrorZ extends CommonBase { private Result_NodeAnnouncementInfoDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java index bc6d6682..ed1d3a27 100644 --- a/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeFeaturesDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NodeFeaturesDecodeErrorZ extends CommonBase { private Result_NodeFeaturesDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java index 11e99111..a6f8fcb9 100644 --- a/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NodeInfoDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NodeInfoDecodeErrorZ extends CommonBase { private Result_NodeInfoDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java index 2eaacd34..a296d091 100644 --- a/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneAPIErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NoneAPIErrorZ extends CommonBase { private Result_NoneAPIErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java b/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java index 5d8da12c..3e9f075b 100644 --- a/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneChannelMonitorUpdateErrZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NoneChannelMonitorUpdateErrZ extends CommonBase { private Result_NoneChannelMonitorUpdateErrZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java index 436be322..292df093 100644 --- a/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneLightningErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NoneLightningErrorZ extends CommonBase { private Result_NoneLightningErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java b/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java index 9ab9611c..89dce235 100644 --- a/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NoneMonitorUpdateErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NoneMonitorUpdateErrorZ extends CommonBase { private Result_NoneMonitorUpdateErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java b/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java index d0ed47a4..8f9e933d 100644 --- a/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java +++ b/src/main/java/org/ldk/structs/Result_NonePaymentSendFailureZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NonePaymentSendFailureZ extends CommonBase { private Result_NonePaymentSendFailureZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java b/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java index 6c934091..3377e161 100644 --- a/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_NonePeerHandleErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_NonePeerHandleErrorZ extends CommonBase { private Result_NonePeerHandleErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java index e8915617..5c602126 100644 --- a/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_OpenChannelDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_OpenChannelDecodeErrorZ extends CommonBase { private Result_OpenChannelDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java index 8f59f086..5eb6d70c 100644 --- a/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_OutPointDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_OutPointDecodeErrorZ extends CommonBase { private Result_OutPointDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java index 90c10d26..df3b1456 100644 --- a/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PingDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_PingDecodeErrorZ extends CommonBase { private Result_PingDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java index c89904e9..2d33ea87 100644 --- a/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PongDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_PongDecodeErrorZ extends CommonBase { private Result_PongDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java b/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java index f941cd25..3a9df4d2 100644 --- a/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_PublicKeyErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_PublicKeyErrorZ extends CommonBase { private Result_PublicKeyErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java index 1bfd4620..ee14d952 100644 --- a/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_QueryChannelRangeDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_QueryChannelRangeDecodeErrorZ extends CommonBase { private Result_QueryChannelRangeDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java index b903ae3d..4219737f 100644 --- a/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_QueryShortChannelIdsDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_QueryShortChannelIdsDecodeErrorZ extends CommonBase { private Result_QueryShortChannelIdsDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java index 3b3fb958..1130bb0d 100644 --- a/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ReplyChannelRangeDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ReplyChannelRangeDecodeErrorZ extends CommonBase { private Result_ReplyChannelRangeDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java index 397f04ad..baf5aab7 100644 --- a/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ReplyShortChannelIdsEndDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ReplyShortChannelIdsEndDecodeErrorZ extends CommonBase { private Result_ReplyShortChannelIdsEndDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java index 207f5b7c..fd9181c1 100644 --- a/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RevokeAndACKDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_RevokeAndACKDecodeErrorZ extends CommonBase { private Result_RevokeAndACKDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java index 601e81e1..d716f532 100644 --- a/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RouteDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_RouteDecodeErrorZ extends CommonBase { private Result_RouteDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java index 73c74bbc..fa9ab976 100644 --- a/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RouteLightningErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_RouteLightningErrorZ extends CommonBase { private Result_RouteLightningErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java index 1f190465..f58be065 100644 --- a/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_RoutingFeesDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_RoutingFeesDecodeErrorZ extends CommonBase { private Result_RoutingFeesDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java b/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java index 1d323536..f643ad9a 100644 --- a/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SecretKeyErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_SecretKeyErrorZ extends CommonBase { private Result_SecretKeyErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java index c696120f..c71735d6 100644 --- a/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_ShutdownDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_ShutdownDecodeErrorZ extends CommonBase { private Result_ShutdownDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java index b5b33d5a..652daf48 100644 --- a/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SignDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_SignDecodeErrorZ extends CommonBase { private Result_SignDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java b/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java index 304cbd86..8e7bb2e0 100644 --- a/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_SignatureNoneZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_SignatureNoneZ extends CommonBase { private Result_SignatureNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java index c5f99935..3fd3ca6f 100644 --- a/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_SpendableOutputDescriptorDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_SpendableOutputDescriptorDecodeErrorZ extends CommonBase { private Result_SpendableOutputDescriptorDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java b/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java index d03b5284..c70799b2 100644 --- a/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_TransactionNoneZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_TransactionNoneZ extends CommonBase { private Result_TransactionNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java b/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java index 46172256..54375f1a 100644 --- a/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java +++ b/src/main/java/org/ldk/structs/Result_TrustedCommitmentTransactionNoneZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_TrustedCommitmentTransactionNoneZ extends CommonBase { private Result_TrustedCommitmentTransactionNoneZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java index f1f5d238..5f181b45 100644 --- a/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxCreationKeysDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_TxCreationKeysDecodeErrorZ extends CommonBase { private Result_TxCreationKeysDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java b/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java index 3d951aa9..3c33cd42 100644 --- a/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxCreationKeysErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_TxCreationKeysErrorZ extends CommonBase { private Result_TxCreationKeysErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java b/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java index e4851630..84965342 100644 --- a/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_TxOutAccessErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_TxOutAccessErrorZ extends CommonBase { private Result_TxOutAccessErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java index 325541d2..a8b2d9f8 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UnsignedChannelAnnouncementDecodeErrorZ extends CommonBase { private Result_UnsignedChannelAnnouncementDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java index 7dbeefc4..23a6f102 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedChannelUpdateDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UnsignedChannelUpdateDecodeErrorZ extends CommonBase { private Result_UnsignedChannelUpdateDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java index 0e981e5b..9512afc7 100644 --- a/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UnsignedNodeAnnouncementDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UnsignedNodeAnnouncementDecodeErrorZ extends CommonBase { private Result_UnsignedNodeAnnouncementDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java index 83251e55..8fb56e96 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateAddHTLCDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UpdateAddHTLCDecodeErrorZ extends CommonBase { private Result_UpdateAddHTLCDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java index 77ebe7ed..42d39389 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFailHTLCDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UpdateFailHTLCDecodeErrorZ extends CommonBase { private Result_UpdateFailHTLCDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java index 0cedc44c..b1194604 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFailMalformedHTLCDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UpdateFailMalformedHTLCDecodeErrorZ extends CommonBase { private Result_UpdateFailMalformedHTLCDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java index 05d4a28a..c023933b 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFeeDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UpdateFeeDecodeErrorZ extends CommonBase { private Result_UpdateFeeDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java b/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java index fb60f5e0..364d732e 100644 --- a/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_UpdateFulfillHTLCDecodeErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_UpdateFulfillHTLCDecodeErrorZ extends CommonBase { private Result_UpdateFulfillHTLCDecodeErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java b/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java index 4519dd15..c3aab0c6 100644 --- a/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_boolLightningErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_boolLightningErrorZ extends CommonBase { private Result_boolLightningErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java b/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java index 014c611c..461cbad7 100644 --- a/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java +++ b/src/main/java/org/ldk/structs/Result_boolPeerHandleErrorZ.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Result_boolPeerHandleErrorZ extends CommonBase { private Result_boolPeerHandleErrorZ(Object _dummy, long ptr) { super(ptr); } protected void finalize() throws Throwable { diff --git a/src/main/java/org/ldk/structs/RevokeAndACK.java b/src/main/java/org/ldk/structs/RevokeAndACK.java index 80fe9b59..8737d5f2 100644 --- a/src/main/java/org/ldk/structs/RevokeAndACK.java +++ b/src/main/java/org/ldk/structs/RevokeAndACK.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A revoke_and_ack message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class RevokeAndACK extends CommonBase { RevokeAndACK(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +18,54 @@ public class RevokeAndACK extends CommonBase { if (ptr != 0) { bindings.RevokeAndACK_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.RevokeAndACK_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.RevokeAndACK_set_channel_id(this.ptr, val); } + /** + * The secret corresponding to the per-commitment point + */ public byte[] get_per_commitment_secret() { byte[] ret = bindings.RevokeAndACK_get_per_commitment_secret(this.ptr); return ret; } + /** + * The secret corresponding to the per-commitment point + */ public void set_per_commitment_secret(byte[] val) { bindings.RevokeAndACK_set_per_commitment_secret(this.ptr, val); } + /** + * The next sender-broadcast commitment transaction's per-commitment point + */ public byte[] get_next_per_commitment_point() { byte[] ret = bindings.RevokeAndACK_get_next_per_commitment_point(this.ptr); return ret; } + /** + * The next sender-broadcast commitment transaction's per-commitment point + */ public void set_next_per_commitment_point(byte[] val) { bindings.RevokeAndACK_set_next_per_commitment_point(this.ptr, val); } + /** + * Constructs a new RevokeAndACK given each field + */ public static RevokeAndACK constructor_new(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); RevokeAndACK ret_hu_conv = new RevokeAndACK(null, ret); @@ -48,6 +73,9 @@ public class RevokeAndACK extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the RevokeAndACK + */ public RevokeAndACK clone() { long ret = bindings.RevokeAndACK_clone(this.ptr); RevokeAndACK ret_hu_conv = new RevokeAndACK(null, ret); @@ -55,11 +83,17 @@ public class RevokeAndACK extends CommonBase { return ret_hu_conv; } + /** + * Serialize the RevokeAndACK object into a byte array which can be read by RevokeAndACK_read + */ public byte[] write() { byte[] ret = bindings.RevokeAndACK_write(this.ptr); return ret; } + /** + * Read a RevokeAndACK from a byte array, created by RevokeAndACK_write + */ public static Result_RevokeAndACKDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.RevokeAndACK_read(ser); Result_RevokeAndACKDecodeErrorZ ret_hu_conv = Result_RevokeAndACKDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Route.java b/src/main/java/org/ldk/structs/Route.java index a05f15b6..c4d4d81f 100644 --- a/src/main/java/org/ldk/structs/Route.java +++ b/src/main/java/org/ldk/structs/Route.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A route directs a payment from the sender (us) to the recipient. If the recipient supports MPP, + * it can take multiple paths. Each path is composed of one or more hops through the network. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Route extends CommonBase { Route(Object _dummy, long ptr) { super(ptr); } @@ -14,11 +19,22 @@ public class Route extends CommonBase { if (ptr != 0) { bindings.Route_free(ptr); } } + /** + * The list of routes taken for a single (potentially-)multi-part payment. The pubkey of the + * last RouteHop in each path must be the same. + * Each entry represents a list of hops, NOT INCLUDING our own, where the last hop is the + * destination. Thus, this must always be at least length one. While the maximum length of any + * given path is variable, keeping the length of any path to less than 20 should currently + * ensure it is viable. + */ public void set_paths(RouteHop[][] val) { bindings.Route_set_paths(this.ptr, Arrays.stream(val).map(val_conv_12 -> Arrays.stream(val_conv_12).mapToLong(val_conv_12_conv_10 -> val_conv_12_conv_10 == null ? 0 : val_conv_12_conv_10.ptr & ~1).toArray()).toArray(long[][]::new)); /* TODO 2 RouteHop[] */; } + /** + * Constructs a new Route given each field + */ public static Route constructor_new(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)); Route ret_hu_conv = new Route(null, ret); @@ -27,6 +43,9 @@ public class Route extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the Route + */ public Route clone() { long ret = bindings.Route_clone(this.ptr); Route ret_hu_conv = new Route(null, ret); @@ -34,11 +53,17 @@ public class Route extends CommonBase { return ret_hu_conv; } + /** + * Serialize the Route object into a byte array which can be read by Route_read + */ public byte[] write() { byte[] ret = bindings.Route_write(this.ptr); return ret; } + /** + * Read a Route from a byte array, created by Route_write + */ public static Result_RouteDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.Route_read(ser); Result_RouteDecodeErrorZ ret_hu_conv = Result_RouteDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/RouteHint.java b/src/main/java/org/ldk/structs/RouteHint.java index fc1e4249..d2bc2616 100644 --- a/src/main/java/org/ldk/structs/RouteHint.java +++ b/src/main/java/org/ldk/structs/RouteHint.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A channel descriptor which provides a last-hop route to get_route + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class RouteHint extends CommonBase { RouteHint(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,39 @@ public class RouteHint extends CommonBase { if (ptr != 0) { bindings.RouteHint_free(ptr); } } + /** + * The node_id of the non-target end of the route + */ public byte[] get_src_node_id() { byte[] ret = bindings.RouteHint_get_src_node_id(this.ptr); return ret; } + /** + * The node_id of the non-target end of the route + */ public void set_src_node_id(byte[] val) { bindings.RouteHint_set_src_node_id(this.ptr, val); } + /** + * The short_channel_id of this channel + */ public long get_short_channel_id() { long ret = bindings.RouteHint_get_short_channel_id(this.ptr); return ret; } + /** + * The short_channel_id of this channel + */ public void set_short_channel_id(long val) { bindings.RouteHint_set_short_channel_id(this.ptr, val); } + /** + * The fees which must be paid to use this channel + */ public RoutingFees get_fees() { long ret = bindings.RouteHint_get_fees(this.ptr); RoutingFees ret_hu_conv = new RoutingFees(null, ret); @@ -39,20 +58,32 @@ public class RouteHint extends CommonBase { return ret_hu_conv; } + /** + * The fees which must be paid to use this channel + */ public void set_fees(RoutingFees val) { bindings.RouteHint_set_fees(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The difference in CLTV values between this node and the next node. + */ public short get_cltv_expiry_delta() { short ret = bindings.RouteHint_get_cltv_expiry_delta(this.ptr); return ret; } + /** + * The difference in CLTV values between this node and the next node. + */ public void set_cltv_expiry_delta(short val) { bindings.RouteHint_set_cltv_expiry_delta(this.ptr, val); } + /** + * Creates a copy of the RouteHint + */ public RouteHint clone() { long ret = bindings.RouteHint_clone(this.ptr); RouteHint ret_hu_conv = new RouteHint(null, ret); diff --git a/src/main/java/org/ldk/structs/RouteHop.java b/src/main/java/org/ldk/structs/RouteHop.java index 1e36ed59..2c301f7d 100644 --- a/src/main/java/org/ldk/structs/RouteHop.java +++ b/src/main/java/org/ldk/structs/RouteHop.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A hop in a route + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class RouteHop extends CommonBase { RouteHop(Object _dummy, long ptr) { super(ptr); } @@ -14,15 +18,25 @@ public class RouteHop extends CommonBase { if (ptr != 0) { bindings.RouteHop_free(ptr); } } + /** + * The node_id of the node at this hop. + */ public byte[] get_pubkey() { byte[] ret = bindings.RouteHop_get_pubkey(this.ptr); return ret; } + /** + * The node_id of the node at this hop. + */ public void set_pubkey(byte[] val) { bindings.RouteHop_set_pubkey(this.ptr, val); } + /** + * The node_announcement features of the node at this hop. For the last hop, these may be + * amended to match the features present in the invoice this node generated. + */ public NodeFeatures get_node_features() { long ret = bindings.RouteHop_get_node_features(this.ptr); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -30,20 +44,34 @@ public class RouteHop extends CommonBase { return ret_hu_conv; } + /** + * The node_announcement features of the node at this hop. For the last hop, these may be + * amended to match the features present in the invoice this node generated. + */ public void set_node_features(NodeFeatures val) { bindings.RouteHop_set_node_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The channel that should be used from the previous hop to reach this node. + */ public long get_short_channel_id() { long ret = bindings.RouteHop_get_short_channel_id(this.ptr); return ret; } + /** + * The channel that should be used from the previous hop to reach this node. + */ public void set_short_channel_id(long val) { bindings.RouteHop_set_short_channel_id(this.ptr, val); } + /** + * The channel_announcement features of the channel that should be used from the previous hop + * to reach this node. + */ public ChannelFeatures get_channel_features() { long ret = bindings.RouteHop_get_channel_features(this.ptr); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -51,29 +79,54 @@ public class RouteHop extends CommonBase { return ret_hu_conv; } + /** + * The channel_announcement features of the channel that should be used from the previous hop + * to reach this node. + */ public void set_channel_features(ChannelFeatures val) { bindings.RouteHop_set_channel_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The fee taken on this hop (for paying for the use of the *next* channel in the path). + * For the last hop, this should be the full value of the payment (might be more than + * requested if we had to match htlc_minimum_msat). + */ public long get_fee_msat() { long ret = bindings.RouteHop_get_fee_msat(this.ptr); return ret; } + /** + * The fee taken on this hop (for paying for the use of the *next* channel in the path). + * For the last hop, this should be the full value of the payment (might be more than + * requested if we had to match htlc_minimum_msat). + */ public void set_fee_msat(long val) { bindings.RouteHop_set_fee_msat(this.ptr, val); } + /** + * The CLTV delta added for this hop. For the last hop, this should be the full CLTV value + * expected at the destination, in excess of the current block height. + */ public int get_cltv_expiry_delta() { int ret = bindings.RouteHop_get_cltv_expiry_delta(this.ptr); return ret; } + /** + * The CLTV delta added for this hop. For the last hop, this should be the full CLTV value + * expected at the destination, in excess of the current block height. + */ public void set_cltv_expiry_delta(int val) { bindings.RouteHop_set_cltv_expiry_delta(this.ptr, val); } + /** + * Constructs a new RouteHop given each field + */ public static RouteHop constructor_new(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); RouteHop ret_hu_conv = new RouteHop(null, ret); @@ -83,6 +136,9 @@ public class RouteHop extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the RouteHop + */ public RouteHop clone() { long ret = bindings.RouteHop_clone(this.ptr); RouteHop ret_hu_conv = new RouteHop(null, ret); diff --git a/src/main/java/org/ldk/structs/RoutingFees.java b/src/main/java/org/ldk/structs/RoutingFees.java index da1c5c48..eee3ca20 100644 --- a/src/main/java/org/ldk/structs/RoutingFees.java +++ b/src/main/java/org/ldk/structs/RoutingFees.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Fees for routing via a given channel or a node + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class RoutingFees extends CommonBase { RoutingFees(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,41 @@ public class RoutingFees extends CommonBase { if (ptr != 0) { bindings.RoutingFees_free(ptr); } } + /** + * Flat routing fee in satoshis + */ public int get_base_msat() { int ret = bindings.RoutingFees_get_base_msat(this.ptr); return ret; } + /** + * Flat routing fee in satoshis + */ public void set_base_msat(int val) { bindings.RoutingFees_set_base_msat(this.ptr, val); } + /** + * Liquidity-based routing fee in millionths of a routed amount. + * In other words, 10000 is 1%. + */ public int get_proportional_millionths() { int ret = bindings.RoutingFees_get_proportional_millionths(this.ptr); return ret; } + /** + * Liquidity-based routing fee in millionths of a routed amount. + * In other words, 10000 is 1%. + */ public void set_proportional_millionths(int val) { bindings.RoutingFees_set_proportional_millionths(this.ptr, val); } + /** + * Constructs a new RoutingFees given each field + */ public static RoutingFees constructor_new(int base_msat_arg, int proportional_millionths_arg) { long ret = bindings.RoutingFees_new(base_msat_arg, proportional_millionths_arg); RoutingFees ret_hu_conv = new RoutingFees(null, ret); @@ -39,6 +60,9 @@ public class RoutingFees extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the RoutingFees + */ public RoutingFees clone() { long ret = bindings.RoutingFees_clone(this.ptr); RoutingFees ret_hu_conv = new RoutingFees(null, ret); @@ -46,12 +70,18 @@ public class RoutingFees extends CommonBase { return ret_hu_conv; } + /** + * Read a RoutingFees from a byte array, created by RoutingFees_write + */ public static Result_RoutingFeesDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.RoutingFees_read(ser); Result_RoutingFeesDecodeErrorZ ret_hu_conv = Result_RoutingFeesDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Serialize the RoutingFees object into a byte array which can be read by RoutingFees_read + */ public byte[] write() { byte[] ret = bindings.RoutingFees_write(this.ptr); return ret; diff --git a/src/main/java/org/ldk/structs/RoutingMessageHandler.java b/src/main/java/org/ldk/structs/RoutingMessageHandler.java index 4efd6b24..2ca68de1 100644 --- a/src/main/java/org/ldk/structs/RoutingMessageHandler.java +++ b/src/main/java/org/ldk/structs/RoutingMessageHandler.java @@ -5,6 +5,15 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait to describe an object which can receive routing messages. + * + * # Implementor DoS Warnings + * + * For `gossip_queries` messages there are potential DoS vectors when handling + * inbound queries. Implementors using an on-disk network graph should be aware of + * repeated disk I/O for queries accessing different parts of the network graph. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class RoutingMessageHandler extends CommonBase { final bindings.LDKRoutingMessageHandler bindings_instance; @@ -21,16 +30,66 @@ public class RoutingMessageHandler extends CommonBase { } public static interface RoutingMessageHandlerInterface { + /** + * Handle an incoming node_announcement message, returning true if it should be forwarded on, + * false or returning an Err otherwise. + */ Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg); + /** + * Handle a channel_announcement message, returning true if it should be forwarded on, false + * or returning an Err otherwise. + */ Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg); + /** + * Handle an incoming channel_update message, returning true if it should be forwarded on, + * false or returning an Err otherwise. + */ Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg); + /** + * Handle some updates to the route graph that we learned due to an outbound failed payment. + */ void handle_htlc_fail_channel_update(HTLCFailChannelUpdate update); + /** + * Gets a subset of the channel announcements and updates required to dump our routing table + * to a remote node, starting at the short_channel_id indicated by starting_point and + * including the batch_amount entries immediately higher in numerical value than starting_point. + */ ThreeTuple[] get_next_channel_announcements(long starting_point, byte batch_amount); + /** + * Gets a subset of the node announcements required to dump our routing table to a remote node, + * 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. + */ NodeAnnouncement[] get_next_node_announcements(byte[] starting_point, byte batch_amount); + /** + * Called when a connection is established with a peer. This can be used to + * perform routing table synchronization using a strategy defined by the + * implementor. + */ void sync_routing_table(byte[] their_node_id, Init init); + /** + * Handles the reply of a query we initiated to learn about channels + * for a given range of blocks. We can expect to receive one or more + * replies to a single query. + */ Result_NoneLightningErrorZ handle_reply_channel_range(byte[] their_node_id, ReplyChannelRange msg); + /** + * Handles the reply of a query we initiated asking for routing gossip + * messages for a list of channels. We should receive this message when + * a node has completed its best effort to send us the pertaining routing + * gossip messages. + */ Result_NoneLightningErrorZ handle_reply_short_channel_ids_end(byte[] their_node_id, ReplyShortChannelIdsEnd msg); + /** + * Handles when a peer asks us to send a list of short_channel_ids + * for the requested range of blocks. + */ Result_NoneLightningErrorZ handle_query_channel_range(byte[] their_node_id, QueryChannelRange msg); + /** + * Handles when a peer asks us to send routing gossip messages for a + * list of short_channel_ids. + */ Result_NoneLightningErrorZ handle_query_short_channel_ids(byte[] their_node_id, QueryShortChannelIds msg); } private static class LDKRoutingMessageHandlerHolder { RoutingMessageHandler held; } @@ -106,6 +165,10 @@ public class RoutingMessageHandler extends CommonBase { }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance); return impl_holder.held; } + /** + * 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); Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); @@ -113,6 +176,10 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handle a channel_announcement message, returning true if it should be forwarded on, false + * or returning an Err otherwise. + */ public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) { long ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); @@ -120,6 +187,10 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handle an incoming channel_update message, returning true if it should be forwarded on, + * false or returning an Err otherwise. + */ public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) { long ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1); Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret); @@ -127,11 +198,19 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handle some updates to the route graph that we learned due to an outbound failed payment. + */ public void handle_htlc_fail_channel_update(HTLCFailChannelUpdate update) { bindings.RoutingMessageHandler_handle_htlc_fail_channel_update(this.ptr, update == null ? 0 : update.ptr & ~1); this.ptrs_to.add(update); } + /** + * Gets a subset of the channel announcements and updates required to dump our routing table + * to a remote node, starting at the short_channel_id indicated by starting_point and + * including the batch_amount entries immediately higher in numerical value than starting_point. + */ public ThreeTuple[] get_next_channel_announcements(long starting_point, byte batch_amount) { long[] ret = bindings.RoutingMessageHandler_get_next_channel_announcements(this.ptr, starting_point, batch_amount); ThreeTuple[] ret_conv_63_arr = new ThreeTuple[ret.length]; @@ -157,6 +236,12 @@ public class RoutingMessageHandler extends CommonBase { return ret_conv_63_arr; } + /** + * Gets a subset of the node announcements required to dump our routing table to a remote node, + * 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. + */ public NodeAnnouncement[] get_next_node_announcements(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]; @@ -169,11 +254,21 @@ public class RoutingMessageHandler extends CommonBase { return ret_conv_18_arr; } + /** + * Called when a connection is established with a peer. This can be used to + * perform routing table synchronization using a strategy defined by the + * implementor. + */ public void sync_routing_table(byte[] their_node_id, Init init) { bindings.RoutingMessageHandler_sync_routing_table(this.ptr, their_node_id, init == null ? 0 : init.ptr & ~1); this.ptrs_to.add(init); } + /** + * Handles the reply of a query we initiated to learn about channels + * for a given range of blocks. We can expect to receive one or more + * replies to a single query. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -181,6 +276,12 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handles the reply of a query we initiated asking for routing gossip + * messages for a list of channels. We should receive this message when + * a node has completed its best effort to send us the pertaining routing + * gossip messages. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -188,6 +289,10 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handles when a peer asks us to send a list of short_channel_ids + * for the requested range of blocks. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); @@ -195,6 +300,10 @@ public class RoutingMessageHandler extends CommonBase { return ret_hu_conv; } + /** + * Handles when a peer asks us to send routing gossip messages for a + * list of short_channel_ids. + */ 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); Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Shutdown.java b/src/main/java/org/ldk/structs/Shutdown.java index ec11fcc0..b5758973 100644 --- a/src/main/java/org/ldk/structs/Shutdown.java +++ b/src/main/java/org/ldk/structs/Shutdown.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A shutdown message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Shutdown extends CommonBase { Shutdown(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,41 @@ public class Shutdown extends CommonBase { if (ptr != 0) { bindings.Shutdown_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.Shutdown_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.Shutdown_set_channel_id(this.ptr, val); } + /** + * The destination of this peer's funds on closing. + * Must be in one of these forms: p2pkh, p2sh, p2wpkh, p2wsh. + */ public byte[] get_scriptpubkey() { byte[] ret = bindings.Shutdown_get_scriptpubkey(this.ptr); return ret; } + /** + * The destination of this peer's funds on closing. + * Must be in one of these forms: p2pkh, p2sh, p2wpkh, p2wsh. + */ public void set_scriptpubkey(byte[] val) { bindings.Shutdown_set_scriptpubkey(this.ptr, val); } + /** + * Constructs a new Shutdown given each field + */ public static Shutdown constructor_new(byte[] channel_id_arg, byte[] scriptpubkey_arg) { long ret = bindings.Shutdown_new(channel_id_arg, scriptpubkey_arg); Shutdown ret_hu_conv = new Shutdown(null, ret); @@ -39,6 +60,9 @@ public class Shutdown extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the Shutdown + */ public Shutdown clone() { long ret = bindings.Shutdown_clone(this.ptr); Shutdown ret_hu_conv = new Shutdown(null, ret); @@ -46,11 +70,17 @@ public class Shutdown extends CommonBase { return ret_hu_conv; } + /** + * Serialize the Shutdown object into a byte array which can be read by Shutdown_read + */ public byte[] write() { byte[] ret = bindings.Shutdown_write(this.ptr); return ret; } + /** + * Read a Shutdown from a byte array, created by Shutdown_write + */ public static Result_ShutdownDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.Shutdown_read(ser); Result_ShutdownDecodeErrorZ ret_hu_conv = Result_ShutdownDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Sign.java b/src/main/java/org/ldk/structs/Sign.java index 1ab9848a..0e9edf7c 100644 --- a/src/main/java/org/ldk/structs/Sign.java +++ b/src/main/java/org/ldk/structs/Sign.java @@ -5,6 +5,25 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * A trait to sign lightning channel transactions as described in BOLT 3. + * + * Signing services could be implemented on a hardware wallet. In this case, + * the current Sign would be a front-end on top of a communication + * channel connected to your secure device and lightning key material wouldn't + * reside on a hot server. Nevertheless, a this deployment would still need + * to trust the ChannelManager to avoid loss of funds as this latest component + * could ask to sign commitment transaction with HTLCs paying to attacker pubkeys. + * + * A more secure iteration would be to use hashlock (or payment points) to pair + * invoice/incoming HTLCs with outgoing HTLCs to implement a no-trust-ChannelManager + * at the price of more state and computation on the hardware wallet side. In the future, + * we are looking forward to design such interface. + * + * In any case, ChannelMonitor or fallback watchtowers are always going to be trusted + * to act, as liveness and breach reply correctness are always going to be hard requirements + * of LN security model, orthogonal of key management issues. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Sign extends CommonBase { final bindings.LDKSign bindings_instance; @@ -21,16 +40,122 @@ public class Sign extends CommonBase { } public static interface SignInterface { + /** + * Gets the per-commitment point for a specific commitment number + * + * Note that the commitment number starts at (1 << 48) - 1 and counts backwards. + */ byte[] get_per_commitment_point(long idx); + /** + * Gets the commitment secret for a specific commitment number as part of the revocation process + * + * An external signer implementation should error here if the commitment was already signed + * and should refuse to sign it in the future. + * + * May be called more than once for the same index. + * + * Note that the commitment number starts at (1 << 48) - 1 and counts backwards. + */ byte[] release_commitment_secret(long idx); + /** + * Gets an arbitrary identifier describing the set of keys which are provided back to you in + * some SpendableOutputDescriptor types. This should be sufficient to identify this + * Sign object uniquely and lookup or re-derive its keys. + */ byte[] channel_keys_id(); + /** + * Create a signature for a counterparty's commitment transaction and associated HTLC transactions. + * + * Note that if signing fails or is rejected, the channel will be force-closed. + */ Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx); + /** + * Create a signatures for a holder's commitment transaction and its claiming HTLC transactions. + * This will only ever be called with a non-revoked commitment_tx. This will be called with the + * latest commitment_tx when we initiate a force-close. + * This will be called with the previous latest, just to get claiming HTLC signatures, if we are + * reacting to a ChannelMonitor replica that decided to broadcast before it had been updated to + * the latest. + * This may be called multiple times for the same transaction. + * + * An external signer implementation should check that the commitment has not been revoked. + * + * May return Err if key derivation fails. Callers, such as ChannelMonitor, will panic in such a case. + */ Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs(HolderCommitmentTransaction commitment_tx); + /** + * Create a signature for the given input in a transaction spending an HTLC or commitment + * transaction output when our counterparty broadcasts an old state. + * + * A justice transaction may claim multiples outputs at the same time if timelocks are + * similar, but only a signature for the input at index `input` should be signed for here. + * It may be called multiples time for same output(s) if a fee-bump is needed with regards + * to an upcoming timelock expiration. + * + * Amount is value of the output spent by this input, committed to in the BIP 143 signature. + * + * per_commitment_key is revocation secret which was provided by our counterparty when they + * revoked the state which they eventually broadcast. It's not a _holder_ secret key and does + * not allow the spending of any funds by itself (you need our holder revocation_secret to do + * so). + * + * htlc holds HTLC elements (hash, timelock) if the output being spent is a HTLC output, thus + * changing the format of the witness script (which is committed to in the BIP 143 + * signatures). + */ Result_SignatureNoneZ sign_justice_transaction(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, HTLCOutputInCommitment htlc); + /** + * Create a signature for a claiming transaction for a HTLC output on a counterparty's commitment + * transaction, either offered or received. + * + * Such a transaction may claim multiples offered outputs at same time if we know the + * preimage for each when we create it, but only the input at index `input` should be + * signed for here. It may be called multiple times for same output(s) if a fee-bump is + * needed with regards to an upcoming timelock expiration. + * + * Witness_script is either a offered or received script as defined in BOLT3 for HTLC + * outputs. + * + * Amount is value of the output spent by this input, committed to in the BIP 143 signature. + * + * Per_commitment_point is the dynamic point corresponding to the channel state + * detected onchain. It has been generated by our counterparty and is used to derive + * channel state keys, which are then included in the witness script and committed to in the + * BIP 143 signature. + */ Result_SignatureNoneZ sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, HTLCOutputInCommitment htlc); + /** + * Create a signature for a (proposed) closing transaction. + * + * Note that, due to rounding, there may be one \"missing\" satoshi, and either party may have + * chosen to forgo their output as dust. + */ Result_SignatureNoneZ sign_closing_transaction(byte[] closing_tx); + /** + * Signs a channel announcement message with our funding key, proving it comes from one + * of the channel participants. + * + * Note that if this fails or is rejected, the channel will not be publicly announced and + * our counterparty may (though likely will not) close the channel on us for violating the + * protocol. + */ Result_SignatureNoneZ sign_channel_announcement(UnsignedChannelAnnouncement msg); + /** + * Set the counterparty static channel data, including basepoints, + * counterparty_selected/holder_selected_contest_delay and funding outpoint. + * This is done as soon as the funding outpoint is known. Since these are static channel data, + * they MUST NOT be allowed to change to different values once set. + * + * channel_parameters.is_populated() MUST be true. + * + * We bind holder_selected_contest_delay late here for API convenience. + * + * Will be called before any signatures are applied. + */ void ready_channel(ChannelTransactionParameters channel_parameters); + /** + * Serialize the object into a byte array + */ byte[] write(); } private static class LDKSignHolder { Sign held; } @@ -95,21 +220,46 @@ public class Sign extends CommonBase { }, pubkeys); return impl_holder.held; } + /** + * Gets the per-commitment point for a specific commitment number + * + * Note that the commitment number starts at (1 << 48) - 1 and counts backwards. + */ public byte[] get_per_commitment_point(long idx) { byte[] ret = bindings.Sign_get_per_commitment_point(this.ptr, idx); return ret; } + /** + * Gets the commitment secret for a specific commitment number as part of the revocation process + * + * An external signer implementation should error here if the commitment was already signed + * and should refuse to sign it in the future. + * + * May be called more than once for the same index. + * + * Note that the commitment number starts at (1 << 48) - 1 and counts backwards. + */ public byte[] release_commitment_secret(long idx) { byte[] ret = bindings.Sign_release_commitment_secret(this.ptr, idx); return ret; } + /** + * Gets an arbitrary identifier describing the set of keys which are provided back to you in + * some SpendableOutputDescriptor types. This should be sufficient to identify this + * Sign object uniquely and lookup or re-derive its keys. + */ public byte[] channel_keys_id() { byte[] ret = bindings.Sign_channel_keys_id(this.ptr); return ret; } + /** + * Create a signature for a counterparty's commitment transaction and associated HTLC transactions. + * + * Note that if signing fails or is rejected, the channel will be force-closed. + */ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_counterparty_commitment(CommitmentTransaction commitment_tx) { long ret = bindings.Sign_sign_counterparty_commitment(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1); Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); @@ -117,6 +267,19 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Create a signatures for a holder's commitment transaction and its claiming HTLC transactions. + * This will only ever be called with a non-revoked commitment_tx. This will be called with the + * latest commitment_tx when we initiate a force-close. + * This will be called with the previous latest, just to get claiming HTLC signatures, if we are + * reacting to a ChannelMonitor replica that decided to broadcast before it had been updated to + * the latest. + * This may be called multiple times for the same transaction. + * + * An external signer implementation should check that the commitment has not been revoked. + * + * May return Err if key derivation fails. Callers, such as ChannelMonitor, will panic in such a case. + */ public Result_C2Tuple_SignatureCVec_SignatureZZNoneZ sign_holder_commitment_and_htlcs(HolderCommitmentTransaction commitment_tx) { long ret = bindings.Sign_sign_holder_commitment_and_htlcs(this.ptr, commitment_tx == null ? 0 : commitment_tx.ptr & ~1); Result_C2Tuple_SignatureCVec_SignatureZZNoneZ ret_hu_conv = Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.constr_from_ptr(ret); @@ -124,6 +287,26 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Create a signature for the given input in a transaction spending an HTLC or commitment + * transaction output when our counterparty broadcasts an old state. + * + * A justice transaction may claim multiples outputs at the same time if timelocks are + * similar, but only a signature for the input at index `input` should be signed for here. + * It may be called multiples time for same output(s) if a fee-bump is needed with regards + * to an upcoming timelock expiration. + * + * Amount is value of the output spent by this input, committed to in the BIP 143 signature. + * + * per_commitment_key is revocation secret which was provided by our counterparty when they + * revoked the state which they eventually broadcast. It's not a _holder_ secret key and does + * not allow the spending of any funds by itself (you need our holder revocation_secret to do + * so). + * + * htlc holds HTLC elements (hash, timelock) if the output being spent is a HTLC output, thus + * changing the format of the witness script (which is committed to in the BIP 143 + * signatures). + */ public Result_SignatureNoneZ sign_justice_transaction(byte[] justice_tx, long input, long amount, byte[] per_commitment_key, HTLCOutputInCommitment htlc) { long ret = bindings.Sign_sign_justice_transaction(this.ptr, justice_tx, input, amount, per_commitment_key, htlc == null ? 0 : htlc.ptr & ~1); Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); @@ -131,6 +314,25 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Create a signature for a claiming transaction for a HTLC output on a counterparty's commitment + * transaction, either offered or received. + * + * Such a transaction may claim multiples offered outputs at same time if we know the + * preimage for each when we create it, but only the input at index `input` should be + * signed for here. It may be called multiple times for same output(s) if a fee-bump is + * needed with regards to an upcoming timelock expiration. + * + * Witness_script is either a offered or received script as defined in BOLT3 for HTLC + * outputs. + * + * Amount is value of the output spent by this input, committed to in the BIP 143 signature. + * + * Per_commitment_point is the dynamic point corresponding to the channel state + * detected onchain. It has been generated by our counterparty and is used to derive + * channel state keys, which are then included in the witness script and committed to in the + * BIP 143 signature. + */ public Result_SignatureNoneZ sign_counterparty_htlc_transaction(byte[] htlc_tx, long input, long amount, byte[] per_commitment_point, HTLCOutputInCommitment htlc) { long ret = bindings.Sign_sign_counterparty_htlc_transaction(this.ptr, htlc_tx, input, amount, per_commitment_point, htlc == null ? 0 : htlc.ptr & ~1); Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); @@ -138,12 +340,26 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Create a signature for a (proposed) closing transaction. + * + * Note that, due to rounding, there may be one \"missing\" satoshi, and either party may have + * chosen to forgo their output as dust. + */ public Result_SignatureNoneZ sign_closing_transaction(byte[] closing_tx) { long ret = bindings.Sign_sign_closing_transaction(this.ptr, closing_tx); Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Signs a channel announcement message with our funding key, proving it comes from one + * of the channel participants. + * + * Note that if this fails or is rejected, the channel will not be publicly announced and + * our counterparty may (though likely will not) close the channel on us for violating the + * protocol. + */ public Result_SignatureNoneZ sign_channel_announcement(UnsignedChannelAnnouncement msg) { long ret = bindings.Sign_sign_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1); Result_SignatureNoneZ ret_hu_conv = Result_SignatureNoneZ.constr_from_ptr(ret); @@ -151,16 +367,35 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Set the counterparty static channel data, including basepoints, + * counterparty_selected/holder_selected_contest_delay and funding outpoint. + * This is done as soon as the funding outpoint is known. Since these are static channel data, + * they MUST NOT be allowed to change to different values once set. + * + * channel_parameters.is_populated() MUST be true. + * + * We bind holder_selected_contest_delay late here for API convenience. + * + * Will be called before any signatures are applied. + */ public void ready_channel(ChannelTransactionParameters channel_parameters) { bindings.Sign_ready_channel(this.ptr, channel_parameters == null ? 0 : channel_parameters.ptr & ~1); this.ptrs_to.add(channel_parameters); } + /** + * Serialize the object into a byte array + */ public byte[] write() { byte[] ret = bindings.Sign_write(this.ptr); return ret; } + /** + * Frees any resources associated with this object given its this_arg pointer. + * Does not need to free the outer struct containing function pointers and may be NULL is no resources need to be freed. + */ public ChannelPublicKeys get_pubkeys() { long ret = bindings.Sign_get_pubkeys(this.ptr); ChannelPublicKeys ret_hu_conv = new ChannelPublicKeys(null, ret); @@ -168,6 +403,9 @@ public class Sign extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of a Sign + */ public Sign clone() { long ret = bindings.Sign_clone(this.ptr); Sign ret_hu_conv = new Sign(null, ret); diff --git a/src/main/java/org/ldk/structs/SocketDescriptor.java b/src/main/java/org/ldk/structs/SocketDescriptor.java index 40dfc014..7c993305 100644 --- a/src/main/java/org/ldk/structs/SocketDescriptor.java +++ b/src/main/java/org/ldk/structs/SocketDescriptor.java @@ -5,6 +5,19 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * Provides an object which can be used to send data to and which uniquely identifies a connection + * to a remote host. You will need to be able to generate multiple of these which meet Eq and + * implement Hash to meet the PeerManager API. + * + * For efficiency, Clone should be relatively cheap for this type. + * + * You probably want to just extend an int and put a file descriptor in a struct and implement + * send_data. Note that if you are using a higher-level net library that may call close() itself, + * be careful to ensure you don't have races whereby you might register a new connection with an + * fd which is the same as a previous one which has yet to be removed via + * PeerManager::socket_disconnected(). + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class SocketDescriptor extends CommonBase { final bindings.LDKSocketDescriptor bindings_instance; @@ -20,9 +33,39 @@ public class SocketDescriptor extends CommonBase { } public static interface SocketDescriptorInterface { + /** + * Attempts to send some data from the given slice to the peer. + * + * Returns the amount of data which was sent, possibly 0 if the socket has since disconnected. + * Note that in the disconnected case, socket_disconnected must still fire and further write + * attempts may occur until that time. + * + * If the returned size is smaller than data.len(), a write_available event must + * trigger the next time more data can be written. Additionally, until the a send_data event + * completes fully, no further read_events should trigger on the same peer! + * + * If a read_event on this descriptor had previously returned true (indicating that read + * events should be paused to prevent DoS in the send buffer), resume_read may be set + * indicating that read events on this descriptor should resume. A resume_read of false does + * not* imply that further read events should be paused. + */ long send_data(byte[] data, boolean resume_read); + /** + * Disconnect the socket pointed to by this SocketDescriptor. Once this function returns, no + * more calls to write_buffer_space_avail, read_event or socket_disconnected may be made with + * this descriptor. No socket_disconnected call should be generated as a result of this call, + * though races may occur whereby disconnect_socket is called after a call to + * socket_disconnected but prior to socket_disconnected returning. + */ void disconnect_socket(); + /** + * Checks if two objects are equal given this object's this_arg pointer and another object. + */ boolean eq(SocketDescriptor other_arg); + /** + * Calculate a succinct non-cryptographic hash for an object given its this_arg pointer. + * This is used, for example, for inclusion of this object in a hash map. + */ long hash(); } private static class LDKSocketDescriptorHolder { SocketDescriptor held; } @@ -49,20 +92,50 @@ public class SocketDescriptor extends CommonBase { }); return impl_holder.held; } + /** + * Attempts to send some data from the given slice to the peer. + * + * Returns the amount of data which was sent, possibly 0 if the socket has since disconnected. + * Note that in the disconnected case, socket_disconnected must still fire and further write + * attempts may occur until that time. + * + * If the returned size is smaller than data.len(), a write_available event must + * trigger the next time more data can be written. Additionally, until the a send_data event + * completes fully, no further read_events should trigger on the same peer! + * + * If a read_event on this descriptor had previously returned true (indicating that read + * events should be paused to prevent DoS in the send buffer), resume_read may be set + * indicating that read events on this descriptor should resume. A resume_read of false does + * not* imply that further read events should be paused. + */ public long send_data(byte[] data, boolean resume_read) { long ret = bindings.SocketDescriptor_send_data(this.ptr, data, resume_read); return ret; } + /** + * Disconnect the socket pointed to by this SocketDescriptor. Once this function returns, no + * more calls to write_buffer_space_avail, read_event or socket_disconnected may be made with + * this descriptor. No socket_disconnected call should be generated as a result of this call, + * though races may occur whereby disconnect_socket is called after a call to + * socket_disconnected but prior to socket_disconnected returning. + */ public void disconnect_socket() { bindings.SocketDescriptor_disconnect_socket(this.ptr); } + /** + * Calculate a succinct non-cryptographic hash for an object given its this_arg pointer. + * This is used, for example, for inclusion of this object in a hash map. + */ public long hash() { long ret = bindings.SocketDescriptor_hash(this.ptr); return ret; } + /** + * Creates a copy of a SocketDescriptor + */ public SocketDescriptor clone() { long ret = bindings.SocketDescriptor_clone(this.ptr); SocketDescriptor ret_hu_conv = new SocketDescriptor(null, ret); diff --git a/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java b/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java index 3dabd15a..a02d2379 100644 --- a/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/SpendableOutputDescriptor.java @@ -5,6 +5,14 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * When on-chain outputs are created by rust-lightning (which our counterparty is not able to + * claim at any point in the future) an event is generated which you must track and be able to + * spend on-chain. The information needed to do this is provided in this enum, including the + * outpoint describing which txid and output index is available, the full output which exists at + * that txid/index, and any keys or other information required to sign. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class SpendableOutputDescriptor extends CommonBase { private SpendableOutputDescriptor(Object _dummy, long ptr) { super(ptr); } diff --git a/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java b/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java index 6fd5fd7a..1ba6cec4 100644 --- a/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java +++ b/src/main/java/org/ldk/structs/StaticPaymentOutputDescriptor.java @@ -5,6 +5,11 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Information about a spendable output to our \"payment key\". See + * SpendableOutputDescriptor::StaticPaymentOutput for more details on how to spend this. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class StaticPaymentOutputDescriptor extends CommonBase { StaticPaymentOutputDescriptor(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +19,9 @@ public class StaticPaymentOutputDescriptor extends CommonBase { if (ptr != 0) { bindings.StaticPaymentOutputDescriptor_free(ptr); } } + /** + * The outpoint which is spendable + */ public OutPoint get_outpoint() { long ret = bindings.StaticPaymentOutputDescriptor_get_outpoint(this.ptr); OutPoint ret_hu_conv = new OutPoint(null, ret); @@ -21,33 +29,58 @@ public class StaticPaymentOutputDescriptor extends CommonBase { return ret_hu_conv; } + /** + * The outpoint which is spendable + */ public void set_outpoint(OutPoint val) { bindings.StaticPaymentOutputDescriptor_set_outpoint(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The output which is referenced by the given outpoint + */ public void set_output(TxOut val) { bindings.StaticPaymentOutputDescriptor_set_output(this.ptr, val.ptr); } + /** + * Arbitrary identification information returned by a call to + * `Sign::channel_keys_id()`. This may be useful in re-deriving keys used in + * the channel to spend the output. + */ public byte[] get_channel_keys_id() { byte[] ret = bindings.StaticPaymentOutputDescriptor_get_channel_keys_id(this.ptr); return ret; } + /** + * Arbitrary identification information returned by a call to + * `Sign::channel_keys_id()`. This may be useful in re-deriving keys used in + * the channel to spend the output. + */ public void set_channel_keys_id(byte[] val) { bindings.StaticPaymentOutputDescriptor_set_channel_keys_id(this.ptr, val); } + /** + * The value of the channel which this transactions spends. + */ public long get_channel_value_satoshis() { long ret = bindings.StaticPaymentOutputDescriptor_get_channel_value_satoshis(this.ptr); return ret; } + /** + * The value of the channel which this transactions spends. + */ public void set_channel_value_satoshis(long val) { bindings.StaticPaymentOutputDescriptor_set_channel_value_satoshis(this.ptr, val); } + /** + * Constructs a new StaticPaymentOutputDescriptor given each field + */ public static StaticPaymentOutputDescriptor constructor_new(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); StaticPaymentOutputDescriptor ret_hu_conv = new StaticPaymentOutputDescriptor(null, ret); @@ -56,6 +89,9 @@ public class StaticPaymentOutputDescriptor extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the StaticPaymentOutputDescriptor + */ public StaticPaymentOutputDescriptor clone() { long ret = bindings.StaticPaymentOutputDescriptor_clone(this.ptr); StaticPaymentOutputDescriptor ret_hu_conv = new StaticPaymentOutputDescriptor(null, ret); diff --git a/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java b/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java index 9d7c1320..87d691ce 100644 --- a/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java +++ b/src/main/java/org/ldk/structs/TrustedCommitmentTransaction.java @@ -5,6 +5,15 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * A wrapper on CommitmentTransaction indicating that the derived fields (the built bitcoin + * transaction and the transaction creation keys) are trusted. + * + * See trust() and verify() functions on CommitmentTransaction. + * + * This structure implements Deref. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class TrustedCommitmentTransaction extends CommonBase { TrustedCommitmentTransaction(Object _dummy, long ptr) { super(ptr); } @@ -14,11 +23,17 @@ public class TrustedCommitmentTransaction extends CommonBase { if (ptr != 0) { bindings.TrustedCommitmentTransaction_free(ptr); } } + /** + * The transaction ID of the built Bitcoin transaction + */ public byte[] txid() { byte[] ret = bindings.TrustedCommitmentTransaction_txid(this.ptr); return ret; } + /** + * The pre-built Bitcoin commitment transaction + */ public BuiltCommitmentTransaction built_transaction() { long ret = bindings.TrustedCommitmentTransaction_built_transaction(this.ptr); BuiltCommitmentTransaction ret_hu_conv = new BuiltCommitmentTransaction(null, ret); @@ -26,6 +41,9 @@ public class TrustedCommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * The pre-calculated transaction creation public keys. + */ public TxCreationKeys keys() { long ret = bindings.TrustedCommitmentTransaction_keys(this.ptr); TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); @@ -33,6 +51,12 @@ public class TrustedCommitmentTransaction extends CommonBase { return ret_hu_conv; } + /** + * Get a signature for each HTLC which was included in the commitment transaction (ie for + * which HTLCOutputInCommitment::transaction_output_index.is_some()). + * + * The returned Vec has one entry for each HTLC, and in the same order. + */ 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); Result_CVec_SignatureZNoneZ ret_hu_conv = Result_CVec_SignatureZNoneZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/TxCreationKeys.java b/src/main/java/org/ldk/structs/TxCreationKeys.java index f063faad..023d93ea 100644 --- a/src/main/java/org/ldk/structs/TxCreationKeys.java +++ b/src/main/java/org/ldk/structs/TxCreationKeys.java @@ -5,6 +5,20 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * The set of public keys which are used in the creation of one commitment transaction. + * These are derived from the channel base keys and per-commitment data. + * + * A broadcaster key is provided from potential broadcaster of the computed transaction. + * A countersignatory key is coming from a protocol participant unable to broadcast the + * transaction. + * + * These keys are assumed to be good, either because the code derived them from + * channel basepoints via the new function, or they were obtained via + * CommitmentTransaction.trust().keys() because we trusted the source of the + * pre-calculated keys. + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class TxCreationKeys extends CommonBase { TxCreationKeys(Object _dummy, long ptr) { super(ptr); } @@ -14,51 +28,88 @@ public class TxCreationKeys extends CommonBase { if (ptr != 0) { bindings.TxCreationKeys_free(ptr); } } + /** + * The broadcaster's per-commitment public key which was used to derive the other keys. + */ public byte[] get_per_commitment_point() { byte[] ret = bindings.TxCreationKeys_get_per_commitment_point(this.ptr); return ret; } + /** + * The broadcaster's per-commitment public key which was used to derive the other keys. + */ public void set_per_commitment_point(byte[] val) { bindings.TxCreationKeys_set_per_commitment_point(this.ptr, val); } + /** + * The revocation key which is used to allow the broadcaster of the commitment + * transaction to provide their counterparty the ability to punish them if they broadcast + * an old state. + */ public byte[] get_revocation_key() { byte[] ret = bindings.TxCreationKeys_get_revocation_key(this.ptr); return ret; } + /** + * The revocation key which is used to allow the broadcaster of the commitment + * transaction to provide their counterparty the ability to punish them if they broadcast + * an old state. + */ public void set_revocation_key(byte[] val) { bindings.TxCreationKeys_set_revocation_key(this.ptr, val); } + /** + * Broadcaster's HTLC Key + */ public byte[] get_broadcaster_htlc_key() { byte[] ret = bindings.TxCreationKeys_get_broadcaster_htlc_key(this.ptr); return ret; } + /** + * Broadcaster's HTLC Key + */ public void set_broadcaster_htlc_key(byte[] val) { bindings.TxCreationKeys_set_broadcaster_htlc_key(this.ptr, val); } + /** + * Countersignatory's HTLC Key + */ public byte[] get_countersignatory_htlc_key() { byte[] ret = bindings.TxCreationKeys_get_countersignatory_htlc_key(this.ptr); return ret; } + /** + * Countersignatory's HTLC Key + */ public void set_countersignatory_htlc_key(byte[] val) { bindings.TxCreationKeys_set_countersignatory_htlc_key(this.ptr, val); } + /** + * Broadcaster's Payment Key (which isn't allowed to be spent from for some delay) + */ public byte[] get_broadcaster_delayed_payment_key() { byte[] ret = bindings.TxCreationKeys_get_broadcaster_delayed_payment_key(this.ptr); return ret; } + /** + * Broadcaster's Payment Key (which isn't allowed to be spent from for some delay) + */ public void set_broadcaster_delayed_payment_key(byte[] val) { bindings.TxCreationKeys_set_broadcaster_delayed_payment_key(this.ptr, val); } + /** + * Constructs a new TxCreationKeys given each field + */ public static TxCreationKeys constructor_new(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); TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); @@ -66,6 +117,9 @@ public class TxCreationKeys extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the TxCreationKeys + */ public TxCreationKeys clone() { long ret = bindings.TxCreationKeys_clone(this.ptr); TxCreationKeys ret_hu_conv = new TxCreationKeys(null, ret); @@ -73,23 +127,37 @@ public class TxCreationKeys extends CommonBase { return ret_hu_conv; } + /** + * Serialize the TxCreationKeys object into a byte array which can be read by TxCreationKeys_read + */ public byte[] write() { byte[] ret = bindings.TxCreationKeys_write(this.ptr); return ret; } + /** + * Read a TxCreationKeys from a byte array, created by TxCreationKeys_write + */ public static Result_TxCreationKeysDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.TxCreationKeys_read(ser); Result_TxCreationKeysDecodeErrorZ ret_hu_conv = Result_TxCreationKeysDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Create per-state keys from channel base points and the per-commitment point. + * Key set is asymmetric and can't be used as part of counter-signatory set of transactions. + */ public static Result_TxCreationKeysErrorZ constructor_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); Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); return ret_hu_conv; } + /** + * Generate per-state keys from channel static keys. + * Key set is asymmetric and can't be used as part of counter-signatory set of transactions. + */ public static Result_TxCreationKeysErrorZ constructor_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); Result_TxCreationKeysErrorZ ret_hu_conv = Result_TxCreationKeysErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/TxOut.java b/src/main/java/org/ldk/structs/TxOut.java index b98590de..c3d2259e 100644 --- a/src/main/java/org/ldk/structs/TxOut.java +++ b/src/main/java/org/ldk/structs/TxOut.java @@ -5,7 +5,6 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; -@SuppressWarnings("unchecked") // We correctly assign various generic arrays public class TxOut extends CommonBase{ TxOut(java.lang.Object _dummy, long ptr) { super(ptr); } long to_c_ptr() { return 0; } diff --git a/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java b/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java index 3404e76f..ad0780c5 100644 --- a/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java +++ b/src/main/java/org/ldk/structs/UnsignedChannelAnnouncement.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * The unsigned part of a channel_announcement + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UnsignedChannelAnnouncement extends CommonBase { UnsignedChannelAnnouncement(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class UnsignedChannelAnnouncement extends CommonBase { if (ptr != 0) { bindings.UnsignedChannelAnnouncement_free(ptr); } } + /** + * The advertised channel features + */ public ChannelFeatures get_features() { long ret = bindings.UnsignedChannelAnnouncement_get_features(this.ptr); ChannelFeatures ret_hu_conv = new ChannelFeatures(null, ret); @@ -21,65 +28,107 @@ public class UnsignedChannelAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * The advertised channel features + */ public void set_features(ChannelFeatures val) { bindings.UnsignedChannelAnnouncement_set_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public byte[] get_chain_hash() { byte[] ret = bindings.UnsignedChannelAnnouncement_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public void set_chain_hash(byte[] val) { bindings.UnsignedChannelAnnouncement_set_chain_hash(this.ptr, val); } + /** + * The short channel ID + */ public long get_short_channel_id() { long ret = bindings.UnsignedChannelAnnouncement_get_short_channel_id(this.ptr); return ret; } + /** + * The short channel ID + */ public void set_short_channel_id(long val) { bindings.UnsignedChannelAnnouncement_set_short_channel_id(this.ptr, val); } + /** + * One of the two node_ids which are endpoints of this channel + */ public byte[] get_node_id_1() { byte[] ret = bindings.UnsignedChannelAnnouncement_get_node_id_1(this.ptr); return ret; } + /** + * One of the two node_ids which are endpoints of this channel + */ public void set_node_id_1(byte[] val) { bindings.UnsignedChannelAnnouncement_set_node_id_1(this.ptr, val); } + /** + * The other of the two node_ids which are endpoints of this channel + */ public byte[] get_node_id_2() { byte[] ret = bindings.UnsignedChannelAnnouncement_get_node_id_2(this.ptr); return ret; } + /** + * The other of the two node_ids which are endpoints of this channel + */ public void set_node_id_2(byte[] val) { bindings.UnsignedChannelAnnouncement_set_node_id_2(this.ptr, val); } + /** + * The funding key for the first node + */ public byte[] get_bitcoin_key_1() { byte[] ret = bindings.UnsignedChannelAnnouncement_get_bitcoin_key_1(this.ptr); return ret; } + /** + * The funding key for the first node + */ public void set_bitcoin_key_1(byte[] val) { bindings.UnsignedChannelAnnouncement_set_bitcoin_key_1(this.ptr, val); } + /** + * The funding key for the second node + */ public byte[] get_bitcoin_key_2() { byte[] ret = bindings.UnsignedChannelAnnouncement_get_bitcoin_key_2(this.ptr); return ret; } + /** + * The funding key for the second node + */ public void set_bitcoin_key_2(byte[] val) { bindings.UnsignedChannelAnnouncement_set_bitcoin_key_2(this.ptr, val); } + /** + * Creates a copy of the UnsignedChannelAnnouncement + */ public UnsignedChannelAnnouncement clone() { long ret = bindings.UnsignedChannelAnnouncement_clone(this.ptr); UnsignedChannelAnnouncement ret_hu_conv = new UnsignedChannelAnnouncement(null, ret); @@ -87,11 +136,17 @@ public class UnsignedChannelAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UnsignedChannelAnnouncement object into a byte array which can be read by UnsignedChannelAnnouncement_read + */ public byte[] write() { byte[] ret = bindings.UnsignedChannelAnnouncement_write(this.ptr); return ret; } + /** + * Read a UnsignedChannelAnnouncement from a byte array, created by UnsignedChannelAnnouncement_write + */ public static Result_UnsignedChannelAnnouncementDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UnsignedChannelAnnouncement_read(ser); Result_UnsignedChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java b/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java index 47a7687f..9f50b5c6 100644 --- a/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java +++ b/src/main/java/org/ldk/structs/UnsignedChannelUpdate.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * The unsigned part of a channel_update + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UnsignedChannelUpdate extends CommonBase { UnsignedChannelUpdate(Object _dummy, long ptr) { super(ptr); } @@ -14,78 +18,129 @@ public class UnsignedChannelUpdate extends CommonBase { if (ptr != 0) { bindings.UnsignedChannelUpdate_free(ptr); } } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public byte[] get_chain_hash() { byte[] ret = bindings.UnsignedChannelUpdate_get_chain_hash(this.ptr); return ret; } + /** + * The genesis hash of the blockchain where the channel is to be opened + */ public void set_chain_hash(byte[] val) { bindings.UnsignedChannelUpdate_set_chain_hash(this.ptr, val); } + /** + * The short channel ID + */ public long get_short_channel_id() { long ret = bindings.UnsignedChannelUpdate_get_short_channel_id(this.ptr); return ret; } + /** + * The short channel ID + */ public void set_short_channel_id(long val) { bindings.UnsignedChannelUpdate_set_short_channel_id(this.ptr, val); } + /** + * A strictly monotonic announcement counter, with gaps allowed, specific to this channel + */ public int get_timestamp() { int ret = bindings.UnsignedChannelUpdate_get_timestamp(this.ptr); return ret; } + /** + * A strictly monotonic announcement counter, with gaps allowed, specific to this channel + */ public void set_timestamp(int val) { bindings.UnsignedChannelUpdate_set_timestamp(this.ptr, val); } + /** + * Channel flags + */ public byte get_flags() { byte ret = bindings.UnsignedChannelUpdate_get_flags(this.ptr); return ret; } + /** + * Channel flags + */ public void set_flags(byte val) { bindings.UnsignedChannelUpdate_set_flags(this.ptr, val); } + /** + * The number of blocks to subtract from incoming HTLC cltv_expiry values + */ public short get_cltv_expiry_delta() { short ret = bindings.UnsignedChannelUpdate_get_cltv_expiry_delta(this.ptr); return ret; } + /** + * The number of blocks to subtract from incoming HTLC cltv_expiry values + */ public void set_cltv_expiry_delta(short val) { bindings.UnsignedChannelUpdate_set_cltv_expiry_delta(this.ptr, val); } + /** + * The minimum HTLC size incoming to sender, in milli-satoshi + */ public long get_htlc_minimum_msat() { long ret = bindings.UnsignedChannelUpdate_get_htlc_minimum_msat(this.ptr); return ret; } + /** + * The minimum HTLC size incoming to sender, in milli-satoshi + */ public void set_htlc_minimum_msat(long val) { bindings.UnsignedChannelUpdate_set_htlc_minimum_msat(this.ptr, val); } + /** + * The base HTLC fee charged by sender, in milli-satoshi + */ public int get_fee_base_msat() { int ret = bindings.UnsignedChannelUpdate_get_fee_base_msat(this.ptr); return ret; } + /** + * The base HTLC fee charged by sender, in milli-satoshi + */ public void set_fee_base_msat(int val) { bindings.UnsignedChannelUpdate_set_fee_base_msat(this.ptr, val); } + /** + * The amount to fee multiplier, in micro-satoshi + */ public int get_fee_proportional_millionths() { int ret = bindings.UnsignedChannelUpdate_get_fee_proportional_millionths(this.ptr); return ret; } + /** + * The amount to fee multiplier, in micro-satoshi + */ public void set_fee_proportional_millionths(int val) { bindings.UnsignedChannelUpdate_set_fee_proportional_millionths(this.ptr, val); } + /** + * Creates a copy of the UnsignedChannelUpdate + */ public UnsignedChannelUpdate clone() { long ret = bindings.UnsignedChannelUpdate_clone(this.ptr); UnsignedChannelUpdate ret_hu_conv = new UnsignedChannelUpdate(null, ret); @@ -93,11 +148,17 @@ public class UnsignedChannelUpdate extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UnsignedChannelUpdate object into a byte array which can be read by UnsignedChannelUpdate_read + */ public byte[] write() { byte[] ret = bindings.UnsignedChannelUpdate_write(this.ptr); return ret; } + /** + * Read a UnsignedChannelUpdate from a byte array, created by UnsignedChannelUpdate_write + */ public static Result_UnsignedChannelUpdateDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UnsignedChannelUpdate_read(ser); Result_UnsignedChannelUpdateDecodeErrorZ ret_hu_conv = Result_UnsignedChannelUpdateDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java b/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java index 606b202d..27e4dac7 100644 --- a/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java +++ b/src/main/java/org/ldk/structs/UnsignedNodeAnnouncement.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * The unsigned part of a node_announcement + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UnsignedNodeAnnouncement extends CommonBase { UnsignedNodeAnnouncement(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +18,9 @@ public class UnsignedNodeAnnouncement extends CommonBase { if (ptr != 0) { bindings.UnsignedNodeAnnouncement_free(ptr); } } + /** + * The advertised features + */ public NodeFeatures get_features() { long ret = bindings.UnsignedNodeAnnouncement_get_features(this.ptr); NodeFeatures ret_hu_conv = new NodeFeatures(null, ret); @@ -21,52 +28,89 @@ public class UnsignedNodeAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * The advertised features + */ public void set_features(NodeFeatures val) { bindings.UnsignedNodeAnnouncement_set_features(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * A strictly monotonic announcement counter, with gaps allowed + */ public int get_timestamp() { int ret = bindings.UnsignedNodeAnnouncement_get_timestamp(this.ptr); return ret; } + /** + * A strictly monotonic announcement counter, with gaps allowed + */ public void set_timestamp(int val) { bindings.UnsignedNodeAnnouncement_set_timestamp(this.ptr, val); } + /** + * The node_id this announcement originated from (don't rebroadcast the node_announcement back + * to this node). + */ public byte[] get_node_id() { byte[] ret = bindings.UnsignedNodeAnnouncement_get_node_id(this.ptr); return ret; } + /** + * The node_id this announcement originated from (don't rebroadcast the node_announcement back + * to this node). + */ public void set_node_id(byte[] val) { bindings.UnsignedNodeAnnouncement_set_node_id(this.ptr, val); } + /** + * An RGB color for UI purposes + */ public byte[] get_rgb() { byte[] ret = bindings.UnsignedNodeAnnouncement_get_rgb(this.ptr); return ret; } + /** + * An RGB color for UI purposes + */ public void set_rgb(byte[] val) { bindings.UnsignedNodeAnnouncement_set_rgb(this.ptr, val); } + /** + * An alias, for UI purposes. This should be sanitized before use. There is no guarantee + * of uniqueness. + */ public byte[] get_alias() { byte[] ret = bindings.UnsignedNodeAnnouncement_get_alias(this.ptr); return ret; } + /** + * An alias, for UI purposes. This should be sanitized before use. There is no guarantee + * of uniqueness. + */ public void set_alias(byte[] val) { bindings.UnsignedNodeAnnouncement_set_alias(this.ptr, val); } + /** + * List of addresses on which this node is reachable + */ public void set_addresses(NetAddress[] val) { bindings.UnsignedNodeAnnouncement_set_addresses(this.ptr, Arrays.stream(val).mapToLong(val_conv_12 -> val_conv_12.ptr).toArray()); /* TODO 2 NetAddress */; } + /** + * Creates a copy of the UnsignedNodeAnnouncement + */ public UnsignedNodeAnnouncement clone() { long ret = bindings.UnsignedNodeAnnouncement_clone(this.ptr); UnsignedNodeAnnouncement ret_hu_conv = new UnsignedNodeAnnouncement(null, ret); @@ -74,11 +118,17 @@ public class UnsignedNodeAnnouncement extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UnsignedNodeAnnouncement object into a byte array which can be read by UnsignedNodeAnnouncement_read + */ public byte[] write() { byte[] ret = bindings.UnsignedNodeAnnouncement_write(this.ptr); return ret; } + /** + * Read a UnsignedNodeAnnouncement from a byte array, created by UnsignedNodeAnnouncement_write + */ public static Result_UnsignedNodeAnnouncementDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UnsignedNodeAnnouncement_read(ser); Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UpdateAddHTLC.java b/src/main/java/org/ldk/structs/UpdateAddHTLC.java index 6e4afd24..fd3b2aca 100644 --- a/src/main/java/org/ldk/structs/UpdateAddHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateAddHTLC.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update_add_htlc message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UpdateAddHTLC extends CommonBase { UpdateAddHTLC(Object _dummy, long ptr) { super(ptr); } @@ -14,51 +18,84 @@ public class UpdateAddHTLC extends CommonBase { if (ptr != 0) { bindings.UpdateAddHTLC_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.UpdateAddHTLC_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.UpdateAddHTLC_set_channel_id(this.ptr, val); } + /** + * The HTLC ID + */ public long get_htlc_id() { long ret = bindings.UpdateAddHTLC_get_htlc_id(this.ptr); return ret; } + /** + * The HTLC ID + */ public void set_htlc_id(long val) { bindings.UpdateAddHTLC_set_htlc_id(this.ptr, val); } + /** + * The HTLC value in milli-satoshi + */ public long get_amount_msat() { long ret = bindings.UpdateAddHTLC_get_amount_msat(this.ptr); return ret; } + /** + * The HTLC value in milli-satoshi + */ public void set_amount_msat(long val) { bindings.UpdateAddHTLC_set_amount_msat(this.ptr, val); } + /** + * The payment hash, the pre-image of which controls HTLC redemption + */ public byte[] get_payment_hash() { byte[] ret = bindings.UpdateAddHTLC_get_payment_hash(this.ptr); return ret; } + /** + * The payment hash, the pre-image of which controls HTLC redemption + */ public void set_payment_hash(byte[] val) { bindings.UpdateAddHTLC_set_payment_hash(this.ptr, val); } + /** + * The expiry height of the HTLC + */ public int get_cltv_expiry() { int ret = bindings.UpdateAddHTLC_get_cltv_expiry(this.ptr); return ret; } + /** + * The expiry height of the HTLC + */ public void set_cltv_expiry(int val) { bindings.UpdateAddHTLC_set_cltv_expiry(this.ptr, val); } + /** + * Creates a copy of the UpdateAddHTLC + */ public UpdateAddHTLC clone() { long ret = bindings.UpdateAddHTLC_clone(this.ptr); UpdateAddHTLC ret_hu_conv = new UpdateAddHTLC(null, ret); @@ -66,11 +103,17 @@ public class UpdateAddHTLC extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UpdateAddHTLC object into a byte array which can be read by UpdateAddHTLC_read + */ public byte[] write() { byte[] ret = bindings.UpdateAddHTLC_write(this.ptr); return ret; } + /** + * Read a UpdateAddHTLC from a byte array, created by UpdateAddHTLC_write + */ public static Result_UpdateAddHTLCDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UpdateAddHTLC_read(ser); Result_UpdateAddHTLCDecodeErrorZ ret_hu_conv = Result_UpdateAddHTLCDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UpdateFailHTLC.java b/src/main/java/org/ldk/structs/UpdateFailHTLC.java index 35566615..f558b4f9 100644 --- a/src/main/java/org/ldk/structs/UpdateFailHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFailHTLC.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update_fail_htlc message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UpdateFailHTLC extends CommonBase { UpdateFailHTLC(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,39 @@ public class UpdateFailHTLC extends CommonBase { if (ptr != 0) { bindings.UpdateFailHTLC_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.UpdateFailHTLC_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.UpdateFailHTLC_set_channel_id(this.ptr, val); } + /** + * The HTLC ID + */ public long get_htlc_id() { long ret = bindings.UpdateFailHTLC_get_htlc_id(this.ptr); return ret; } + /** + * The HTLC ID + */ public void set_htlc_id(long val) { bindings.UpdateFailHTLC_set_htlc_id(this.ptr, val); } + /** + * Creates a copy of the UpdateFailHTLC + */ public UpdateFailHTLC clone() { long ret = bindings.UpdateFailHTLC_clone(this.ptr); UpdateFailHTLC ret_hu_conv = new UpdateFailHTLC(null, ret); @@ -39,11 +58,17 @@ public class UpdateFailHTLC extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UpdateFailHTLC object into a byte array which can be read by UpdateFailHTLC_read + */ public byte[] write() { byte[] ret = bindings.UpdateFailHTLC_write(this.ptr); return ret; } + /** + * Read a UpdateFailHTLC from a byte array, created by UpdateFailHTLC_write + */ public static Result_UpdateFailHTLCDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UpdateFailHTLC_read(ser); Result_UpdateFailHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailHTLCDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java b/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java index 0b28fc68..b56ebc84 100644 --- a/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFailMalformedHTLC.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update_fail_malformed_htlc message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UpdateFailMalformedHTLC extends CommonBase { UpdateFailMalformedHTLC(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +18,54 @@ public class UpdateFailMalformedHTLC extends CommonBase { if (ptr != 0) { bindings.UpdateFailMalformedHTLC_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.UpdateFailMalformedHTLC_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.UpdateFailMalformedHTLC_set_channel_id(this.ptr, val); } + /** + * The HTLC ID + */ public long get_htlc_id() { long ret = bindings.UpdateFailMalformedHTLC_get_htlc_id(this.ptr); return ret; } + /** + * The HTLC ID + */ public void set_htlc_id(long val) { bindings.UpdateFailMalformedHTLC_set_htlc_id(this.ptr, val); } + /** + * The failure code + */ public short get_failure_code() { short ret = bindings.UpdateFailMalformedHTLC_get_failure_code(this.ptr); return ret; } + /** + * The failure code + */ public void set_failure_code(short val) { bindings.UpdateFailMalformedHTLC_set_failure_code(this.ptr, val); } + /** + * Creates a copy of the UpdateFailMalformedHTLC + */ public UpdateFailMalformedHTLC clone() { long ret = bindings.UpdateFailMalformedHTLC_clone(this.ptr); UpdateFailMalformedHTLC ret_hu_conv = new UpdateFailMalformedHTLC(null, ret); @@ -48,11 +73,17 @@ public class UpdateFailMalformedHTLC extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UpdateFailMalformedHTLC object into a byte array which can be read by UpdateFailMalformedHTLC_read + */ public byte[] write() { byte[] ret = bindings.UpdateFailMalformedHTLC_write(this.ptr); return ret; } + /** + * Read a UpdateFailMalformedHTLC from a byte array, created by UpdateFailMalformedHTLC_write + */ public static Result_UpdateFailMalformedHTLCDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UpdateFailMalformedHTLC_read(ser); Result_UpdateFailMalformedHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFailMalformedHTLCDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UpdateFee.java b/src/main/java/org/ldk/structs/UpdateFee.java index fa186fb4..0edfefcf 100644 --- a/src/main/java/org/ldk/structs/UpdateFee.java +++ b/src/main/java/org/ldk/structs/UpdateFee.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update_fee message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UpdateFee extends CommonBase { UpdateFee(Object _dummy, long ptr) { super(ptr); } @@ -14,24 +18,39 @@ public class UpdateFee extends CommonBase { if (ptr != 0) { bindings.UpdateFee_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.UpdateFee_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.UpdateFee_set_channel_id(this.ptr, val); } + /** + * Fee rate per 1000-weight of the transaction + */ public int get_feerate_per_kw() { int ret = bindings.UpdateFee_get_feerate_per_kw(this.ptr); return ret; } + /** + * Fee rate per 1000-weight of the transaction + */ public void set_feerate_per_kw(int val) { bindings.UpdateFee_set_feerate_per_kw(this.ptr, val); } + /** + * Constructs a new UpdateFee given each field + */ public static UpdateFee constructor_new(byte[] channel_id_arg, int feerate_per_kw_arg) { long ret = bindings.UpdateFee_new(channel_id_arg, feerate_per_kw_arg); UpdateFee ret_hu_conv = new UpdateFee(null, ret); @@ -39,6 +58,9 @@ public class UpdateFee extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the UpdateFee + */ public UpdateFee clone() { long ret = bindings.UpdateFee_clone(this.ptr); UpdateFee ret_hu_conv = new UpdateFee(null, ret); @@ -46,11 +68,17 @@ public class UpdateFee extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UpdateFee object into a byte array which can be read by UpdateFee_read + */ public byte[] write() { byte[] ret = bindings.UpdateFee_write(this.ptr); return ret; } + /** + * Read a UpdateFee from a byte array, created by UpdateFee_write + */ public static Result_UpdateFeeDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UpdateFee_read(ser); Result_UpdateFeeDecodeErrorZ ret_hu_conv = Result_UpdateFeeDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java b/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java index 966392bd..b1b690c2 100644 --- a/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java +++ b/src/main/java/org/ldk/structs/UpdateFulfillHTLC.java @@ -5,6 +5,10 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * An update_fulfill_htlc message to be sent or received from a peer + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UpdateFulfillHTLC extends CommonBase { UpdateFulfillHTLC(Object _dummy, long ptr) { super(ptr); } @@ -14,33 +18,54 @@ public class UpdateFulfillHTLC extends CommonBase { if (ptr != 0) { bindings.UpdateFulfillHTLC_free(ptr); } } + /** + * The channel ID + */ public byte[] get_channel_id() { byte[] ret = bindings.UpdateFulfillHTLC_get_channel_id(this.ptr); return ret; } + /** + * The channel ID + */ public void set_channel_id(byte[] val) { bindings.UpdateFulfillHTLC_set_channel_id(this.ptr, val); } + /** + * The HTLC ID + */ public long get_htlc_id() { long ret = bindings.UpdateFulfillHTLC_get_htlc_id(this.ptr); return ret; } + /** + * The HTLC ID + */ public void set_htlc_id(long val) { bindings.UpdateFulfillHTLC_set_htlc_id(this.ptr, val); } + /** + * The pre-image of the payment hash, allowing HTLC redemption + */ public byte[] get_payment_preimage() { byte[] ret = bindings.UpdateFulfillHTLC_get_payment_preimage(this.ptr); return ret; } + /** + * The pre-image of the payment hash, allowing HTLC redemption + */ public void set_payment_preimage(byte[] val) { bindings.UpdateFulfillHTLC_set_payment_preimage(this.ptr, val); } + /** + * Constructs a new UpdateFulfillHTLC given each field + */ public static UpdateFulfillHTLC constructor_new(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); UpdateFulfillHTLC ret_hu_conv = new UpdateFulfillHTLC(null, ret); @@ -48,6 +73,9 @@ public class UpdateFulfillHTLC extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the UpdateFulfillHTLC + */ public UpdateFulfillHTLC clone() { long ret = bindings.UpdateFulfillHTLC_clone(this.ptr); UpdateFulfillHTLC ret_hu_conv = new UpdateFulfillHTLC(null, ret); @@ -55,11 +83,17 @@ public class UpdateFulfillHTLC extends CommonBase { return ret_hu_conv; } + /** + * Serialize the UpdateFulfillHTLC object into a byte array which can be read by UpdateFulfillHTLC_read + */ public byte[] write() { byte[] ret = bindings.UpdateFulfillHTLC_write(this.ptr); return ret; } + /** + * Read a UpdateFulfillHTLC from a byte array, created by UpdateFulfillHTLC_write + */ public static Result_UpdateFulfillHTLCDecodeErrorZ constructor_read(byte[] ser) { long ret = bindings.UpdateFulfillHTLC_read(ser); Result_UpdateFulfillHTLCDecodeErrorZ ret_hu_conv = Result_UpdateFulfillHTLCDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/UserConfig.java b/src/main/java/org/ldk/structs/UserConfig.java index 5629008e..7bf96f59 100644 --- a/src/main/java/org/ldk/structs/UserConfig.java +++ b/src/main/java/org/ldk/structs/UserConfig.java @@ -5,6 +5,13 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; + +/** + * Top-level config which holds ChannelHandshakeLimits and ChannelConfig. + * + * Default::default() provides sane defaults for most configurations + * (but currently with 0 relay fees!) + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class UserConfig extends CommonBase { UserConfig(Object _dummy, long ptr) { super(ptr); } @@ -14,6 +21,9 @@ public class UserConfig extends CommonBase { if (ptr != 0) { bindings.UserConfig_free(ptr); } } + /** + * Channel config that we propose to our counterparty. + */ public ChannelHandshakeConfig get_own_channel_config() { long ret = bindings.UserConfig_get_own_channel_config(this.ptr); ChannelHandshakeConfig ret_hu_conv = new ChannelHandshakeConfig(null, ret); @@ -21,11 +31,17 @@ public class UserConfig extends CommonBase { return ret_hu_conv; } + /** + * Channel config that we propose to our counterparty. + */ public void set_own_channel_config(ChannelHandshakeConfig val) { bindings.UserConfig_set_own_channel_config(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Limits applied to our counterparty's proposed channel config settings. + */ public ChannelHandshakeLimits get_peer_channel_config_limits() { long ret = bindings.UserConfig_get_peer_channel_config_limits(this.ptr); ChannelHandshakeLimits ret_hu_conv = new ChannelHandshakeLimits(null, ret); @@ -33,11 +49,17 @@ public class UserConfig extends CommonBase { return ret_hu_conv; } + /** + * Limits applied to our counterparty's proposed channel config settings. + */ public void set_peer_channel_config_limits(ChannelHandshakeLimits val) { bindings.UserConfig_set_peer_channel_config_limits(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Channel config which affects behavior during channel lifetime. + */ public ChannelConfig get_channel_options() { long ret = bindings.UserConfig_get_channel_options(this.ptr); ChannelConfig ret_hu_conv = new ChannelConfig(null, ret); @@ -45,11 +67,17 @@ public class UserConfig extends CommonBase { return ret_hu_conv; } + /** + * Channel config which affects behavior during channel lifetime. + */ public void set_channel_options(ChannelConfig val) { bindings.UserConfig_set_channel_options(this.ptr, val == null ? 0 : val.ptr & ~1); this.ptrs_to.add(val); } + /** + * Constructs a new UserConfig given each field + */ public static UserConfig constructor_new(ChannelHandshakeConfig own_channel_config_arg, ChannelHandshakeLimits peer_channel_config_limits_arg, ChannelConfig channel_options_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); UserConfig ret_hu_conv = new UserConfig(null, ret); @@ -60,6 +88,9 @@ public class UserConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a copy of the UserConfig + */ public UserConfig clone() { long ret = bindings.UserConfig_clone(this.ptr); UserConfig ret_hu_conv = new UserConfig(null, ret); @@ -67,6 +98,9 @@ public class UserConfig extends CommonBase { return ret_hu_conv; } + /** + * Creates a "default" UserConfig. See other documentaiton for details on what this implies. + */ public static UserConfig constructor_default() { long ret = bindings.UserConfig_default(); UserConfig ret_hu_conv = new UserConfig(null, ret); diff --git a/src/main/java/org/ldk/structs/UtilMethods.java b/src/main/java/org/ldk/structs/UtilMethods.java index 3a1bcbfe..2d80e29b 100644 --- a/src/main/java/org/ldk/structs/UtilMethods.java +++ b/src/main/java/org/ldk/structs/UtilMethods.java @@ -3,6 +3,9 @@ import org.ldk.impl.bindings; import java.util.Arrays; public class UtilMethods { + /** + * Read a C2Tuple_BlockHashChannelMonitorZ from a byte array, created by C2Tuple_BlockHashChannelMonitorZ_write + */ public static Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ constructor_BlockHashChannelMonitorZ_read(byte[] ser, KeysInterface arg) { long ret = bindings.C2Tuple_BlockHashChannelMonitorZ_read(ser, arg == null ? 0 : arg.ptr); Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ.constr_from_ptr(ret); @@ -10,6 +13,9 @@ public class UtilMethods { return ret_hu_conv; } + /** + * Read a C2Tuple_BlockHashChannelManagerZ from a byte array, created by C2Tuple_BlockHashChannelManagerZ_write + */ public static Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ constructor_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())); Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ ret_hu_conv = Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.constr_from_ptr(ret); diff --git a/src/main/java/org/ldk/structs/Watch.java b/src/main/java/org/ldk/structs/Watch.java index c9b156fb..85602ac8 100644 --- a/src/main/java/org/ldk/structs/Watch.java +++ b/src/main/java/org/ldk/structs/Watch.java @@ -5,6 +5,29 @@ import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +/** + * The `Watch` trait defines behavior for watching on-chain activity pertaining to channels as + * blocks are connected and disconnected. + * + * Each channel is associated with a [`ChannelMonitor`]. Implementations of this trait are + * responsible for maintaining a set of monitors such that they can be updated accordingly as + * channel state changes and HTLCs are resolved. See method documentation for specific + * requirements. + * + * Implementations **must** ensure that updates are successfully applied and persisted upon method + * completion. If an update fails with a [`PermanentFailure`], then it must immediately shut down + * without taking any further action such as persisting the current state. + * + * If an implementation maintains multiple instances of a channel's monitor (e.g., by storing + * backup copies), then it must ensure that updates are applied across all instances. Otherwise, it + * could result in a revoked transaction being broadcast, allowing the counterparty to claim all + * funds in the channel. See [`ChannelMonitorUpdateErr`] for more details about how to handle + * multiple instances. + * + * [`ChannelMonitor`]: channelmonitor/struct.ChannelMonitor.html + * [`ChannelMonitorUpdateErr`]: channelmonitor/enum.ChannelMonitorUpdateErr.html + * [`PermanentFailure`]: channelmonitor/enum.ChannelMonitorUpdateErr.html#variant.PermanentFailure + */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Watch extends CommonBase { final bindings.LDKWatch bindings_instance; @@ -20,8 +43,32 @@ public class Watch extends CommonBase { } public static interface WatchInterface { + /** + * Watches a channel identified by `funding_txo` using `monitor`. + * + * Implementations are responsible for watching the chain for the funding transaction along + * with any spends of outputs returned by [`get_outputs_to_watch`]. In practice, this means + * calling [`block_connected`] and [`block_disconnected`] on the monitor. + * + * [`get_outputs_to_watch`]: channelmonitor/struct.ChannelMonitor.html#method.get_outputs_to_watch + * [`block_connected`]: channelmonitor/struct.ChannelMonitor.html#method.block_connected + * [`block_disconnected`]: channelmonitor/struct.ChannelMonitor.html#method.block_disconnected + */ Result_NoneChannelMonitorUpdateErrZ watch_channel(OutPoint funding_txo, ChannelMonitor monitor); + /** + * Updates a channel identified by `funding_txo` by applying `update` to its monitor. + * + * Implementations must call [`update_monitor`] with the given update. See + * [`ChannelMonitorUpdateErr`] for invariants around returning an error. + * + * [`update_monitor`]: channelmonitor/struct.ChannelMonitor.html#method.update_monitor + * [`ChannelMonitorUpdateErr`]: channelmonitor/enum.ChannelMonitorUpdateErr.html + */ Result_NoneChannelMonitorUpdateErrZ update_channel(OutPoint funding_txo, ChannelMonitorUpdate update); + /** + * Returns any monitor events since the last call. Subsequent calls must only return new + * events. + */ MonitorEvent[] release_pending_monitor_events(); } private static class LDKWatchHolder { Watch held; } @@ -55,6 +102,17 @@ public class Watch extends CommonBase { }); return impl_holder.held; } + /** + * Watches a channel identified by `funding_txo` using `monitor`. + * + * Implementations are responsible for watching the chain for the funding transaction along + * with any spends of outputs returned by [`get_outputs_to_watch`]. In practice, this means + * calling [`block_connected`] and [`block_disconnected`] on the monitor. + * + * [`get_outputs_to_watch`]: channelmonitor/struct.ChannelMonitor.html#method.get_outputs_to_watch + * [`block_connected`]: channelmonitor/struct.ChannelMonitor.html#method.block_connected + * [`block_disconnected`]: channelmonitor/struct.ChannelMonitor.html#method.block_disconnected + */ 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); Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); @@ -63,6 +121,15 @@ public class Watch extends CommonBase { return ret_hu_conv; } + /** + * Updates a channel identified by `funding_txo` by applying `update` to its monitor. + * + * Implementations must call [`update_monitor`] with the given update. See + * [`ChannelMonitorUpdateErr`] for invariants around returning an error. + * + * [`update_monitor`]: channelmonitor/struct.ChannelMonitor.html#method.update_monitor + * [`ChannelMonitorUpdateErr`]: channelmonitor/enum.ChannelMonitorUpdateErr.html + */ 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); Result_NoneChannelMonitorUpdateErrZ ret_hu_conv = Result_NoneChannelMonitorUpdateErrZ.constr_from_ptr(ret); @@ -71,6 +138,10 @@ public class Watch extends CommonBase { return ret_hu_conv; } + /** + * Returns any monitor events since the last call. Subsequent calls must only return new + * events. + */ public MonitorEvent[] release_pending_monitor_events() { long[] ret = bindings.Watch_release_pending_monitor_events(this.ptr); MonitorEvent[] ret_conv_14_arr = new MonitorEvent[ret.length]; diff --git a/src/main/jni/bindings.c b/src/main/jni/bindings.c index c00a6981..5c05a422 100644 --- a/src/main/jni/bindings.c +++ b/src/main/jni/bindings.c @@ -1958,6 +1958,111 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1OutPointScr (*env)->SetByteArrayRegion(env, b_arr, 0, b_var.datalen, b_var.data); return b_arr; } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1new(JNIEnv *env, jclass clz, int32_t a, int8_tArray b) { + LDKC2Tuple_u32ScriptZ* ret = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + ret->a = a; + LDKCVec_u8Z b_ref; + b_ref.datalen = (*env)->GetArrayLength(env, b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + (*env)->GetByteArrayRegion(env, b, 0, b_ref.datalen, b_ref.data); + ret->b = b_ref; + return (long)ret; +} +JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1get_1a(JNIEnv *env, jclass clz, int64_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + return tuple->a; +} +JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1get_1b(JNIEnv *env, jclass clz, int64_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + LDKCVec_u8Z b_var = tuple->b; + int8_tArray b_arr = (*env)->NewByteArray(env, b_var.datalen); + (*env)->SetByteArrayRegion(env, b_arr, 0, b_var.datalen, b_var.data); + return b_arr; +} +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCVec_1C2Tuple_1u32ScriptZZ_1new(JNIEnv *env, jclass clz, int64_tArray elems) { + LDKCVec_C2Tuple_u32ScriptZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_u32ScriptZZ), "LDKCVec_C2Tuple_u32ScriptZZ"); + ret->datalen = (*env)->GetArrayLength(env, elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * ret->datalen, "LDKCVec_C2Tuple_u32ScriptZZ Data"); + int64_t *java_elems = (*env)->GetPrimitiveArrayCritical(env, elems, NULL); + for (size_t i = 0; i < ret->datalen; i++) { + int64_t arr_elem = java_elems[i]; + LDKC2Tuple_u32ScriptZ arr_elem_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)arr_elem) & ~1); + FREE((void*)arr_elem); + ret->data[i] = arr_elem_conv; + } + (*env)->ReleasePrimitiveArrayCritical(env, elems, java_elems, 0); + } + return (long)ret; +} +static inline LDKCVec_C2Tuple_u32ScriptZZ CVec_C2Tuple_u32ScriptZZ_clone(const LDKCVec_C2Tuple_u32ScriptZZ *orig) { + LDKCVec_C2Tuple_u32ScriptZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * orig->datalen, "LDKCVec_C2Tuple_u32ScriptZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_u32ScriptZ_clone(&orig->data[i]); + } + return ret; +} +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1new(JNIEnv *env, jclass clz, int8_tArray a, int64_tArray b) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + LDKThirtyTwoBytes a_ref; + CHECK((*env)->GetArrayLength(env, a) == 32); + (*env)->GetByteArrayRegion(env, a, 0, 32, a_ref.data); + ret->a = a_ref; + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = (*env)->GetArrayLength(env, b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + int64_t* b_vals = (*env)->GetLongArrayElements (env, b, NULL); + for (size_t b = 0; b < b_constr.datalen; b++) { + int64_t b_conv_27 = b_vals[b]; + LDKC2Tuple_u32ScriptZ b_conv_27_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_27) & ~1); + FREE((void*)b_conv_27); + b_constr.data[b] = b_conv_27_conv; + } + (*env)->ReleaseLongArrayElements(env, b, b_vals, 0); + ret->b = b_constr; + return (long)ret; +} +JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1get_1a(JNIEnv *env, jclass clz, int64_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + int8_tArray a_arr = (*env)->NewByteArray(env, 32); + (*env)->SetByteArrayRegion(env, a_arr, 0, 32, tuple->a.data); + return a_arr; +} +JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1get_1b(JNIEnv *env, jclass clz, int64_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + LDKCVec_C2Tuple_u32ScriptZZ b_var = tuple->b; + int64_tArray b_arr = (*env)->NewLongArray(env, b_var.datalen); + int64_t *b_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, b_arr, NULL); + for (size_t b = 0; b < b_var.datalen; b++) { + long b_conv_27_ref = (long)(&b_var.data[b]) | 1; + b_arr_ptr[b] = b_conv_27_ref; + } + (*env)->ReleasePrimitiveArrayCritical(env, b_arr, b_arr_ptr, 0); + return b_arr; +} +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKCVec_1C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZZ_1new(JNIEnv *env, jclass clz, int64_tArray elems) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ"); + ret->datalen = (*env)->GetArrayLength(env, elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ) * ret->datalen, "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Data"); + int64_t *java_elems = (*env)->GetPrimitiveArrayCritical(env, elems, NULL); + for (size_t i = 0; i < ret->datalen; i++) { + int64_t arr_elem = java_elems[i]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ arr_elem_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)arr_elem) & ~1); + FREE((void*)arr_elem); + ret->data[i] = arr_elem_conv; + } + (*env)->ReleasePrimitiveArrayCritical(env, elems, java_elems, 0); + } + return (long)ret; +} JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32TxOutZ_1new(JNIEnv *env, jclass clz, int32_t a, int64_t b) { LDKC2Tuple_u32TxOutZ* ret = MALLOC(sizeof(LDKC2Tuple_u32TxOutZ), "LDKC2Tuple_u32TxOutZ"); ret->a = a; @@ -2406,28 +2511,28 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSign_1new(JNIEnv *env, j return (long)res_ptr; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1get_1per_1commitment_1point(JNIEnv *env, jclass clz, int64_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 33); (*env)->SetByteArrayRegion(env, ret_arr, 0, 33, (this_arg_conv->get_per_commitment_point)(this_arg_conv->this_arg, idx).compressed_form); return ret_arr; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1release_1commitment_1secret(JNIEnv *env, jclass clz, int64_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, ret_arr, 0, 32, (this_arg_conv->release_commitment_secret)(this_arg_conv->this_arg, idx).data); return ret_arr; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1channel_1keys_1id(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, ret_arr, 0, 32, (this_arg_conv->channel_keys_id)(this_arg_conv->this_arg).data); return ret_arr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1counterparty_1commitment(JNIEnv *env, jclass clz, int64_t this_arg, int64_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -2437,7 +2542,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1counterparty_1c } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1holder_1commitment_1and_1htlcs(JNIEnv *env, jclass clz, int64_t this_arg, int64_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKHolderCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -2447,7 +2552,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1holder_1commitm } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1justice_1transaction(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray justice_tx, int64_t input, int64_t amount, int8_tArray per_commitment_key, int64_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction justice_tx_ref; justice_tx_ref.datalen = (*env)->GetArrayLength(env, justice_tx); justice_tx_ref.data = MALLOC(justice_tx_ref.datalen, "LDKTransaction Bytes"); @@ -2466,7 +2571,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1justice_1transa } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1counterparty_1htlc_1transaction(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray htlc_tx, int64_t input, int64_t amount, int8_tArray per_commitment_point, int64_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction htlc_tx_ref; htlc_tx_ref.datalen = (*env)->GetArrayLength(env, htlc_tx); htlc_tx_ref.data = MALLOC(htlc_tx_ref.datalen, "LDKTransaction Bytes"); @@ -2484,7 +2589,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1counterparty_1h } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1closing_1transaction(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray closing_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction closing_tx_ref; closing_tx_ref.datalen = (*env)->GetArrayLength(env, closing_tx); closing_tx_ref.data = MALLOC(closing_tx_ref.datalen, "LDKTransaction Bytes"); @@ -2496,7 +2601,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1closing_1transa } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1channel_1announcement(JNIEnv *env, jclass clz, int64_t this_arg, int64_t msg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -2506,7 +2611,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1sign_1channel_1announ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Sign_1ready_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int64_t channel_parameters) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelTransactionParameters channel_parameters_conv; channel_parameters_conv.inner = (void*)(channel_parameters & (~1)); channel_parameters_conv.is_owned = false; @@ -2514,7 +2619,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Sign_1ready_1channel(JNIEnv *e } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Sign_1write(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->write)(this_arg_conv->this_arg); int8_tArray ret_arr = (*env)->NewByteArray(env, ret_var.datalen); (*env)->SetByteArrayRegion(env, ret_arr, 0, ret_var.datalen, ret_var.data); @@ -2528,7 +2633,7 @@ LDKChannelPublicKeys LDKSign_set_get_pubkeys(LDKSign* this_arg) { return this_arg->pubkeys; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1get_1pubkeys(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelPublicKeys ret_var = LDKSign_set_get_pubkeys(this_arg_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. @@ -2972,7 +3077,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKWatch_1new(JNIEnv *env, return (long)res_ptr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Watch_1watch_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int64_t funding_txo, int64_t monitor) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -2987,7 +3092,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Watch_1watch_1channel(JNIEn } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Watch_1update_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int64_t funding_txo, int64_t update) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -3002,7 +3107,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Watch_1update_1channel(JNIE } JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_Watch_1release_1pending_1monitor_1events(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKCVec_MonitorEventZ ret_var = (this_arg_conv->release_pending_monitor_events)(this_arg_conv->this_arg); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); int64_t *ret_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, ret_arr, NULL); @@ -3072,7 +3177,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKBroadcasterInterface_1ne return (long)res_ptr; } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_BroadcasterInterface_1broadcast_1transaction(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray tx) { - LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)this_arg; + LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)(((uint64_t)this_arg) & ~1); LDKTransaction tx_ref; tx_ref.datalen = (*env)->GetArrayLength(env, tx); tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); @@ -3237,14 +3342,14 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKKeysInterface_1new(JNIEn return (long)res_ptr; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1node_1secret(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, ret_arr, 0, 32, (this_arg_conv->get_node_secret)(this_arg_conv->this_arg).bytes); return ret_arr; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1destination_1script(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg); int8_tArray ret_arr = (*env)->NewByteArray(env, ret_var.datalen); (*env)->SetByteArrayRegion(env, ret_arr, 0, ret_var.datalen, ret_var.data); @@ -3253,28 +3358,28 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1des } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1shutdown_1pubkey(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 33); (*env)->SetByteArrayRegion(env, ret_arr, 0, 33, (this_arg_conv->get_shutdown_pubkey)(this_arg_conv->this_arg).compressed_form); return ret_arr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1channel_1signer(JNIEnv *env, jclass clz, int64_t this_arg, jboolean inbound, int64_t channel_value_satoshis) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = (this_arg_conv->get_channel_signer)(this_arg_conv->this_arg, inbound, channel_value_satoshis); return (long)ret; } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_KeysInterface_1get_1secure_1random_1bytes(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = (*env)->NewByteArray(env, 32); (*env)->SetByteArrayRegion(env, ret_arr, 0, 32, (this_arg_conv->get_secure_random_bytes)(this_arg_conv->this_arg).data); return ret_arr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_KeysInterface_1read_1chan_1signer(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray reader) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKu8slice reader_ref; reader_ref.datalen = (*env)->GetArrayLength(env, reader); reader_ref.data = (*env)->GetByteArrayElements (env, reader, NULL); @@ -3336,7 +3441,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKFeeEstimator_1new(JNIEnv return (long)res_ptr; } JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_FeeEstimator_1get_1est_1sat_1per_11000_1weight(JNIEnv *env, jclass clz, int64_t this_arg, jclass confirmation_target) { - LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)this_arg; + LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)(((uint64_t)this_arg) & ~1); LDKConfirmationTarget confirmation_target_conv = LDKConfirmationTarget_from_java(env, confirmation_target); int32_t ret_val = (this_arg_conv->get_est_sat_per_1000_weight)(this_arg_conv->this_arg, confirmation_target_conv); return ret_val; @@ -4510,7 +4615,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKMessageSendEventsProvide return (long)res_ptr; } JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_MessageSendEventsProvider_1get_1and_1clear_1pending_1msg_1events(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)this_arg; + LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_MessageSendEventZ ret_var = (this_arg_conv->get_and_clear_pending_msg_events)(this_arg_conv->this_arg); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); int64_t *ret_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, ret_arr, NULL); @@ -4591,7 +4696,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKEventsProvider_1new(JNIE return (long)res_ptr; } JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_EventsProvider_1get_1and_1clear_1pending_1events(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)this_arg; + LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_EventZ ret_var = (this_arg_conv->get_and_clear_pending_events)(this_arg_conv->this_arg); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); int64_t *ret_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, ret_arr, NULL); @@ -4662,7 +4767,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKAccess_1new(JNIEnv *env, return (long)res_ptr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Access_1get_1utxo(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray genesis_hash, int64_t short_channel_id) { - LDKAccess* this_arg_conv = (LDKAccess*)this_arg; + LDKAccess* this_arg_conv = (LDKAccess*)(((uint64_t)this_arg) & ~1); unsigned char genesis_hash_arr[32]; CHECK((*env)->GetArrayLength(env, genesis_hash) == 32); (*env)->GetByteArrayRegion(env, genesis_hash, 0, 32, genesis_hash_arr); @@ -4740,7 +4845,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKListen_1new(JNIEnv *env, return (long)res_ptr; } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Listen_1block_1connected(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray block, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); LDKu8slice block_ref; block_ref.datalen = (*env)->GetArrayLength(env, block); block_ref.data = (*env)->GetByteArrayElements (env, block, NULL); @@ -4749,7 +4854,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Listen_1block_1connected(JNIEn } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Listen_1block_1disconnected(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray header, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); unsigned char header_arr[80]; CHECK((*env)->GetArrayLength(env, header) == 80); (*env)->GetByteArrayRegion(env, header, 0, 80, header_arr); @@ -4836,7 +4941,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKFilter_1new(JNIEnv *env, return (long)res_ptr; } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Filter_1register_1tx(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray txid, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); unsigned char txid_arr[32]; CHECK((*env)->GetArrayLength(env, txid) == 32); (*env)->GetByteArrayRegion(env, txid, 0, 32, txid_arr); @@ -4849,7 +4954,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Filter_1register_1tx(JNIEnv *e } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Filter_1register_1output(JNIEnv *env, jclass clz, int64_t this_arg, int64_t outpoint, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); LDKOutPoint outpoint_conv; outpoint_conv.inner = (void*)(outpoint & (~1)); outpoint_conv.is_owned = false; @@ -4967,7 +5072,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKPersist_1new(JNIEnv *env return (long)res_ptr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Persist_1persist_1new_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int64_t id, int64_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -4981,7 +5086,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Persist_1persist_1new_1chan } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Persist_1update_1persisted_1channel(JNIEnv *env, jclass clz, int64_t this_arg, int64_t id, int64_t update, int64_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -5472,7 +5577,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKChannelMessageHandler_1n return (long)res_ptr; } 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*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5487,7 +5592,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1accept_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*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5502,7 +5607,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1funding_1created(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5513,7 +5618,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1funding_1signed(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5524,7 +5629,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1funding_1locked(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5535,7 +5640,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1shutdown(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*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5549,7 +5654,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1closing_1signed(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5560,7 +5665,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1update_1add_1htlc(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5571,7 +5676,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1update_1fulfill_1htlc(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5582,7 +5687,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1update_1fail_1htlc(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5593,7 +5698,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1update_1fail_1malformed_1htlc(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5604,7 +5709,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1commitment_1signed(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5615,7 +5720,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1revoke_1and_1ack(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5626,7 +5731,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1update_1fee(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5637,7 +5742,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1announcement_1signatures(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5648,7 +5753,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1peer_1disconnected(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, jboolean no_connection_possible) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5656,7 +5761,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1peer_1d } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1peer_1connected(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5667,7 +5772,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1peer_1c } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1channel_1reestablish(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5678,7 +5783,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMessageHandler_1handle_1error(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -5989,7 +6094,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKRoutingMessageHandler_1n return (long)res_ptr; } 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*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKNodeAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -5999,7 +6104,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1channel_1announcement(JNIEnv *env, jclass clz, int64_t this_arg, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -6009,7 +6114,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1channel_1update(JNIEnv *env, jclass clz, int64_t this_arg, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelUpdate msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -6019,13 +6124,13 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1htlc_1fail_1channel_1update(JNIEnv *env, jclass clz, int64_t this_arg, int64_t update) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKHTLCFailChannelUpdate* update_conv = (LDKHTLCFailChannelUpdate*)update; (this_arg_conv->handle_htlc_fail_channel_update)(this_arg_conv->this_arg, update_conv); } JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1get_1next_1channel_1announcements(JNIEnv *env, jclass clz, int64_t this_arg, int64_t starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_var = (this_arg_conv->get_next_channel_announcements)(this_arg_conv->this_arg, starting_point, batch_amount); int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); int64_t *ret_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, ret_arr, NULL); @@ -6040,7 +6145,7 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_ } JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1get_1next_1node_1announcements(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey starting_point_ref; CHECK((*env)->GetArrayLength(env, starting_point) == 33); (*env)->GetByteArrayRegion(env, starting_point, 0, 33, starting_point_ref.compressed_form); @@ -6063,7 +6168,7 @@ JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_ } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1sync_1routing_1table(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t init) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -6074,7 +6179,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1sync_1r } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1reply_1channel_1range(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -6088,7 +6193,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1reply_1short_1channel_1ids_1end(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -6102,7 +6207,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1query_1channel_1range(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -6116,7 +6221,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1hand } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RoutingMessageHandler_1handle_1query_1short_1channel_1ids(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray their_node_id, int64_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK((*env)->GetArrayLength(env, their_node_id) == 33); (*env)->GetByteArrayRegion(env, their_node_id, 0, 33, their_node_id_ref.compressed_form); @@ -6222,7 +6327,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LDKSocketDescriptor_1new(JN return (long)res_ptr; } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1send_1data(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray data, jboolean resume_read) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); LDKu8slice data_ref; data_ref.datalen = (*env)->GetArrayLength(env, data); data_ref.data = (*env)->GetByteArrayElements (env, data, NULL); @@ -6232,12 +6337,12 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1send_1dat } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1disconnect_1socket(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); (this_arg_conv->disconnect_socket)(this_arg_conv->this_arg); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1hash(JNIEnv *env, jclass clz, int64_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); int64_t ret_val = (this_arg_conv->hash)(this_arg_conv->this_arg); return ret_val; } @@ -7564,6 +7669,96 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1OutPointScriptZ_1free C2Tuple_OutPointScriptZ_free(_res_conv); } +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1clone(JNIEnv *env, jclass clz, int64_t orig) { + LDKC2Tuple_u32ScriptZ* orig_conv = (LDKC2Tuple_u32ScriptZ*)(orig & ~1); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_clone(orig_conv); + return (long)ret_ref; +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1new(JNIEnv *env, jclass clz, int32_t a, int8_tArray b) { + LDKCVec_u8Z b_ref; + b_ref.datalen = (*env)->GetArrayLength(env, b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + (*env)->GetByteArrayRegion(env, b, 0, b_ref.datalen, b_ref.data); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_new(a, b_ref); + return (long)ret_ref; +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1free(JNIEnv *env, jclass clz, int64_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_u32ScriptZ _res_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_u32ScriptZ_free(_res_conv); +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1C2Tuple_1u32ScriptZZ_1free(JNIEnv *env, jclass clz, int64_tArray _res) { + LDKCVec_C2Tuple_u32ScriptZZ _res_constr; + _res_constr.datalen = (*env)->GetArrayLength(env, _res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = (*env)->GetLongArrayElements (env, _res, NULL); + for (size_t b = 0; b < _res_constr.datalen; b++) { + int64_t _res_conv_27 = _res_vals[b]; + LDKC2Tuple_u32ScriptZ _res_conv_27_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res_conv_27) & ~1); + FREE((void*)_res_conv_27); + _res_constr.data[b] = _res_conv_27_conv; + } + (*env)->ReleaseLongArrayElements(env, _res, _res_vals, 0); + CVec_C2Tuple_u32ScriptZZ_free(_res_constr); +} + +JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1new(JNIEnv *env, jclass clz, int8_tArray a, int64_tArray b) { + LDKThirtyTwoBytes a_ref; + CHECK((*env)->GetArrayLength(env, a) == 32); + (*env)->GetByteArrayRegion(env, a, 0, 32, a_ref.data); + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = (*env)->GetArrayLength(env, b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + int64_t* b_vals = (*env)->GetLongArrayElements (env, b, NULL); + for (size_t b = 0; b < b_constr.datalen; b++) { + int64_t b_conv_27 = b_vals[b]; + LDKC2Tuple_u32ScriptZ b_conv_27_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_27) & ~1); + FREE((void*)b_conv_27); + b_constr.data[b] = b_conv_27_conv; + } + (*env)->ReleaseLongArrayElements(env, b, b_vals, 0); + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_ref = C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(a_ref, b_constr); + return (long)ret_ref; +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1free(JNIEnv *env, jclass clz, int64_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(_res_conv); +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZZ_1free(JNIEnv *env, jclass clz, int64_tArray _res) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ _res_constr; + _res_constr.datalen = (*env)->GetArrayLength(env, _res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Elements"); + else + _res_constr.data = NULL; + int64_t* _res_vals = (*env)->GetLongArrayElements (env, _res, NULL); + for (size_t v = 0; v < _res_constr.datalen; v++) { + int64_t _res_conv_47 = _res_vals[v]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv_47_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res_conv_47) & ~1); + FREE((void*)_res_conv_47); + _res_constr.data[v] = _res_conv_47_conv; + } + (*env)->ReleaseLongArrayElements(env, _res, _res_vals, 0); + CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res_constr); +} + JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1TransactionZ_1free(JNIEnv *env, jclass clz, jobjectArray _res) { LDKCVec_TransactionZ _res_constr; _res_constr.datalen = (*env)->GetArrayLength(env, _res); @@ -9643,11 +9838,11 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Logger_1free(JNIEnv *env, jcla Logger_free(this_ptr_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeConfig_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelHandshakeConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeConfig_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeConfig_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelHandshakeConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeConfig_free(this_obj_conv); } JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeConfig_1get_1minimum_1depth(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -9731,11 +9926,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeConfig_1def return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeLimits_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelHandshakeLimits this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeLimits_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeLimits_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelHandshakeLimits this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeLimits_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeLimits_1get_1min_1funding_1satoshis(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -9924,11 +10119,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelHandshakeLimits_1def return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelConfig_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelConfig_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelConfig_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelConfig_free(this_obj_conv); } JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_ChannelConfig_1get_1fee_1proportional_1millionths(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -10033,11 +10228,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelConfig_1read(JNIEnv return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UserConfig_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUserConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UserConfig_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UserConfig_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUserConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UserConfig_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UserConfig_1get_1own_1channel_1config(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -10217,11 +10412,11 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FeeEstimator_1free(JNIEnv *env FeeEstimator_free(this_ptr_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChainMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainMonitor_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChainMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainMonitor_free(this_obj_conv); } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1block_1connected(JNIEnv *env, jclass clz, int64_t this_arg, int8_tArray header, int64_tArray txdata, int32_t height) { @@ -10261,7 +10456,17 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1block_1disconnec } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *env, jclass clz, int64_t chain_source, int64_t broadcaster, int64_t logger, int64_t feeest, int64_t persister) { - LDKFilter* chain_source_conv = (LDKFilter*)chain_source; + LDKFilter *chain_source_conv_ptr = NULL; + if (chain_source != 0) { + LDKFilter chain_source_conv; + chain_source_conv = *(LDKFilter*)(((uint64_t)chain_source) & ~1); + 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); + } + chain_source_conv_ptr = MALLOC(sizeof(LDKFilter), "LDKFilter"); + *chain_source_conv_ptr = chain_source_conv; + } 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. @@ -10282,7 +10487,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1new(JNIEnv *e // If this_arg is a JCalls struct, then we need to increment the refcnt in it. LDKPersist_JCalls_clone(persister_conv.this_arg); } - LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv, broadcaster_conv, logger_conv, feeest_conv, persister_conv); + LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv_ptr, broadcaster_conv, logger_conv, feeest_conv, persister_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -10310,11 +10515,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainMonitor_1as_1EventsPro return (long)ret; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitorUpdate_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelMonitorUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitorUpdate_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitorUpdate_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelMonitorUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitorUpdate_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelMonitorUpdate_1get_1update_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -10373,11 +10578,11 @@ JNIEXPORT jclass JNICALL Java_org_ldk_impl_bindings_ChannelMonitorUpdateErr_1clo return ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MonitorUpdateError_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKMonitorUpdateError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MonitorUpdateError_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MonitorUpdateError_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKMonitorUpdateError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MonitorUpdateError_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MonitorUpdateError_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -10409,11 +10614,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MonitorEvent_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HTLCUpdate_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKHTLCUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCUpdate_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HTLCUpdate_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKHTLCUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCUpdate_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_HTLCUpdate_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -10451,11 +10656,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_HTLCUpdate_1read(JNIEnv *en return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitor_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitor_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -10490,9 +10695,9 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1update_1mon LDKChannelMonitorUpdate updates_conv; updates_conv.inner = (void*)(updates & (~1)); updates_conv.is_owned = false; - LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)broadcaster; - LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)fee_estimator; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); + LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCResult_NoneMonitorUpdateErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneMonitorUpdateErrorZ), "LDKCResult_NoneMonitorUpdateErrorZ"); *ret_conv = ChannelMonitor_update_monitor(&this_arg_conv, &updates_conv, broadcaster_conv, fee_estimator_conv, logger_conv); return (long)ret_conv; @@ -10515,6 +10720,31 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1fundin return (long)ret_ref; } +JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1outputs_1to_1watch(JNIEnv *env, jclass clz, int64_t this_arg) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ ret_var = ChannelMonitor_get_outputs_to_watch(&this_arg_conv); + int64_tArray ret_arr = (*env)->NewLongArray(env, ret_var.datalen); + int64_t *ret_arr_ptr = (*env)->GetPrimitiveArrayCritical(env, ret_arr, NULL); + for (size_t v = 0; v < ret_var.datalen; v++) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_conv_47_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_conv_47_ref = ret_var.data[v]; + ret_arr_ptr[v] = (long)ret_conv_47_ref; + } + (*env)->ReleasePrimitiveArrayCritical(env, ret_arr, ret_arr_ptr, 0); + FREE(ret_var.data); + return ret_arr; +} + +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1load_1outputs_1to_1watch(JNIEnv *env, jclass clz, int64_t this_arg, int64_t filter) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKFilter* filter_conv = (LDKFilter*)(((uint64_t)filter) & ~1); + ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv); +} + JNIEXPORT int64_tArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1and_1clear_1pending_1monitor_1events(JNIEnv *env, jclass clz, int64_t this_arg) { LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -10555,7 +10785,7 @@ JNIEXPORT jobjectArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1l LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCVec_TransactionZ ret_var = ChannelMonitor_get_latest_holder_commitment_txn(&this_arg_conv, logger_conv); jobjectArray ret_arr = (*env)->NewObjectArray(env, ret_var.datalen, arr_of_B_clz, NULL); ; @@ -10657,18 +10887,18 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_C2Tuple_1BlockHashChannelMo LDKu8slice ser_ref; ser_ref.datalen = (*env)->GetArrayLength(env, ser); ser_ref.data = (*env)->GetByteArrayElements (env, ser, NULL); - LDKKeysInterface* arg_conv = (LDKKeysInterface*)arg; + LDKKeysInterface* arg_conv = (LDKKeysInterface*)(((uint64_t)arg) & ~1); LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ), "LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ"); *ret_conv = C2Tuple_BlockHashChannelMonitorZ_read(ser_ref, arg_conv); (*env)->ReleaseByteArrayElements(env, ser, (int8_t*)ser_ref.data, 0); return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_OutPoint_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKOutPoint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OutPoint_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_OutPoint_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKOutPoint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OutPoint_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_OutPoint_1get_1txid(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -10763,11 +10993,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_OutPoint_1read(JNIEnv *env, return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DelayedPaymentOutputDescriptor_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKDelayedPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DelayedPaymentOutputDescriptor_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DelayedPaymentOutputDescriptor_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKDelayedPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DelayedPaymentOutputDescriptor_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DelayedPaymentOutputDescriptor_1get_1outpoint(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -10931,11 +11161,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DelayedPaymentOutputDescrip return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_StaticPaymentOutputDescriptor_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKStaticPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - StaticPaymentOutputDescriptor_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_StaticPaymentOutputDescriptor_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKStaticPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + StaticPaymentOutputDescriptor_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_StaticPaymentOutputDescriptor_1get_1outpoint(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -11075,7 +11305,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_SpendableOutputDescriptor_1 } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Sign_1clone(JNIEnv *env, jclass clz, int64_t orig) { - LDKSign* orig_conv = (LDKSign*)orig; + LDKSign* orig_conv = (LDKSign*)(((uint64_t)orig) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = Sign_clone(orig_conv); return (long)ret; @@ -11095,11 +11325,11 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_KeysInterface_1free(JNIEnv *en KeysInterface_free(this_ptr_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_InMemorySigner_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKInMemorySigner this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InMemorySigner_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_InMemorySigner_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKInMemorySigner this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InMemorySigner_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_InMemorySigner_1get_1funding_1key(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -11392,11 +11622,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_InMemorySigner_1read(JNIEnv return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_KeysManager_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKKeysManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - KeysManager_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_KeysManager_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKKeysManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + KeysManager_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_KeysManager_1new(JNIEnv *env, jclass clz, int8_tArray seed, int64_t starting_time_secs, int32_t starting_time_nanos) { @@ -11482,18 +11712,18 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_KeysManager_1as_1KeysInterf return (long)ret; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManager_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManager_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManager_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManager_free(this_obj_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainParameters_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChainParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainParameters_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChainParameters_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChainParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainParameters_free(this_obj_conv); } JNIEXPORT jclass JNICALL Java_org_ldk_impl_bindings_ChainParameters_1get_1network(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -11561,11 +11791,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChainParameters_1new(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelDetails_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelDetails this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelDetails_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelDetails_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelDetails this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelDetails_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelDetails_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12084,11 +12314,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelManager_1write(J return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelManagerReadArgs this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManagerReadArgs_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelManagerReadArgs this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManagerReadArgs_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelManagerReadArgs_1get_1keys_1manager(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12285,11 +12515,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_C2Tuple_1BlockHashChannelMa return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DecodeError_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKDecodeError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DecodeError_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DecodeError_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKDecodeError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DecodeError_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DecodeError_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -12306,11 +12536,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DecodeError_1clone(JNIEnv * return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Init_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKInit this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Init_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Init_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKInit this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Init_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Init_1get_1features(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12367,11 +12597,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Init_1clone(JNIEnv *env, jc return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKErrorMessage this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErrorMessage_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKErrorMessage this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErrorMessage_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12445,11 +12675,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ErrorMessage_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Ping_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKPing this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Ping_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Ping_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKPing this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Ping_free(this_obj_conv); } JNIEXPORT int16_t JNICALL Java_org_ldk_impl_bindings_Ping_1get_1ponglen(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12507,11 +12737,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Ping_1clone(JNIEnv *env, jc return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Pong_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKPong this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Pong_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Pong_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKPong this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Pong_free(this_obj_conv); } JNIEXPORT int16_t JNICALL Java_org_ldk_impl_bindings_Pong_1get_1byteslen(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12554,11 +12784,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Pong_1clone(JNIEnv *env, jc return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_OpenChannel_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKOpenChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OpenChannel_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_OpenChannel_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKOpenChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OpenChannel_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_OpenChannel_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -12877,11 +13107,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_OpenChannel_1clone(JNIEnv * return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_AcceptChannel_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKAcceptChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AcceptChannel_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_AcceptChannel_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKAcceptChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AcceptChannel_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_AcceptChannel_1get_1temporary_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13136,11 +13366,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_AcceptChannel_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingCreated_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKFundingCreated this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingCreated_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingCreated_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKFundingCreated this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingCreated_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_FundingCreated_1get_1temporary_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13249,11 +13479,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_FundingCreated_1clone(JNIEn return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingSigned_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKFundingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingSigned_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingSigned_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKFundingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingSigned_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_FundingSigned_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13325,11 +13555,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_FundingSigned_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingLocked_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKFundingLocked this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingLocked_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_FundingLocked_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKFundingLocked this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingLocked_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_FundingLocked_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13401,11 +13631,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_FundingLocked_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Shutdown_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKShutdown this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Shutdown_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Shutdown_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKShutdown this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Shutdown_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_Shutdown_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13480,11 +13710,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Shutdown_1clone(JNIEnv *env return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ClosingSigned_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKClosingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ClosingSigned_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ClosingSigned_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKClosingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ClosingSigned_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ClosingSigned_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13571,11 +13801,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ClosingSigned_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateAddHTLC_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUpdateAddHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateAddHTLC_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateAddHTLC_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUpdateAddHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateAddHTLC_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UpdateAddHTLC_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13675,11 +13905,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UpdateAddHTLC_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFulfillHTLC_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUpdateFulfillHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFulfillHTLC_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFulfillHTLC_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUpdateFulfillHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFulfillHTLC_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UpdateFulfillHTLC_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13766,11 +13996,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UpdateFulfillHTLC_1clone(JN return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFailHTLC_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUpdateFailHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailHTLC_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFailHTLC_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUpdateFailHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailHTLC_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UpdateFailHTLC_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13821,11 +14051,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UpdateFailHTLC_1clone(JNIEn return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFailMalformedHTLC_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUpdateFailMalformedHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailMalformedHTLC_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFailMalformedHTLC_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUpdateFailMalformedHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailMalformedHTLC_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UpdateFailMalformedHTLC_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -13891,11 +14121,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UpdateFailMalformedHTLC_1cl return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentSigned_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKCommitmentSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentSigned_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentSigned_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKCommitmentSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentSigned_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_CommitmentSigned_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14000,11 +14230,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CommitmentSigned_1clone(JNI return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RevokeAndACK_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKRevokeAndACK this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RevokeAndACK_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RevokeAndACK_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKRevokeAndACK this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RevokeAndACK_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_RevokeAndACK_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14098,11 +14328,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RevokeAndACK_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFee_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUpdateFee this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFee_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UpdateFee_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUpdateFee this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFee_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UpdateFee_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14167,11 +14397,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UpdateFee_1clone(JNIEnv *en return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DataLossProtect_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKDataLossProtect this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DataLossProtect_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DataLossProtect_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKDataLossProtect this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DataLossProtect_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_DataLossProtect_1get_1your_1last_1per_1commitment_1secret(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14243,11 +14473,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DataLossProtect_1clone(JNIE return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelReestablish_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelReestablish this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelReestablish_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelReestablish_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelReestablish this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelReestablish_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelReestablish_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14313,11 +14543,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelReestablish_1clone(J return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_AnnouncementSignatures_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKAnnouncementSignatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AnnouncementSignatures_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_AnnouncementSignatures_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKAnnouncementSignatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AnnouncementSignatures_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_AnnouncementSignatures_1get_1channel_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14460,11 +14690,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Result_1read(JNIEnv *env, j return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedNodeAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUnsignedNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedNodeAnnouncement_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedNodeAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUnsignedNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedNodeAnnouncement_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UnsignedNodeAnnouncement_1get_1features(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14599,11 +14829,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UnsignedNodeAnnouncement_1c return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncement_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncement_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_NodeAnnouncement_1get_1signature(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14682,11 +14912,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NodeAnnouncement_1clone(JNI return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedChannelAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUnsignedChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelAnnouncement_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedChannelAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUnsignedChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelAnnouncement_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UnsignedChannelAnnouncement_1get_1features(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14838,11 +15068,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UnsignedChannelAnnouncement return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelAnnouncement_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelAnnouncement_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelAnnouncement_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelAnnouncement_1get_1node_1signature_11(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -14987,11 +15217,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelAnnouncement_1clone( return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedChannelUpdate_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKUnsignedChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelUpdate_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_UnsignedChannelUpdate_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKUnsignedChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelUpdate_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_UnsignedChannelUpdate_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15132,11 +15362,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_UnsignedChannelUpdate_1clon return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelUpdate_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelUpdate_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelUpdate_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelUpdate_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelUpdate_1get_1signature(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15215,11 +15445,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelUpdate_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_QueryChannelRange_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKQueryChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryChannelRange_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_QueryChannelRange_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKQueryChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryChannelRange_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_QueryChannelRange_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15299,11 +15529,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_QueryChannelRange_1clone(JN return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ReplyChannelRange_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKReplyChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyChannelRange_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ReplyChannelRange_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKReplyChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyChannelRange_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ReplyChannelRange_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15429,11 +15659,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ReplyChannelRange_1clone(JN return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_QueryShortChannelIds_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKQueryShortChannelIds this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryShortChannelIds_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_QueryShortChannelIds_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKQueryShortChannelIds this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryShortChannelIds_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_QueryShortChannelIds_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15514,11 +15744,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_QueryShortChannelIds_1clone return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ReplyShortChannelIdsEnd_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKReplyShortChannelIdsEnd this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyShortChannelIdsEnd_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ReplyShortChannelIdsEnd_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKReplyShortChannelIdsEnd this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyShortChannelIdsEnd_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ReplyShortChannelIdsEnd_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15583,11 +15813,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ReplyShortChannelIdsEnd_1cl return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_GossipTimestampFilter_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKGossipTimestampFilter this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - GossipTimestampFilter_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_GossipTimestampFilter_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKGossipTimestampFilter this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + GossipTimestampFilter_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_GossipTimestampFilter_1get_1chain_1hash(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15682,11 +15912,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ErrorAction_1clone(JNIEnv * return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LightningError_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKLightningError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LightningError_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LightningError_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKLightningError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LightningError_free(this_obj_conv); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_LightningError_1get_1err(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -15759,11 +15989,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_LightningError_1clone(JNIEn return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentUpdate_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKCommitmentUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentUpdate_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentUpdate_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKCommitmentUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentUpdate_free(this_obj_conv); } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentUpdate_1set_1update_1add_1htlcs(JNIEnv *env, jclass clz, int64_t this_ptr, int64_tArray val) { @@ -16685,11 +16915,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_GossipTimestampFilter_1 return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_IgnoringMessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKIgnoringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - IgnoringMessageHandler_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_IgnoringMessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKIgnoringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + IgnoringMessageHandler_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_IgnoringMessageHandler_1new(JNIEnv *env, jclass clz) { @@ -16721,11 +16951,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_IgnoringMessageHandler_1as_ return (long)ret; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ErroringMessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKErroringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErroringMessageHandler_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ErroringMessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKErroringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErroringMessageHandler_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ErroringMessageHandler_1new(JNIEnv *env, jclass clz) { @@ -16757,11 +16987,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ErroringMessageHandler_1as_ return (long)ret; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MessageHandler_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_MessageHandler_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MessageHandler_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MessageHandler_1get_1chan_1handler(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -16826,7 +17056,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_MessageHandler_1new(JNIEnv } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1clone(JNIEnv *env, jclass clz, int64_t orig) { - LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)orig; + LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)(((uint64_t)orig) & ~1); LDKSocketDescriptor* ret = MALLOC(sizeof(LDKSocketDescriptor), "LDKSocketDescriptor"); *ret = SocketDescriptor_clone(orig_conv); return (long)ret; @@ -16839,11 +17069,11 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_SocketDescriptor_1free(JNIEnv SocketDescriptor_free(this_ptr_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PeerHandleError_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKPeerHandleError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerHandleError_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PeerHandleError_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKPeerHandleError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerHandleError_free(this_obj_conv); } JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_PeerHandleError_1get_1no_1connection_1possible(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -16886,11 +17116,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerHandleError_1clone(JNIE return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PeerManager_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKPeerManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerManager_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PeerManager_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKPeerManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerManager_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1new(JNIEnv *env, jclass clz, int64_t message_handler, int8_tArray our_node_secret, int8_tArray ephemeral_random_data, int64_t logger) { @@ -16971,7 +17201,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1write_1buffer_ LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ"); *ret_conv = PeerManager_write_buffer_space_avail(&this_arg_conv, descriptor_conv); return (long)ret_conv; @@ -16981,7 +17211,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_PeerManager_1read_1event(JN LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)peer_descriptor; + LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)peer_descriptor) & ~1); LDKu8slice data_ref; data_ref.datalen = (*env)->GetArrayLength(env, data); data_ref.data = (*env)->GetByteArrayElements (env, data, NULL); @@ -17002,7 +17232,7 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_PeerManager_1socket_1disconnec LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); PeerManager_socket_disconnected(&this_arg_conv, descriptor_conv); } @@ -17084,11 +17314,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_derive_1public_1revocation_ return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_TxCreationKeys_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKTxCreationKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TxCreationKeys_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_TxCreationKeys_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKTxCreationKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TxCreationKeys_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_TxCreationKeys_1get_1per_1commitment_1point(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -17247,11 +17477,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_TxCreationKeys_1read(JNIEnv return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelPublicKeys_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelPublicKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelPublicKeys_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelPublicKeys_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelPublicKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelPublicKeys_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_ChannelPublicKeys_1get_1funding_1pubkey(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -17460,11 +17690,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_get_1revokeable_1redeem return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HTLCOutputInCommitment_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKHTLCOutputInCommitment this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCOutputInCommitment_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HTLCOutputInCommitment_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKHTLCOutputInCommitment this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCOutputInCommitment_free(this_obj_conv); } JNIEXPORT jboolean JNICALL Java_org_ldk_impl_bindings_HTLCOutputInCommitment_1get_1offered(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -17615,11 +17845,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_build_1htlc_1transactio return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelTransactionParameters_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelTransactionParameters_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelTransactionParameters_1get_1holder_1pubkeys(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -17764,11 +17994,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelTransactionParameter return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CounterpartyChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKCounterpartyChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CounterpartyChannelTransactionParameters_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CounterpartyChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKCounterpartyChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CounterpartyChannelTransactionParameters_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CounterpartyChannelTransactionParameters_1get_1pubkeys(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -17918,11 +18148,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelTransactionParameter return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DirectedChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKDirectedChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectedChannelTransactionParameters_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DirectedChannelTransactionParameters_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKDirectedChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectedChannelTransactionParameters_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DirectedChannelTransactionParameters_1broadcaster_1pubkeys(JNIEnv *env, jclass clz, int64_t this_arg) { @@ -17983,11 +18213,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DirectedChannelTransactionP return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKHolderCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HolderCommitmentTransaction_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKHolderCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HolderCommitmentTransaction_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction_1get_1counterparty_1sig(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -18101,11 +18331,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_HolderCommitmentTransaction return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_BuiltCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKBuiltCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - BuiltCommitmentTransaction_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_BuiltCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKBuiltCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + BuiltCommitmentTransaction_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_BuiltCommitmentTransaction_1get_1transaction(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -18234,11 +18464,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_BuiltCommitmentTransact return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentTransaction_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentTransaction_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CommitmentTransaction_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -18340,11 +18570,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_CommitmentTransaction_1veri return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_TrustedCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKTrustedCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TrustedCommitmentTransaction_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_TrustedCommitmentTransaction_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKTrustedCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TrustedCommitmentTransaction_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_TrustedCommitmentTransaction_1txid(JNIEnv *env, jclass clz, int64_t this_arg) { @@ -18453,25 +18683,25 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelFeatures_1clone(JNIE return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_InitFeatures_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKInitFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InitFeatures_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_InitFeatures_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKInitFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InitFeatures_free(this_obj_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeFeatures_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNodeFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeFeatures_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeFeatures_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNodeFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeFeatures_free(this_obj_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelFeatures_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelFeatures_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelFeatures_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelFeatures_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_InitFeatures_1empty(JNIEnv *env, jclass clz) { @@ -18603,11 +18833,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelFeatures_1read(JNIEn return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RouteHop_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKRouteHop this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHop_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RouteHop_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKRouteHop this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHop_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_RouteHop_1get_1pubkey(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -18760,11 +18990,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_RouteHop_1clone(JNIEnv *env return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Route_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKRoute this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Route_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Route_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKRoute this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Route_free(this_obj_conv); } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_Route_1set_1paths(JNIEnv *env, jclass clz, int64_t this_ptr, jobjectArray val) { @@ -18872,11 +19102,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_Route_1read(JNIEnv *env, jc return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RouteHint_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKRouteHint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHint_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RouteHint_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKRouteHint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHint_free(this_obj_conv); } JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_RouteHint_1get_1src_1node_1id(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -19019,11 +19249,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_get_1route(JNIEnv *env, jcl return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetworkGraph_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetworkGraph_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1clone(JNIEnv *env, jclass clz, int64_t orig) { @@ -19040,31 +19270,41 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1clone(JNIEnv return ret_ref; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LockedNetworkGraph_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKLockedNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LockedNetworkGraph_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_LockedNetworkGraph_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKLockedNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LockedNetworkGraph_free(this_obj_conv); } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNetGraphMsgHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetGraphMsgHandler_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNetGraphMsgHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetGraphMsgHandler_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNIEnv *env, jclass clz, int8_tArray genesis_hash, int64_t chain_access, int64_t logger) { LDKThirtyTwoBytes genesis_hash_ref; CHECK((*env)->GetArrayLength(env, genesis_hash) == 32); (*env)->GetByteArrayRegion(env, genesis_hash, 0, 32, genesis_hash_ref.data); - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + 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); + } + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_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); } - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv, logger_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv_ptr, logger_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -19075,7 +19315,17 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1new(JNI } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1net_1graph(JNIEnv *env, jclass clz, int64_t chain_access, int64_t logger, int64_t network_graph) { - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + 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); + } + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_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. @@ -19085,7 +19335,7 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1from_1n network_graph_conv.inner = (void*)(network_graph & (~1)); network_graph_conv.is_owned = (network_graph & 1) || (network_graph == 0); network_graph_conv = NetworkGraph_clone(&network_graph_conv); - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv, logger_conv, network_graph_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv_ptr, logger_conv, network_graph_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -19099,8 +19349,18 @@ JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1add_1chain LDKNetGraphMsgHandler this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; - NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv); + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + 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); + } + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } + NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv_ptr); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1read_1locked_1graph(JNIEnv *env, jclass clz, int64_t this_arg) { @@ -19149,11 +19409,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetGraphMsgHandler_1as_1Mes return (long)ret; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DirectionalChannelInfo_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKDirectionalChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectionalChannelInfo_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_DirectionalChannelInfo_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKDirectionalChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectionalChannelInfo_free(this_obj_conv); } JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_DirectionalChannelInfo_1get_1last_1update(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -19301,11 +19561,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_DirectionalChannelInfo_1rea return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelInfo_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelInfo_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelInfo_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelInfo_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelInfo_1get_1features(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -19481,11 +19741,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_ChannelInfo_1read(JNIEnv *e return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RoutingFees_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKRoutingFees this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RoutingFees_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_RoutingFees_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKRoutingFees this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RoutingFees_free(this_obj_conv); } JNIEXPORT int32_t JNICALL Java_org_ldk_impl_bindings_RoutingFees_1get_1base_1msat(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -19564,11 +19824,11 @@ JNIEXPORT int8_tArray JNICALL Java_org_ldk_impl_bindings_RoutingFees_1write(JNIE return ret_arr; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeAnnouncementInfo_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNodeAnnouncementInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncementInfo_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeAnnouncementInfo_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNodeAnnouncementInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncementInfo_free(this_obj_conv); } JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NodeAnnouncementInfo_1get_1features(JNIEnv *env, jclass clz, int64_t this_ptr) { @@ -19769,11 +20029,11 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NodeAnnouncementInfo_1read( return (long)ret_conv; } -JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeInfo_1free(JNIEnv *env, jclass clz, int64_t this_ptr) { - LDKNodeInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeInfo_free(this_ptr_conv); +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeInfo_1free(JNIEnv *env, jclass clz, int64_t this_obj) { + LDKNodeInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeInfo_free(this_obj_conv); } JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_NodeInfo_1set_1channels(JNIEnv *env, jclass clz, int64_t this_ptr, int64_tArray val) { @@ -19977,9 +20237,19 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + 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); + } + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ"); - *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv); + *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; } @@ -19990,9 +20260,19 @@ JNIEXPORT int64_t JNICALL Java_org_ldk_impl_bindings_NetworkGraph_1update_1chann LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + 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); + } + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ"); - *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv); + *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; } diff --git a/src/main/jni/org_ldk_impl_bindings.h b/src/main/jni/org_ldk_impl_bindings.h index 623d4a4a..918e0b03 100644 --- a/src/main/jni/org_ldk_impl_bindings.h +++ b/src/main/jni/org_ldk_impl_bindings.h @@ -1119,6 +1119,70 @@ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1OutPointScriptZ_1 JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1OutPointScriptZ_1get_1b (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_u32ScriptZ_new + * Signature: (I[B)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1new + (JNIEnv *, jclass, jint, jbyteArray); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_u32ScriptZ_get_a + * Signature: (J)I + */ +JNIEXPORT jint JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1get_1a + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_u32ScriptZ_get_b + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1u32ScriptZ_1get_1b + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKCVec_C2Tuple_u32ScriptZZ_new + * Signature: ([J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCVec_1C2Tuple_1u32ScriptZZ_1new + (JNIEnv *, jclass, jlongArray); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new + * Signature: ([B[J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1new + (JNIEnv *, jclass, jbyteArray, jlongArray); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a + * Signature: (J)[B + */ +JNIEXPORT jbyteArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1get_1a + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b + * Signature: (J)[J + */ +JNIEXPORT jlongArray JNICALL Java_org_ldk_impl_bindings_LDKC2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1get_1b + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_new + * Signature: ([J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_LDKCVec_1C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZZ_1new + (JNIEnv *, jclass, jlongArray); + /* * Class: org_ldk_impl_bindings * Method: LDKC2Tuple_u32TxOutZ_new @@ -4303,6 +4367,62 @@ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1OutPointScriptZ_1new JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1OutPointScriptZ_1free (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: C2Tuple_u32ScriptZ_clone + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1clone + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: C2Tuple_u32ScriptZ_new + * Signature: (I[B)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1new + (JNIEnv *, jclass, jint, jbyteArray); + +/* + * Class: org_ldk_impl_bindings + * Method: C2Tuple_u32ScriptZ_free + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1u32ScriptZ_1free + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: CVec_C2Tuple_u32ScriptZZ_free + * Signature: ([J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1C2Tuple_1u32ScriptZZ_1free + (JNIEnv *, jclass, jlongArray); + +/* + * Class: org_ldk_impl_bindings + * Method: C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new + * Signature: ([B[J)J + */ +JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1new + (JNIEnv *, jclass, jbyteArray, jlongArray); + +/* + * Class: org_ldk_impl_bindings + * Method: C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZ_1free + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free + * Signature: ([J)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_CVec_1C2Tuple_1TxidCVec_1C2Tuple_1u32ScriptZZZZ_1free + (JNIEnv *, jclass, jlongArray); + /* * Class: org_ldk_impl_bindings * Method: CVec_TransactionZ_free @@ -6839,6 +6959,22 @@ JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1latest_1 JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1funding_1txo (JNIEnv *, jclass, jlong); +/* + * Class: org_ldk_impl_bindings + * Method: ChannelMonitor_get_outputs_to_watch + * Signature: (J)[J + */ +JNIEXPORT jlongArray JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1get_1outputs_1to_1watch + (JNIEnv *, jclass, jlong); + +/* + * Class: org_ldk_impl_bindings + * Method: ChannelMonitor_load_outputs_to_watch + * Signature: (JJ)V + */ +JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_ChannelMonitor_1load_1outputs_1to_1watch + (JNIEnv *, jclass, jlong, jlong); + /* * Class: org_ldk_impl_bindings * Method: ChannelMonitor_get_and_clear_pending_monitor_events diff --git a/ts/bindings.c b/ts/bindings.c index 6a6178c5..d6b93137 100644 --- a/ts/bindings.c +++ b/ts/bindings.c @@ -1446,6 +1446,107 @@ int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_OutPointScript memcpy((uint8_t*)(b_arr + 4), b_var.data, b_var.datalen); return b_arr; } +uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_new(int32_t a, int8_tArray b) { + LDKC2Tuple_u32ScriptZ* ret = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + ret->a = a; + LDKCVec_u8Z b_ref; + b_ref.datalen = *((uint32_t*)b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(b_ref.data, (uint8_t*)(b + 4), b_ref.datalen); + ret->b = b_ref; + return (long)ret; +} +int32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_get_a(uint32_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + return tuple->a; +} +int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_u32ScriptZ_get_b(uint32_t ptr) { + LDKC2Tuple_u32ScriptZ *tuple = (LDKC2Tuple_u32ScriptZ*)(ptr & ~1); + LDKCVec_u8Z b_var = tuple->b; + int8_tArray b_arr = init_arr(b_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(b_arr + 4), b_var.data, b_var.datalen); + return b_arr; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_u32ScriptZZ_new(uint32_tArray elems) { + LDKCVec_C2Tuple_u32ScriptZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_u32ScriptZZ), "LDKCVec_C2Tuple_u32ScriptZZ"); + ret->datalen = *((uint32_t*)elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * ret->datalen, "LDKCVec_C2Tuple_u32ScriptZZ Data"); + uint32_t *java_elems = (uint32_t*)(elems + 4); + for (size_t i = 0; i < ret->datalen; i++) { + uint32_t arr_elem = java_elems[i]; + LDKC2Tuple_u32ScriptZ arr_elem_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)arr_elem) & ~1); + FREE((void*)arr_elem); + ret->data[i] = arr_elem_conv; + } + } + return (long)ret; +} +static inline LDKCVec_C2Tuple_u32ScriptZZ CVec_C2Tuple_u32ScriptZZ_clone(const LDKCVec_C2Tuple_u32ScriptZZ *orig) { + LDKCVec_C2Tuple_u32ScriptZZ ret = { .data = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ) * orig->datalen, "LDKCVec_C2Tuple_u32ScriptZZ clone bytes"), .datalen = orig->datalen }; + for (size_t i = 0; i < ret.datalen; i++) { + ret.data[i] = C2Tuple_u32ScriptZ_clone(&orig->data[i]); + } + return ret; +} +uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(int8_tArray a, uint32_tArray b) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + LDKThirtyTwoBytes a_ref; + CHECK(*((uint32_t*)a) == 32); + memcpy(a_ref.data, (uint8_t*)(a + 4), 32); + ret->a = a_ref; + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = *((uint32_t*)b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + uint32_t* b_vals = (uint32_t*)(b + 4); + for (size_t e = 0; e < b_constr.datalen; e++) { + uint32_t b_conv_30 = b_vals[e]; + LDKC2Tuple_u32ScriptZ b_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1); + FREE((void*)b_conv_30); + b_constr.data[e] = b_conv_30_conv; + } + ret->b = b_constr; + return (long)ret; +} +int8_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(uint32_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + int8_tArray a_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); + memcpy((uint8_t*)(a_arr + 4), tuple->a.data, 32); + return a_arr; +} +uint32_tArray __attribute__((visibility("default"))) TS_LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(uint32_t ptr) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ *tuple = (LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(ptr & ~1); + LDKCVec_C2Tuple_u32ScriptZZ b_var = tuple->b; + uint32_tArray b_arr = init_arr(b_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *b_arr_ptr = (uint32_t*)(b_arr + 4); + for (size_t e = 0; e < b_var.datalen; e++) { + long b_conv_30_ref = (long)(&b_var.data[e]) | 1; + b_arr_ptr[e] = b_conv_30_ref; + } + return b_arr; +} +uint32_t __attribute__((visibility("default"))) TS_LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_new(uint32_tArray elems) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ *ret = MALLOC(sizeof(LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ"); + ret->datalen = *((uint32_t*)elems); + if (ret->datalen == 0) { + ret->data = NULL; + } else { + ret->data = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ) * ret->datalen, "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Data"); + uint32_t *java_elems = (uint32_t*)(elems + 4); + for (size_t i = 0; i < ret->datalen; i++) { + uint32_t arr_elem = java_elems[i]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ arr_elem_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)arr_elem) & ~1); + FREE((void*)arr_elem); + ret->data[i] = arr_elem_conv; + } + } + return (long)ret; +} uint32_t __attribute__((visibility("default"))) TS_LDKC2Tuple_u32TxOutZ_new(int32_t a, uint32_t b) { LDKC2Tuple_u32TxOutZ* ret = MALLOC(sizeof(LDKC2Tuple_u32TxOutZ), "LDKC2Tuple_u32TxOutZ"); ret->a = a; @@ -1828,28 +1929,28 @@ long __attribute__((visibility("default"))) TS_LDKSign_new(/*TODO: JS Object Re return (long)res_ptr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_get_per_commitment_point(uint32_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_per_commitment_point)(this_arg_conv->this_arg, idx).compressed_form, 33); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_release_commitment_secret(uint32_t this_arg, int64_t idx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->release_commitment_secret)(this_arg_conv->this_arg, idx).data, 32); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_Sign_channel_keys_id(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->channel_keys_id)(this_arg_conv->this_arg).data, 32); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_commitment(uint32_t this_arg, uint32_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -1859,7 +1960,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_commi } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_holder_commitment_and_htlcs(uint32_t this_arg, uint32_t commitment_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKHolderCommitmentTransaction commitment_tx_conv; commitment_tx_conv.inner = (void*)(commitment_tx & (~1)); commitment_tx_conv.is_owned = false; @@ -1869,7 +1970,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_holder_commitment_ } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_justice_transaction(uint32_t this_arg, int8_tArray justice_tx, int64_t input, int64_t amount, int8_tArray per_commitment_key, uint32_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction justice_tx_ref; justice_tx_ref.datalen = *((uint32_t*)justice_tx); justice_tx_ref.data = MALLOC(justice_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1888,7 +1989,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_justice_transactio } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_htlc_transaction(uint32_t this_arg, int8_tArray htlc_tx, int64_t input, int64_t amount, int8_tArray per_commitment_point, uint32_t htlc) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction htlc_tx_ref; htlc_tx_ref.datalen = *((uint32_t*)htlc_tx); htlc_tx_ref.data = MALLOC(htlc_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1906,7 +2007,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_counterparty_htlc_ } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_closing_transaction(uint32_t this_arg, int8_tArray closing_tx) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKTransaction closing_tx_ref; closing_tx_ref.datalen = *((uint32_t*)closing_tx); closing_tx_ref.data = MALLOC(closing_tx_ref.datalen, "LDKTransaction Bytes"); @@ -1918,7 +2019,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_closing_transactio } uint32_t __attribute__((visibility("default"))) TS_Sign_sign_channel_announcement(uint32_t this_arg, uint32_t msg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -1928,7 +2029,7 @@ uint32_t __attribute__((visibility("default"))) TS_Sign_sign_channel_announceme } void __attribute__((visibility("default"))) TS_Sign_ready_channel(uint32_t this_arg, uint32_t channel_parameters) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelTransactionParameters channel_parameters_conv; channel_parameters_conv.inner = (void*)(channel_parameters & (~1)); channel_parameters_conv.is_owned = false; @@ -1936,7 +2037,7 @@ void __attribute__((visibility("default"))) TS_Sign_ready_channel(uint32_t this } int8_tArray __attribute__((visibility("default"))) TS_Sign_write(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->write)(this_arg_conv->this_arg); int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); @@ -1950,7 +2051,7 @@ LDKChannelPublicKeys LDKSign_set_get_pubkeys(LDKSign* this_arg) { return this_arg->pubkeys; } uint32_t __attribute__((visibility("default"))) TS_Sign_get_pubkeys(uint32_t this_arg) { - LDKSign* this_arg_conv = (LDKSign*)this_arg; + LDKSign* this_arg_conv = (LDKSign*)(((uint64_t)this_arg) & ~1); LDKChannelPublicKeys ret_var = LDKSign_set_get_pubkeys(this_arg_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. @@ -2299,7 +2400,7 @@ long __attribute__((visibility("default"))) TS_LDKWatch_new(/*TODO: JS Object R return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Watch_watch_channel(uint32_t this_arg, uint32_t funding_txo, uint32_t monitor) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -2314,7 +2415,7 @@ uint32_t __attribute__((visibility("default"))) TS_Watch_watch_channel(uint32_t } uint32_t __attribute__((visibility("default"))) TS_Watch_update_channel(uint32_t this_arg, uint32_t funding_txo, uint32_t update) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKOutPoint funding_txo_conv; funding_txo_conv.inner = (void*)(funding_txo & (~1)); funding_txo_conv.is_owned = (funding_txo & 1) || (funding_txo == 0); @@ -2329,7 +2430,7 @@ uint32_t __attribute__((visibility("default"))) TS_Watch_update_channel(uint32_ } uint32_tArray __attribute__((visibility("default"))) TS_Watch_release_pending_monitor_events(uint32_t this_arg) { - LDKWatch* this_arg_conv = (LDKWatch*)this_arg; + LDKWatch* this_arg_conv = (LDKWatch*)(((uint64_t)this_arg) & ~1); LDKCVec_MonitorEventZ ret_var = (this_arg_conv->release_pending_monitor_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -2385,7 +2486,7 @@ long __attribute__((visibility("default"))) TS_LDKBroadcasterInterface_new(/*TO return (long)res_ptr; } void __attribute__((visibility("default"))) TS_BroadcasterInterface_broadcast_transaction(uint32_t this_arg, int8_tArray tx) { - LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)this_arg; + LDKBroadcasterInterface* this_arg_conv = (LDKBroadcasterInterface*)(((uint64_t)this_arg) & ~1); LDKTransaction tx_ref; tx_ref.datalen = *((uint32_t*)tx); tx_ref.data = MALLOC(tx_ref.datalen, "LDKTransaction Bytes"); @@ -2512,14 +2613,14 @@ long __attribute__((visibility("default"))) TS_LDKKeysInterface_new(/*TODO: JS return (long)res_ptr; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_node_secret(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_node_secret)(this_arg_conv->this_arg).bytes, 32); return ret_arr; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_destination_script(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKCVec_u8Z ret_var = (this_arg_conv->get_destination_script)(this_arg_conv->this_arg); int8_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), ret_var.data, ret_var.datalen); @@ -2528,28 +2629,28 @@ int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_destina } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_shutdown_pubkey(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(33, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_shutdown_pubkey)(this_arg_conv->this_arg).compressed_form, 33); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_KeysInterface_get_channel_signer(uint32_t this_arg, jboolean inbound, int64_t channel_value_satoshis) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = (this_arg_conv->get_channel_signer)(this_arg_conv->this_arg, inbound, channel_value_satoshis); return (long)ret; } int8_tArray __attribute__((visibility("default"))) TS_KeysInterface_get_secure_random_bytes(uint32_t this_arg) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); int8_tArray ret_arr = init_arr(32, sizeof(uint8_t), "Native int8_tArray Bytes"); memcpy((uint8_t*)(ret_arr + 4), (this_arg_conv->get_secure_random_bytes)(this_arg_conv->this_arg).data, 32); return ret_arr; } uint32_t __attribute__((visibility("default"))) TS_KeysInterface_read_chan_signer(uint32_t this_arg, int8_tArray reader) { - LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)this_arg; + LDKKeysInterface* this_arg_conv = (LDKKeysInterface*)(((uint64_t)this_arg) & ~1); LDKu8slice reader_ref; reader_ref.datalen = *((uint32_t*)reader); reader_ref.data = (int8_t*)(reader + 4); @@ -2597,7 +2698,7 @@ long __attribute__((visibility("default"))) TS_LDKFeeEstimator_new(/*TODO: JS O return (long)res_ptr; } int32_t __attribute__((visibility("default"))) TS_FeeEstimator_get_est_sat_per_1000_weight(uint32_t this_arg, uint32_t confirmation_target) { - LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)this_arg; + LDKFeeEstimator* this_arg_conv = (LDKFeeEstimator*)(((uint64_t)this_arg) & ~1); LDKConfirmationTarget confirmation_target_conv = LDKConfirmationTarget_from_js(confirmation_target); int32_t ret_val = (this_arg_conv->get_est_sat_per_1000_weight)(this_arg_conv->this_arg, confirmation_target_conv); return ret_val; @@ -3737,7 +3838,7 @@ long __attribute__((visibility("default"))) TS_LDKMessageSendEventsProvider_new return (long)res_ptr; } uint32_tArray __attribute__((visibility("default"))) TS_MessageSendEventsProvider_get_and_clear_pending_msg_events(uint32_t this_arg) { - LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)this_arg; + LDKMessageSendEventsProvider* this_arg_conv = (LDKMessageSendEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_MessageSendEventZ ret_var = (this_arg_conv->get_and_clear_pending_msg_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -3803,7 +3904,7 @@ long __attribute__((visibility("default"))) TS_LDKEventsProvider_new(/*TODO: JS return (long)res_ptr; } uint32_tArray __attribute__((visibility("default"))) TS_EventsProvider_get_and_clear_pending_events(uint32_t this_arg) { - LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)this_arg; + LDKEventsProvider* this_arg_conv = (LDKEventsProvider*)(((uint64_t)this_arg) & ~1); LDKCVec_EventZ ret_var = (this_arg_conv->get_and_clear_pending_events)(this_arg_conv->this_arg); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -3860,7 +3961,7 @@ long __attribute__((visibility("default"))) TS_LDKAccess_new(/*TODO: JS Object return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Access_get_utxo(uint32_t this_arg, int8_tArray genesis_hash, int64_t short_channel_id) { - LDKAccess* this_arg_conv = (LDKAccess*)this_arg; + LDKAccess* this_arg_conv = (LDKAccess*)(((uint64_t)this_arg) & ~1); unsigned char genesis_hash_arr[32]; CHECK(*((uint32_t*)genesis_hash) == 32); memcpy(genesis_hash_arr, (uint8_t*)(genesis_hash + 4), 32); @@ -3920,7 +4021,7 @@ long __attribute__((visibility("default"))) TS_LDKListen_new(/*TODO: JS Object return (long)res_ptr; } void __attribute__((visibility("default"))) TS_Listen_block_connected(uint32_t this_arg, int8_tArray block, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); LDKu8slice block_ref; block_ref.datalen = *((uint32_t*)block); block_ref.data = (int8_t*)(block + 4); @@ -3928,7 +4029,7 @@ void __attribute__((visibility("default"))) TS_Listen_block_connected(uint32_t } void __attribute__((visibility("default"))) TS_Listen_block_disconnected(uint32_t this_arg, int8_tArray header, int32_t height) { - LDKListen* this_arg_conv = (LDKListen*)this_arg; + LDKListen* this_arg_conv = (LDKListen*)(((uint64_t)this_arg) & ~1); unsigned char header_arr[80]; CHECK(*((uint32_t*)header) == 80); memcpy(header_arr, (uint8_t*)(header + 4), 80); @@ -3997,7 +4098,7 @@ long __attribute__((visibility("default"))) TS_LDKFilter_new(/*TODO: JS Object return (long)res_ptr; } void __attribute__((visibility("default"))) TS_Filter_register_tx(uint32_t this_arg, int8_tArray txid, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); unsigned char txid_arr[32]; CHECK(*((uint32_t*)txid) == 32); memcpy(txid_arr, (uint8_t*)(txid + 4), 32); @@ -4009,7 +4110,7 @@ void __attribute__((visibility("default"))) TS_Filter_register_tx(uint32_t this } void __attribute__((visibility("default"))) TS_Filter_register_output(uint32_t this_arg, uint32_t outpoint, int8_tArray script_pubkey) { - LDKFilter* this_arg_conv = (LDKFilter*)this_arg; + LDKFilter* this_arg_conv = (LDKFilter*)(((uint64_t)this_arg) & ~1); LDKOutPoint outpoint_conv; outpoint_conv.inner = (void*)(outpoint & (~1)); outpoint_conv.is_owned = false; @@ -4108,7 +4209,7 @@ long __attribute__((visibility("default"))) TS_LDKPersist_new(/*TODO: JS Object return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_Persist_persist_new_channel(uint32_t this_arg, uint32_t id, uint32_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -4122,7 +4223,7 @@ uint32_t __attribute__((visibility("default"))) TS_Persist_persist_new_channel( } uint32_t __attribute__((visibility("default"))) TS_Persist_update_persisted_channel(uint32_t this_arg, uint32_t id, uint32_t update, uint32_t data) { - LDKPersist* this_arg_conv = (LDKPersist*)this_arg; + LDKPersist* this_arg_conv = (LDKPersist*)(((uint64_t)this_arg) & ~1); LDKOutPoint id_conv; id_conv.inner = (void*)(id & (~1)); id_conv.is_owned = (id & 1) || (id == 0); @@ -4510,7 +4611,7 @@ long __attribute__((visibility("default"))) TS_LDKChannelMessageHandler_new(/*T return (long)res_ptr; } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_open_channel(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4525,7 +4626,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_ope } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_accept_channel(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4540,7 +4641,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_acc } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_created(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4551,7 +4652,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4562,7 +4663,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_funding_locked(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4573,7 +4674,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_fun } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_shutdown(uint32_t this_arg, int8_tArray their_node_id, uint32_t their_features, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4587,7 +4688,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_shu } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_closing_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4598,7 +4699,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_clo } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_add_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4609,7 +4710,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fulfill_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4620,7 +4721,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fail_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4631,7 +4732,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fail_malformed_htlc(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4642,7 +4743,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_commitment_signed(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4653,7 +4754,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_com } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_revoke_and_ack(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4664,7 +4765,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_rev } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_update_fee(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4675,7 +4776,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_upd } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_announcement_signatures(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4686,7 +4787,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_ann } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_disconnected(uint32_t this_arg, int8_tArray their_node_id, jboolean no_connection_possible) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4694,7 +4795,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_disco } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_connected(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4705,7 +4806,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_peer_conne } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_channel_reestablish(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4716,7 +4817,7 @@ void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_cha } void __attribute__((visibility("default"))) TS_ChannelMessageHandler_handle_error(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)this_arg; + LDKChannelMessageHandler* this_arg_conv = (LDKChannelMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -4962,7 +5063,7 @@ long __attribute__((visibility("default"))) TS_LDKRoutingMessageHandler_new(/*T return (long)res_ptr; } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_node_announcement(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKNodeAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4972,7 +5073,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_channel_announcement(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4982,7 +5083,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_channel_update(uint32_t this_arg, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKChannelUpdate msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; @@ -4992,13 +5093,13 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } void __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_htlc_fail_channel_update(uint32_t this_arg, uint32_t update) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKHTLCFailChannelUpdate* update_conv = (LDKHTLCFailChannelUpdate*)update; (this_arg_conv->handle_htlc_fail_channel_update)(this_arg_conv->this_arg, update_conv); } uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_get_next_channel_announcements(uint32_t this_arg, int64_t starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ ret_var = (this_arg_conv->get_next_channel_announcements)(this_arg_conv->this_arg, starting_point, batch_amount); uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); @@ -5012,7 +5113,7 @@ uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_g } uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_get_next_node_announcements(uint32_t this_arg, int8_tArray starting_point, int8_t batch_amount) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey starting_point_ref; CHECK(*((uint32_t*)starting_point) == 33); memcpy(starting_point_ref.compressed_form, (uint8_t*)(starting_point + 4), 33); @@ -5034,7 +5135,7 @@ uint32_tArray __attribute__((visibility("default"))) TS_RoutingMessageHandler_g } void __attribute__((visibility("default"))) TS_RoutingMessageHandler_sync_routing_table(uint32_t this_arg, int8_tArray their_node_id, uint32_t init) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5045,7 +5146,7 @@ void __attribute__((visibility("default"))) TS_RoutingMessageHandler_sync_routi } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_reply_channel_range(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5059,7 +5160,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_reply_short_channel_ids_end(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5073,7 +5174,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_query_channel_range(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5087,7 +5188,7 @@ uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle } uint32_t __attribute__((visibility("default"))) TS_RoutingMessageHandler_handle_query_short_channel_ids(uint32_t this_arg, int8_tArray their_node_id, uint32_t msg) { - LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)this_arg; + LDKRoutingMessageHandler* this_arg_conv = (LDKRoutingMessageHandler*)(((uint64_t)this_arg) & ~1); LDKPublicKey their_node_id_ref; CHECK(*((uint32_t*)their_node_id) == 33); memcpy(their_node_id_ref.compressed_form, (uint8_t*)(their_node_id + 4), 33); @@ -5165,7 +5266,7 @@ long __attribute__((visibility("default"))) TS_LDKSocketDescriptor_new(/*TODO: return (long)res_ptr; } int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_send_data(uint32_t this_arg, int8_tArray data, jboolean resume_read) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); LDKu8slice data_ref; data_ref.datalen = *((uint32_t*)data); data_ref.data = (int8_t*)(data + 4); @@ -5174,12 +5275,12 @@ int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_send_data(ui } void __attribute__((visibility("default"))) TS_SocketDescriptor_disconnect_socket(uint32_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); (this_arg_conv->disconnect_socket)(this_arg_conv->this_arg); } int64_t __attribute__((visibility("default"))) TS_SocketDescriptor_hash(uint32_t this_arg) { - LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)this_arg; + LDKSocketDescriptor* this_arg_conv = (LDKSocketDescriptor*)(((uint64_t)this_arg) & ~1); int64_t ret_val = (this_arg_conv->hash)(this_arg_conv->this_arg); return ret_val; } @@ -6501,6 +6602,93 @@ void __attribute__((visibility("default"))) TS_C2Tuple_OutPointScriptZ_free(uin C2Tuple_OutPointScriptZ_free(_res_conv); } +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_clone(uint32_t orig) { + LDKC2Tuple_u32ScriptZ* orig_conv = (LDKC2Tuple_u32ScriptZ*)(orig & ~1); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_clone(orig_conv); + return (long)ret_ref; +} + +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_new(int32_t a, int8_tArray b) { + LDKCVec_u8Z b_ref; + b_ref.datalen = *((uint32_t*)b); + b_ref.data = MALLOC(b_ref.datalen, "LDKCVec_u8Z Bytes"); + memcpy(b_ref.data, (uint8_t*)(b + 4), b_ref.datalen); + LDKC2Tuple_u32ScriptZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_u32ScriptZ), "LDKC2Tuple_u32ScriptZ"); + *ret_ref = C2Tuple_u32ScriptZ_new(a, b_ref); + return (long)ret_ref; +} + +void __attribute__((visibility("default"))) TS_C2Tuple_u32ScriptZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_u32ScriptZ _res_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_u32ScriptZ_free(_res_conv); +} + +void __attribute__((visibility("default"))) TS_CVec_C2Tuple_u32ScriptZZ_free(uint32_tArray _res) { + LDKCVec_C2Tuple_u32ScriptZZ _res_constr; + _res_constr.datalen = *((uint32_t*)_res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + _res_constr.data = NULL; + uint32_t* _res_vals = (uint32_t*)(_res + 4); + for (size_t e = 0; e < _res_constr.datalen; e++) { + uint32_t _res_conv_30 = _res_vals[e]; + LDKC2Tuple_u32ScriptZ _res_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)_res_conv_30) & ~1); + FREE((void*)_res_conv_30); + _res_constr.data[e] = _res_conv_30_conv; + } + CVec_C2Tuple_u32ScriptZZ_free(_res_constr); +} + +uint32_t __attribute__((visibility("default"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(int8_tArray a, uint32_tArray b) { + LDKThirtyTwoBytes a_ref; + CHECK(*((uint32_t*)a) == 32); + memcpy(a_ref.data, (uint8_t*)(a + 4), 32); + LDKCVec_C2Tuple_u32ScriptZZ b_constr; + b_constr.datalen = *((uint32_t*)b); + if (b_constr.datalen > 0) + b_constr.data = MALLOC(b_constr.datalen * sizeof(LDKC2Tuple_u32ScriptZ), "LDKCVec_C2Tuple_u32ScriptZZ Elements"); + else + b_constr.data = NULL; + uint32_t* b_vals = (uint32_t*)(b + 4); + for (size_t e = 0; e < b_constr.datalen; e++) { + uint32_t b_conv_30 = b_vals[e]; + LDKC2Tuple_u32ScriptZ b_conv_30_conv = *(LDKC2Tuple_u32ScriptZ*)(((uint64_t)b_conv_30) & ~1); + FREE((void*)b_conv_30); + b_constr.data[e] = b_conv_30_conv; + } + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_ref = C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(a_ref, b_constr); + return (long)ret_ref; +} + +void __attribute__((visibility("default"))) TS_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(uint32_t _res) { + if ((_res & 1) != 0) return; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res) & ~1); + FREE((void*)_res); + C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(_res_conv); +} + +void __attribute__((visibility("default"))) TS_CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(uint32_tArray _res) { + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ _res_constr; + _res_constr.datalen = *((uint32_t*)_res); + if (_res_constr.datalen > 0) + _res_constr.data = MALLOC(_res_constr.datalen * sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ Elements"); + else + _res_constr.data = NULL; + uint32_t* _res_vals = (uint32_t*)(_res + 4); + for (size_t c = 0; c < _res_constr.datalen; c++) { + uint32_t _res_conv_54 = _res_vals[c]; + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res_conv_54_conv = *(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ*)(((uint64_t)_res_conv_54) & ~1); + FREE((void*)_res_conv_54); + _res_constr.data[c] = _res_conv_54_conv; + } + CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res_constr); +} + void __attribute__((visibility("default"))) TS_CVec_TransactionZ_free(ptrArray _res) { LDKCVec_TransactionZ _res_constr; _res_constr.datalen = *((uint32_t*)_res); @@ -8565,11 +8753,11 @@ void __attribute__((visibility("default"))) TS_Logger_free(uint32_t this_ptr) { Logger_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_free(uint32_t this_ptr) { - LDKChannelHandshakeConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_free(uint32_t this_obj) { + LDKChannelHandshakeConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeConfig_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_get_minimum_depth(uint32_t this_ptr) { @@ -8653,11 +8841,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelHandshakeConfig_defau return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_free(uint32_t this_ptr) { - LDKChannelHandshakeLimits this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelHandshakeLimits_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_free(uint32_t this_obj) { + LDKChannelHandshakeLimits this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelHandshakeLimits_free(this_obj_conv); } int64_t __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_get_min_funding_satoshis(uint32_t this_ptr) { @@ -8846,11 +9034,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelHandshakeLimits_defau return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelConfig_free(uint32_t this_ptr) { - LDKChannelConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelConfig_free(uint32_t this_obj) { + LDKChannelConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelConfig_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_ChannelConfig_get_fee_proportional_millionths(uint32_t this_ptr) { @@ -8954,11 +9142,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelConfig_read(int8_tArr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_UserConfig_free(uint32_t this_ptr) { - LDKUserConfig this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UserConfig_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UserConfig_free(uint32_t this_obj) { + LDKUserConfig this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UserConfig_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UserConfig_get_own_channel_config(uint32_t this_ptr) { @@ -9138,11 +9326,11 @@ void __attribute__((visibility("default"))) TS_FeeEstimator_free(uint32_t this_ FeeEstimator_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_ChainMonitor_free(uint32_t this_ptr) { - LDKChainMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainMonitor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChainMonitor_free(uint32_t this_obj) { + LDKChainMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainMonitor_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_ChainMonitor_block_connected(uint32_t this_arg, int8_tArray header, uint32_tArray txdata, int32_t height) { @@ -9181,12 +9369,18 @@ void __attribute__((visibility("default"))) TS_ChainMonitor_block_disconnected( } uint32_t __attribute__((visibility("default"))) TS_ChainMonitor_new(uint32_t chain_source, uint32_t broadcaster, uint32_t logger, uint32_t feeest, uint32_t persister) { - LDKFilter* chain_source_conv = (LDKFilter*)chain_source; + LDKFilter *chain_source_conv_ptr = NULL; + if (chain_source != 0) { + LDKFilter chain_source_conv; + chain_source_conv = *(LDKFilter*)(((uint64_t)chain_source) & ~1); + chain_source_conv_ptr = MALLOC(sizeof(LDKFilter), "LDKFilter"); + *chain_source_conv_ptr = chain_source_conv; + } LDKBroadcasterInterface broadcaster_conv = *(LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); LDKFeeEstimator feeest_conv = *(LDKFeeEstimator*)(((uint64_t)feeest) & ~1); LDKPersist persister_conv = *(LDKPersist*)(((uint64_t)persister) & ~1); - LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv, broadcaster_conv, logger_conv, feeest_conv, persister_conv); + LDKChainMonitor ret_var = ChainMonitor_new(chain_source_conv_ptr, broadcaster_conv, logger_conv, feeest_conv, persister_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -9214,11 +9408,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChainMonitor_as_EventsProvid return (long)ret; } -void __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_free(uint32_t this_ptr) { - LDKChannelMonitorUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitorUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_free(uint32_t this_obj) { + LDKChannelMonitorUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitorUpdate_free(this_obj_conv); } int64_t __attribute__((visibility("default"))) TS_ChannelMonitorUpdate_get_update_id(uint32_t this_ptr) { @@ -9276,11 +9470,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitorUpdateErr_clon return ret_conv; } -void __attribute__((visibility("default"))) TS_MonitorUpdateError_free(uint32_t this_ptr) { - LDKMonitorUpdateError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MonitorUpdateError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_MonitorUpdateError_free(uint32_t this_obj) { + LDKMonitorUpdateError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MonitorUpdateError_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_MonitorUpdateError_clone(uint32_t orig) { @@ -9312,11 +9506,11 @@ uint32_t __attribute__((visibility("default"))) TS_MonitorEvent_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_HTLCUpdate_free(uint32_t this_ptr) { - LDKHTLCUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HTLCUpdate_free(uint32_t this_obj) { + LDKHTLCUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCUpdate_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_HTLCUpdate_clone(uint32_t orig) { @@ -9353,11 +9547,11 @@ uint32_t __attribute__((visibility("default"))) TS_HTLCUpdate_read(int8_tArray return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelMonitor_free(uint32_t this_ptr) { - LDKChannelMonitor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelMonitor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelMonitor_free(uint32_t this_obj) { + LDKChannelMonitor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelMonitor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_clone(uint32_t orig) { @@ -9392,9 +9586,9 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_update_monito LDKChannelMonitorUpdate updates_conv; updates_conv.inner = (void*)(updates & (~1)); updates_conv.is_owned = false; - LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)broadcaster; - LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)fee_estimator; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKBroadcasterInterface* broadcaster_conv = (LDKBroadcasterInterface*)(((uint64_t)broadcaster) & ~1); + LDKFeeEstimator* fee_estimator_conv = (LDKFeeEstimator*)(((uint64_t)fee_estimator) & ~1); + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCResult_NoneMonitorUpdateErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneMonitorUpdateErrorZ), "LDKCResult_NoneMonitorUpdateErrorZ"); *ret_conv = ChannelMonitor_update_monitor(&this_arg_conv, &updates_conv, broadcaster_conv, fee_estimator_conv, logger_conv); return (long)ret_conv; @@ -9417,6 +9611,30 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelMonitor_get_funding_t return (long)ret_ref; } +uint32_tArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_outputs_to_watch(uint32_t this_arg) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ ret_var = ChannelMonitor_get_outputs_to_watch(&this_arg_conv); + uint32_tArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native uint32_tArray Bytes"); + uint32_t *ret_arr_ptr = (uint32_t*)(ret_arr + 4); + for (size_t c = 0; c < ret_var.datalen; c++) { + LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ* ret_conv_54_ref = MALLOC(sizeof(LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ), "LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ"); + *ret_conv_54_ref = ret_var.data[c]; + ret_arr_ptr[c] = (long)ret_conv_54_ref; + } + FREE(ret_var.data); + return ret_arr; +} + +void __attribute__((visibility("default"))) TS_ChannelMonitor_load_outputs_to_watch(uint32_t this_arg, uint32_t filter) { + LDKChannelMonitor this_arg_conv; + this_arg_conv.inner = (void*)(this_arg & (~1)); + this_arg_conv.is_owned = false; + LDKFilter* filter_conv = (LDKFilter*)(((uint64_t)filter) & ~1); + ChannelMonitor_load_outputs_to_watch(&this_arg_conv, filter_conv); +} + uint32_tArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_and_clear_pending_monitor_events(uint32_t this_arg) { LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); @@ -9455,7 +9673,7 @@ ptrArray __attribute__((visibility("default"))) TS_ChannelMonitor_get_latest_ho LDKChannelMonitor this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKLogger* logger_conv = (LDKLogger*)logger; + LDKLogger* logger_conv = (LDKLogger*)(((uint64_t)logger) & ~1); LDKCVec_TransactionZ ret_var = ChannelMonitor_get_latest_holder_commitment_txn(&this_arg_conv, logger_conv); ptrArray ret_arr = init_arr(ret_var.datalen, sizeof(uint32_t), "Native ptrArray Bytes"); int8_tArray *ret_arr_ptr = (int8_tArray*)(ret_arr + 4); @@ -9531,17 +9749,17 @@ uint32_t __attribute__((visibility("default"))) TS_C2Tuple_BlockHashChannelMoni LDKu8slice ser_ref; ser_ref.datalen = *((uint32_t*)ser); ser_ref.data = (int8_t*)(ser + 4); - LDKKeysInterface* arg_conv = (LDKKeysInterface*)arg; + LDKKeysInterface* arg_conv = (LDKKeysInterface*)(((uint64_t)arg) & ~1); LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ), "LDKCResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ"); *ret_conv = C2Tuple_BlockHashChannelMonitorZ_read(ser_ref, arg_conv); return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_OutPoint_free(uint32_t this_ptr) { - LDKOutPoint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OutPoint_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_OutPoint_free(uint32_t this_obj) { + LDKOutPoint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OutPoint_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_OutPoint_get_txid(uint32_t this_ptr) { @@ -9635,11 +9853,11 @@ uint32_t __attribute__((visibility("default"))) TS_OutPoint_read(int8_tArray se return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_free(uint32_t this_ptr) { - LDKDelayedPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DelayedPaymentOutputDescriptor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_free(uint32_t this_obj) { + LDKDelayedPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DelayedPaymentOutputDescriptor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescriptor_get_outpoint(uint32_t this_ptr) { @@ -9803,11 +10021,11 @@ uint32_t __attribute__((visibility("default"))) TS_DelayedPaymentOutputDescript return ret_ref; } -void __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_free(uint32_t this_ptr) { - LDKStaticPaymentOutputDescriptor this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - StaticPaymentOutputDescriptor_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_free(uint32_t this_obj) { + LDKStaticPaymentOutputDescriptor this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + StaticPaymentOutputDescriptor_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_StaticPaymentOutputDescriptor_get_outpoint(uint32_t this_ptr) { @@ -9946,7 +10164,7 @@ uint32_t __attribute__((visibility("default"))) TS_SpendableOutputDescriptor_re } uint32_t __attribute__((visibility("default"))) TS_Sign_clone(uint32_t orig) { - LDKSign* orig_conv = (LDKSign*)orig; + LDKSign* orig_conv = (LDKSign*)(((uint64_t)orig) & ~1); LDKSign* ret = MALLOC(sizeof(LDKSign), "LDKSign"); *ret = Sign_clone(orig_conv); return (long)ret; @@ -9966,11 +10184,11 @@ void __attribute__((visibility("default"))) TS_KeysInterface_free(uint32_t this KeysInterface_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_InMemorySigner_free(uint32_t this_ptr) { - LDKInMemorySigner this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InMemorySigner_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_InMemorySigner_free(uint32_t this_obj) { + LDKInMemorySigner this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InMemorySigner_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_InMemorySigner_get_funding_key(uint32_t this_ptr) { @@ -10262,11 +10480,11 @@ uint32_t __attribute__((visibility("default"))) TS_InMemorySigner_read(int8_tAr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_KeysManager_free(uint32_t this_ptr) { - LDKKeysManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - KeysManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_KeysManager_free(uint32_t this_obj) { + LDKKeysManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + KeysManager_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_KeysManager_new(int8_tArray seed, int64_t starting_time_secs, int32_t starting_time_nanos) { @@ -10350,18 +10568,18 @@ uint32_t __attribute__((visibility("default"))) TS_KeysManager_as_KeysInterface return (long)ret; } -void __attribute__((visibility("default"))) TS_ChannelManager_free(uint32_t this_ptr) { - LDKChannelManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelManager_free(uint32_t this_obj) { + LDKChannelManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManager_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_ChainParameters_free(uint32_t this_ptr) { - LDKChainParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChainParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChainParameters_free(uint32_t this_obj) { + LDKChainParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChainParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChainParameters_get_network(uint32_t this_ptr) { @@ -10429,11 +10647,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChainParameters_new(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelDetails_free(uint32_t this_ptr) { - LDKChannelDetails this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelDetails_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelDetails_free(uint32_t this_obj) { + LDKChannelDetails this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelDetails_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelDetails_get_channel_id(uint32_t this_ptr) { @@ -10928,11 +11146,11 @@ int8_tArray __attribute__((visibility("default"))) TS_ChannelManager_write(uint return ret_arr; } -void __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_free(uint32_t this_ptr) { - LDKChannelManagerReadArgs this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelManagerReadArgs_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_free(uint32_t this_obj) { + LDKChannelManagerReadArgs this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelManagerReadArgs_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelManagerReadArgs_get_keys_manager(uint32_t this_ptr) { @@ -11087,11 +11305,11 @@ uint32_t __attribute__((visibility("default"))) TS_C2Tuple_BlockHashChannelMana return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DecodeError_free(uint32_t this_ptr) { - LDKDecodeError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DecodeError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DecodeError_free(uint32_t this_obj) { + LDKDecodeError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DecodeError_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DecodeError_clone(uint32_t orig) { @@ -11108,11 +11326,11 @@ uint32_t __attribute__((visibility("default"))) TS_DecodeError_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_Init_free(uint32_t this_ptr) { - LDKInit this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Init_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Init_free(uint32_t this_obj) { + LDKInit this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Init_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_Init_get_features(uint32_t this_ptr) { @@ -11169,11 +11387,11 @@ uint32_t __attribute__((visibility("default"))) TS_Init_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_ErrorMessage_free(uint32_t this_ptr) { - LDKErrorMessage this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErrorMessage_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ErrorMessage_free(uint32_t this_obj) { + LDKErrorMessage this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErrorMessage_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ErrorMessage_get_channel_id(uint32_t this_ptr) { @@ -11247,11 +11465,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErrorMessage_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_Ping_free(uint32_t this_ptr) { - LDKPing this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Ping_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Ping_free(uint32_t this_obj) { + LDKPing this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Ping_free(this_obj_conv); } int16_t __attribute__((visibility("default"))) TS_Ping_get_ponglen(uint32_t this_ptr) { @@ -11309,11 +11527,11 @@ uint32_t __attribute__((visibility("default"))) TS_Ping_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_Pong_free(uint32_t this_ptr) { - LDKPong this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Pong_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Pong_free(uint32_t this_obj) { + LDKPong this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Pong_free(this_obj_conv); } int16_t __attribute__((visibility("default"))) TS_Pong_get_byteslen(uint32_t this_ptr) { @@ -11356,11 +11574,11 @@ uint32_t __attribute__((visibility("default"))) TS_Pong_clone(uint32_t orig) { return ret_ref; } -void __attribute__((visibility("default"))) TS_OpenChannel_free(uint32_t this_ptr) { - LDKOpenChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - OpenChannel_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_OpenChannel_free(uint32_t this_obj) { + LDKOpenChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + OpenChannel_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_OpenChannel_get_chain_hash(uint32_t this_ptr) { @@ -11679,11 +11897,11 @@ uint32_t __attribute__((visibility("default"))) TS_OpenChannel_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_AcceptChannel_free(uint32_t this_ptr) { - LDKAcceptChannel this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AcceptChannel_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_AcceptChannel_free(uint32_t this_obj) { + LDKAcceptChannel this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AcceptChannel_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_AcceptChannel_get_temporary_channel_id(uint32_t this_ptr) { @@ -11938,11 +12156,11 @@ uint32_t __attribute__((visibility("default"))) TS_AcceptChannel_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingCreated_free(uint32_t this_ptr) { - LDKFundingCreated this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingCreated_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingCreated_free(uint32_t this_obj) { + LDKFundingCreated this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingCreated_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingCreated_get_temporary_channel_id(uint32_t this_ptr) { @@ -12051,11 +12269,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingCreated_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingSigned_free(uint32_t this_ptr) { - LDKFundingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingSigned_free(uint32_t this_obj) { + LDKFundingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingSigned_get_channel_id(uint32_t this_ptr) { @@ -12127,11 +12345,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingSigned_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_FundingLocked_free(uint32_t this_ptr) { - LDKFundingLocked this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - FundingLocked_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_FundingLocked_free(uint32_t this_obj) { + LDKFundingLocked this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + FundingLocked_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_FundingLocked_get_channel_id(uint32_t this_ptr) { @@ -12203,11 +12421,11 @@ uint32_t __attribute__((visibility("default"))) TS_FundingLocked_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_Shutdown_free(uint32_t this_ptr) { - LDKShutdown this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Shutdown_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Shutdown_free(uint32_t this_obj) { + LDKShutdown this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Shutdown_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_Shutdown_get_channel_id(uint32_t this_ptr) { @@ -12282,11 +12500,11 @@ uint32_t __attribute__((visibility("default"))) TS_Shutdown_clone(uint32_t orig return ret_ref; } -void __attribute__((visibility("default"))) TS_ClosingSigned_free(uint32_t this_ptr) { - LDKClosingSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ClosingSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ClosingSigned_free(uint32_t this_obj) { + LDKClosingSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ClosingSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ClosingSigned_get_channel_id(uint32_t this_ptr) { @@ -12373,11 +12591,11 @@ uint32_t __attribute__((visibility("default"))) TS_ClosingSigned_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateAddHTLC_free(uint32_t this_ptr) { - LDKUpdateAddHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateAddHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateAddHTLC_free(uint32_t this_obj) { + LDKUpdateAddHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateAddHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateAddHTLC_get_channel_id(uint32_t this_ptr) { @@ -12477,11 +12695,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateAddHTLC_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_free(uint32_t this_ptr) { - LDKUpdateFulfillHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFulfillHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_free(uint32_t this_obj) { + LDKUpdateFulfillHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFulfillHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_get_channel_id(uint32_t this_ptr) { @@ -12568,11 +12786,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFulfillHTLC_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFailHTLC_free(uint32_t this_ptr) { - LDKUpdateFailHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFailHTLC_free(uint32_t this_obj) { + LDKUpdateFailHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFailHTLC_get_channel_id(uint32_t this_ptr) { @@ -12623,11 +12841,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFailHTLC_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_free(uint32_t this_ptr) { - LDKUpdateFailMalformedHTLC this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFailMalformedHTLC_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_free(uint32_t this_obj) { + LDKUpdateFailMalformedHTLC this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFailMalformedHTLC_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_get_channel_id(uint32_t this_ptr) { @@ -12693,11 +12911,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFailMalformedHTLC_clon return ret_ref; } -void __attribute__((visibility("default"))) TS_CommitmentSigned_free(uint32_t this_ptr) { - LDKCommitmentSigned this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentSigned_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentSigned_free(uint32_t this_obj) { + LDKCommitmentSigned this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentSigned_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_CommitmentSigned_get_channel_id(uint32_t this_ptr) { @@ -12804,11 +13022,11 @@ uint32_t __attribute__((visibility("default"))) TS_CommitmentSigned_clone(uint3 return ret_ref; } -void __attribute__((visibility("default"))) TS_RevokeAndACK_free(uint32_t this_ptr) { - LDKRevokeAndACK this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RevokeAndACK_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RevokeAndACK_free(uint32_t this_obj) { + LDKRevokeAndACK this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RevokeAndACK_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RevokeAndACK_get_channel_id(uint32_t this_ptr) { @@ -12902,11 +13120,11 @@ uint32_t __attribute__((visibility("default"))) TS_RevokeAndACK_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_UpdateFee_free(uint32_t this_ptr) { - LDKUpdateFee this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UpdateFee_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UpdateFee_free(uint32_t this_obj) { + LDKUpdateFee this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UpdateFee_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UpdateFee_get_channel_id(uint32_t this_ptr) { @@ -12971,11 +13189,11 @@ uint32_t __attribute__((visibility("default"))) TS_UpdateFee_clone(uint32_t ori return ret_ref; } -void __attribute__((visibility("default"))) TS_DataLossProtect_free(uint32_t this_ptr) { - LDKDataLossProtect this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DataLossProtect_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DataLossProtect_free(uint32_t this_obj) { + LDKDataLossProtect this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DataLossProtect_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_DataLossProtect_get_your_last_per_commitment_secret(uint32_t this_ptr) { @@ -13047,11 +13265,11 @@ uint32_t __attribute__((visibility("default"))) TS_DataLossProtect_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelReestablish_free(uint32_t this_ptr) { - LDKChannelReestablish this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelReestablish_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelReestablish_free(uint32_t this_obj) { + LDKChannelReestablish this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelReestablish_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelReestablish_get_channel_id(uint32_t this_ptr) { @@ -13117,11 +13335,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelReestablish_clone(uin return ret_ref; } -void __attribute__((visibility("default"))) TS_AnnouncementSignatures_free(uint32_t this_ptr) { - LDKAnnouncementSignatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - AnnouncementSignatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_AnnouncementSignatures_free(uint32_t this_obj) { + LDKAnnouncementSignatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + AnnouncementSignatures_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_AnnouncementSignatures_get_channel_id(uint32_t this_ptr) { @@ -13263,11 +13481,11 @@ uint32_t __attribute__((visibility("default"))) TS_Result_read(int8_tArray ser) return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_free(uint32_t this_ptr) { - LDKUnsignedNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedNodeAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_free(uint32_t this_obj) { + LDKUnsignedNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedNodeAnnouncement_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_get_features(uint32_t this_ptr) { @@ -13401,11 +13619,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedNodeAnnouncement_clo return ret_ref; } -void __attribute__((visibility("default"))) TS_NodeAnnouncement_free(uint32_t this_ptr) { - LDKNodeAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeAnnouncement_free(uint32_t this_obj) { + LDKNodeAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncement_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_NodeAnnouncement_get_signature(uint32_t this_ptr) { @@ -13484,11 +13702,11 @@ uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncement_clone(uint3 return ret_ref; } -void __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_free(uint32_t this_ptr) { - LDKUnsignedChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_free(uint32_t this_obj) { + LDKUnsignedChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelAnnouncement_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_get_features(uint32_t this_ptr) { @@ -13640,11 +13858,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelAnnouncement_ return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelAnnouncement_free(uint32_t this_ptr) { - LDKChannelAnnouncement this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelAnnouncement_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelAnnouncement_free(uint32_t this_obj) { + LDKChannelAnnouncement this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelAnnouncement_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelAnnouncement_get_node_signature_1(uint32_t this_ptr) { @@ -13789,11 +14007,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelAnnouncement_clone(ui return ret_ref; } -void __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_free(uint32_t this_ptr) { - LDKUnsignedChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - UnsignedChannelUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_free(uint32_t this_obj) { + LDKUnsignedChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + UnsignedChannelUpdate_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_get_chain_hash(uint32_t this_ptr) { @@ -13934,11 +14152,11 @@ uint32_t __attribute__((visibility("default"))) TS_UnsignedChannelUpdate_clone( return ret_ref; } -void __attribute__((visibility("default"))) TS_ChannelUpdate_free(uint32_t this_ptr) { - LDKChannelUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelUpdate_free(uint32_t this_obj) { + LDKChannelUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelUpdate_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelUpdate_get_signature(uint32_t this_ptr) { @@ -14017,11 +14235,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelUpdate_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_QueryChannelRange_free(uint32_t this_ptr) { - LDKQueryChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryChannelRange_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_QueryChannelRange_free(uint32_t this_obj) { + LDKQueryChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryChannelRange_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_QueryChannelRange_get_chain_hash(uint32_t this_ptr) { @@ -14101,11 +14319,11 @@ uint32_t __attribute__((visibility("default"))) TS_QueryChannelRange_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_ReplyChannelRange_free(uint32_t this_ptr) { - LDKReplyChannelRange this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyChannelRange_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ReplyChannelRange_free(uint32_t this_obj) { + LDKReplyChannelRange this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyChannelRange_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ReplyChannelRange_get_chain_hash(uint32_t this_ptr) { @@ -14229,11 +14447,11 @@ uint32_t __attribute__((visibility("default"))) TS_ReplyChannelRange_clone(uint return ret_ref; } -void __attribute__((visibility("default"))) TS_QueryShortChannelIds_free(uint32_t this_ptr) { - LDKQueryShortChannelIds this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - QueryShortChannelIds_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_QueryShortChannelIds_free(uint32_t this_obj) { + LDKQueryShortChannelIds this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + QueryShortChannelIds_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_QueryShortChannelIds_get_chain_hash(uint32_t this_ptr) { @@ -14312,11 +14530,11 @@ uint32_t __attribute__((visibility("default"))) TS_QueryShortChannelIds_clone(u return ret_ref; } -void __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_free(uint32_t this_ptr) { - LDKReplyShortChannelIdsEnd this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ReplyShortChannelIdsEnd_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_free(uint32_t this_obj) { + LDKReplyShortChannelIdsEnd this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ReplyShortChannelIdsEnd_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_get_chain_hash(uint32_t this_ptr) { @@ -14381,11 +14599,11 @@ uint32_t __attribute__((visibility("default"))) TS_ReplyShortChannelIdsEnd_clon return ret_ref; } -void __attribute__((visibility("default"))) TS_GossipTimestampFilter_free(uint32_t this_ptr) { - LDKGossipTimestampFilter this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - GossipTimestampFilter_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_GossipTimestampFilter_free(uint32_t this_obj) { + LDKGossipTimestampFilter this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + GossipTimestampFilter_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_GossipTimestampFilter_get_chain_hash(uint32_t this_ptr) { @@ -14480,11 +14698,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErrorAction_clone(uint32_t o return ret_ref; } -void __attribute__((visibility("default"))) TS_LightningError_free(uint32_t this_ptr) { - LDKLightningError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LightningError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_LightningError_free(uint32_t this_obj) { + LDKLightningError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LightningError_free(this_obj_conv); } jstring __attribute__((visibility("default"))) TS_LightningError_get_err(uint32_t this_ptr) { @@ -14557,11 +14775,11 @@ uint32_t __attribute__((visibility("default"))) TS_LightningError_clone(uint32_ return ret_ref; } -void __attribute__((visibility("default"))) TS_CommitmentUpdate_free(uint32_t this_ptr) { - LDKCommitmentUpdate this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentUpdate_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentUpdate_free(uint32_t this_obj) { + LDKCommitmentUpdate this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentUpdate_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_CommitmentUpdate_set_update_add_htlcs(uint32_t this_ptr, uint32_tArray val) { @@ -15444,11 +15662,11 @@ int8_tArray __attribute__((visibility("default"))) TS_GossipTimestampFilter_wri return ret_arr; } -void __attribute__((visibility("default"))) TS_IgnoringMessageHandler_free(uint32_t this_ptr) { - LDKIgnoringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - IgnoringMessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_IgnoringMessageHandler_free(uint32_t this_obj) { + LDKIgnoringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + IgnoringMessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_IgnoringMessageHandler_new() { @@ -15480,11 +15698,11 @@ uint32_t __attribute__((visibility("default"))) TS_IgnoringMessageHandler_as_Ro return (long)ret; } -void __attribute__((visibility("default"))) TS_ErroringMessageHandler_free(uint32_t this_ptr) { - LDKErroringMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ErroringMessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ErroringMessageHandler_free(uint32_t this_obj) { + LDKErroringMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ErroringMessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ErroringMessageHandler_new() { @@ -15516,11 +15734,11 @@ uint32_t __attribute__((visibility("default"))) TS_ErroringMessageHandler_as_Ch return (long)ret; } -void __attribute__((visibility("default"))) TS_MessageHandler_free(uint32_t this_ptr) { - LDKMessageHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - MessageHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_MessageHandler_free(uint32_t this_obj) { + LDKMessageHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + MessageHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_MessageHandler_get_chan_handler(uint32_t this_ptr) { @@ -15569,7 +15787,7 @@ uint32_t __attribute__((visibility("default"))) TS_MessageHandler_new(uint32_t } uint32_t __attribute__((visibility("default"))) TS_SocketDescriptor_clone(uint32_t orig) { - LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)orig; + LDKSocketDescriptor* orig_conv = (LDKSocketDescriptor*)(((uint64_t)orig) & ~1); LDKSocketDescriptor* ret = MALLOC(sizeof(LDKSocketDescriptor), "LDKSocketDescriptor"); *ret = SocketDescriptor_clone(orig_conv); return (long)ret; @@ -15582,11 +15800,11 @@ void __attribute__((visibility("default"))) TS_SocketDescriptor_free(uint32_t t SocketDescriptor_free(this_ptr_conv); } -void __attribute__((visibility("default"))) TS_PeerHandleError_free(uint32_t this_ptr) { - LDKPeerHandleError this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerHandleError_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_PeerHandleError_free(uint32_t this_obj) { + LDKPeerHandleError this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerHandleError_free(this_obj_conv); } jboolean __attribute__((visibility("default"))) TS_PeerHandleError_get_no_connection_possible(uint32_t this_ptr) { @@ -15629,11 +15847,11 @@ uint32_t __attribute__((visibility("default"))) TS_PeerHandleError_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_PeerManager_free(uint32_t this_ptr) { - LDKPeerManager this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - PeerManager_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_PeerManager_free(uint32_t this_obj) { + LDKPeerManager this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + PeerManager_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_PeerManager_new(uint32_t message_handler, int8_tArray our_node_secret, int8_tArray ephemeral_random_data, uint32_t logger) { @@ -15702,7 +15920,7 @@ uint32_t __attribute__((visibility("default"))) TS_PeerManager_write_buffer_spa LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); LDKCResult_NonePeerHandleErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NonePeerHandleErrorZ), "LDKCResult_NonePeerHandleErrorZ"); *ret_conv = PeerManager_write_buffer_space_avail(&this_arg_conv, descriptor_conv); return (long)ret_conv; @@ -15712,7 +15930,7 @@ uint32_t __attribute__((visibility("default"))) TS_PeerManager_read_event(uint3 LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)peer_descriptor; + LDKSocketDescriptor* peer_descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)peer_descriptor) & ~1); LDKu8slice data_ref; data_ref.datalen = *((uint32_t*)data); data_ref.data = (int8_t*)(data + 4); @@ -15732,7 +15950,7 @@ void __attribute__((visibility("default"))) TS_PeerManager_socket_disconnected( LDKPeerManager this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)descriptor; + LDKSocketDescriptor* descriptor_conv = (LDKSocketDescriptor*)(((uint64_t)descriptor) & ~1); PeerManager_socket_disconnected(&this_arg_conv, descriptor_conv); } @@ -15814,11 +16032,11 @@ uint32_t __attribute__((visibility("default"))) TS_derive_public_revocation_key return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_TxCreationKeys_free(uint32_t this_ptr) { - LDKTxCreationKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TxCreationKeys_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_TxCreationKeys_free(uint32_t this_obj) { + LDKTxCreationKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TxCreationKeys_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_TxCreationKeys_get_per_commitment_point(uint32_t this_ptr) { @@ -15976,11 +16194,11 @@ uint32_t __attribute__((visibility("default"))) TS_TxCreationKeys_read(int8_tAr return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelPublicKeys_free(uint32_t this_ptr) { - LDKChannelPublicKeys this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelPublicKeys_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelPublicKeys_free(uint32_t this_obj) { + LDKChannelPublicKeys this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelPublicKeys_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_ChannelPublicKeys_get_funding_pubkey(uint32_t this_ptr) { @@ -16188,11 +16406,11 @@ int8_tArray __attribute__((visibility("default"))) TS_get_revokeable_redeemscri return ret_arr; } -void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_free(uint32_t this_ptr) { - LDKHTLCOutputInCommitment this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HTLCOutputInCommitment_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_free(uint32_t this_obj) { + LDKHTLCOutputInCommitment this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HTLCOutputInCommitment_free(this_obj_conv); } jboolean __attribute__((visibility("default"))) TS_HTLCOutputInCommitment_get_offered(uint32_t this_ptr) { @@ -16342,11 +16560,11 @@ int8_tArray __attribute__((visibility("default"))) TS_build_htlc_transaction(in return ret_arr; } -void __attribute__((visibility("default"))) TS_ChannelTransactionParameters_free(uint32_t this_ptr) { - LDKChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelTransactionParameters_free(uint32_t this_obj) { + LDKChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters_get_holder_pubkeys(uint32_t this_ptr) { @@ -16491,11 +16709,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters return ret_ref; } -void __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_free(uint32_t this_ptr) { - LDKCounterpartyChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CounterpartyChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_free(uint32_t this_obj) { + LDKCounterpartyChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CounterpartyChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_CounterpartyChannelTransactionParameters_get_pubkeys(uint32_t this_ptr) { @@ -16643,11 +16861,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelTransactionParameters return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_free(uint32_t this_ptr) { - LDKDirectedChannelTransactionParameters this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectedChannelTransactionParameters_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_free(uint32_t this_obj) { + LDKDirectedChannelTransactionParameters this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectedChannelTransactionParameters_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_DirectedChannelTransactionParameters_broadcaster_pubkeys(uint32_t this_arg) { @@ -16708,11 +16926,11 @@ uint32_t __attribute__((visibility("default"))) TS_DirectedChannelTransactionPa return ret_ref; } -void __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_free(uint32_t this_ptr) { - LDKHolderCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - HolderCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_free(uint32_t this_obj) { + LDKHolderCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + HolderCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_get_counterparty_sig(uint32_t this_ptr) { @@ -16827,11 +17045,11 @@ uint32_t __attribute__((visibility("default"))) TS_HolderCommitmentTransaction_ return ret_ref; } -void __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_free(uint32_t this_ptr) { - LDKBuiltCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - BuiltCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_free(uint32_t this_obj) { + LDKBuiltCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + BuiltCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_BuiltCommitmentTransaction_get_transaction(uint32_t this_ptr) { @@ -16957,11 +17175,11 @@ int8_tArray __attribute__((visibility("default"))) TS_BuiltCommitmentTransactio return ret_arr; } -void __attribute__((visibility("default"))) TS_CommitmentTransaction_free(uint32_t this_ptr) { - LDKCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - CommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_CommitmentTransaction_free(uint32_t this_obj) { + LDKCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + CommitmentTransaction_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_CommitmentTransaction_clone(uint32_t orig) { @@ -17062,11 +17280,11 @@ uint32_t __attribute__((visibility("default"))) TS_CommitmentTransaction_verify return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_free(uint32_t this_ptr) { - LDKTrustedCommitmentTransaction this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - TrustedCommitmentTransaction_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_free(uint32_t this_obj) { + LDKTrustedCommitmentTransaction this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + TrustedCommitmentTransaction_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_TrustedCommitmentTransaction_txid(uint32_t this_arg) { @@ -17175,25 +17393,25 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelFeatures_clone(uint32 return ret_ref; } -void __attribute__((visibility("default"))) TS_InitFeatures_free(uint32_t this_ptr) { - LDKInitFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - InitFeatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_InitFeatures_free(uint32_t this_obj) { + LDKInitFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + InitFeatures_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_NodeFeatures_free(uint32_t this_ptr) { - LDKNodeFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeFeatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeFeatures_free(uint32_t this_obj) { + LDKNodeFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeFeatures_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_ChannelFeatures_free(uint32_t this_ptr) { - LDKChannelFeatures this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelFeatures_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelFeatures_free(uint32_t this_obj) { + LDKChannelFeatures this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelFeatures_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_InitFeatures_empty() { @@ -17322,11 +17540,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelFeatures_read(int8_tA return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RouteHop_free(uint32_t this_ptr) { - LDKRouteHop this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHop_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RouteHop_free(uint32_t this_obj) { + LDKRouteHop this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHop_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RouteHop_get_pubkey(uint32_t this_ptr) { @@ -17479,11 +17697,11 @@ uint32_t __attribute__((visibility("default"))) TS_RouteHop_clone(uint32_t orig return ret_ref; } -void __attribute__((visibility("default"))) TS_Route_free(uint32_t this_ptr) { - LDKRoute this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - Route_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_Route_free(uint32_t this_obj) { + LDKRoute this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + Route_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_Route_set_paths(uint32_t this_ptr, ptrArray val) { @@ -17590,11 +17808,11 @@ uint32_t __attribute__((visibility("default"))) TS_Route_read(int8_tArray ser) return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RouteHint_free(uint32_t this_ptr) { - LDKRouteHint this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RouteHint_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RouteHint_free(uint32_t this_obj) { + LDKRouteHint this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RouteHint_free(this_obj_conv); } int8_tArray __attribute__((visibility("default"))) TS_RouteHint_get_src_node_id(uint32_t this_ptr) { @@ -17731,11 +17949,11 @@ uint32_t __attribute__((visibility("default"))) TS_get_route(int8_tArray our_no return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_NetworkGraph_free(uint32_t this_ptr) { - LDKNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetworkGraph_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NetworkGraph_free(uint32_t this_obj) { + LDKNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetworkGraph_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_clone(uint32_t orig) { @@ -17752,27 +17970,33 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_clone(uint32_t return ret_ref; } -void __attribute__((visibility("default"))) TS_LockedNetworkGraph_free(uint32_t this_ptr) { - LDKLockedNetworkGraph this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - LockedNetworkGraph_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_LockedNetworkGraph_free(uint32_t this_obj) { + LDKLockedNetworkGraph this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + LockedNetworkGraph_free(this_obj_conv); } -void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_free(uint32_t this_ptr) { - LDKNetGraphMsgHandler this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NetGraphMsgHandler_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_free(uint32_t this_obj) { + LDKNetGraphMsgHandler this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NetGraphMsgHandler_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_new(int8_tArray genesis_hash, uint32_t chain_access, uint32_t logger) { LDKThirtyTwoBytes genesis_hash_ref; CHECK(*((uint32_t*)genesis_hash) == 32); memcpy(genesis_hash_ref.data, (uint8_t*)(genesis_hash + 4), 32); - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv, logger_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_new(genesis_hash_ref, chain_access_conv_ptr, logger_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -17783,13 +18007,19 @@ uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_new(int8_ } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_from_net_graph(uint32_t chain_access, uint32_t logger, uint32_t network_graph) { - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKLogger logger_conv = *(LDKLogger*)(((uint64_t)logger) & ~1); LDKNetworkGraph network_graph_conv; network_graph_conv.inner = (void*)(network_graph & (~1)); network_graph_conv.is_owned = (network_graph & 1) || (network_graph == 0); network_graph_conv = NetworkGraph_clone(&network_graph_conv); - LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv, logger_conv, network_graph_conv); + LDKNetGraphMsgHandler ret_var = NetGraphMsgHandler_from_net_graph(chain_access_conv_ptr, logger_conv, network_graph_conv); CHECK((((long)ret_var.inner) & 1) == 0); // We rely on a free low bit, malloc guarantees this. CHECK((((long)&ret_var) & 1) == 0); // We rely on a free low bit, pointer alignment guarantees this. long ret_ref = (long)ret_var.inner; @@ -17803,8 +18033,14 @@ void __attribute__((visibility("default"))) TS_NetGraphMsgHandler_add_chain_acc LDKNetGraphMsgHandler this_arg_conv; this_arg_conv.inner = (void*)(this_arg & (~1)); this_arg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; - NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv); + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } + NetGraphMsgHandler_add_chain_access(&this_arg_conv, chain_access_conv_ptr); } uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_read_locked_graph(uint32_t this_arg) { @@ -17853,11 +18089,11 @@ uint32_t __attribute__((visibility("default"))) TS_NetGraphMsgHandler_as_Messag return (long)ret; } -void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_free(uint32_t this_ptr) { - LDKDirectionalChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - DirectionalChannelInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_DirectionalChannelInfo_free(uint32_t this_obj) { + LDKDirectionalChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + DirectionalChannelInfo_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_get_last_update(uint32_t this_ptr) { @@ -18004,11 +18240,11 @@ uint32_t __attribute__((visibility("default"))) TS_DirectionalChannelInfo_read( return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_ChannelInfo_free(uint32_t this_ptr) { - LDKChannelInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - ChannelInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_ChannelInfo_free(uint32_t this_obj) { + LDKChannelInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + ChannelInfo_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_get_features(uint32_t this_ptr) { @@ -18183,11 +18419,11 @@ uint32_t __attribute__((visibility("default"))) TS_ChannelInfo_read(int8_tArray return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_RoutingFees_free(uint32_t this_ptr) { - LDKRoutingFees this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - RoutingFees_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_RoutingFees_free(uint32_t this_obj) { + LDKRoutingFees this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + RoutingFees_free(this_obj_conv); } int32_t __attribute__((visibility("default"))) TS_RoutingFees_get_base_msat(uint32_t this_ptr) { @@ -18265,11 +18501,11 @@ int8_tArray __attribute__((visibility("default"))) TS_RoutingFees_write(uint32_ return ret_arr; } -void __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_free(uint32_t this_ptr) { - LDKNodeAnnouncementInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeAnnouncementInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_free(uint32_t this_obj) { + LDKNodeAnnouncementInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeAnnouncementInfo_free(this_obj_conv); } uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_get_features(uint32_t this_ptr) { @@ -18467,11 +18703,11 @@ uint32_t __attribute__((visibility("default"))) TS_NodeAnnouncementInfo_read(in return (long)ret_conv; } -void __attribute__((visibility("default"))) TS_NodeInfo_free(uint32_t this_ptr) { - LDKNodeInfo this_ptr_conv; - this_ptr_conv.inner = (void*)(this_ptr & (~1)); - this_ptr_conv.is_owned = (this_ptr & 1) || (this_ptr == 0); - NodeInfo_free(this_ptr_conv); +void __attribute__((visibility("default"))) TS_NodeInfo_free(uint32_t this_obj) { + LDKNodeInfo this_obj_conv; + this_obj_conv.inner = (void*)(this_obj & (~1)); + this_obj_conv.is_owned = (this_obj & 1) || (this_obj == 0); + NodeInfo_free(this_obj_conv); } void __attribute__((visibility("default"))) TS_NodeInfo_set_channels(uint32_t this_ptr, int64_tArray val) { @@ -18671,9 +18907,15 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_update_channel_ LDKChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ"); - *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv); + *ret_conv = NetworkGraph_update_channel_from_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; } @@ -18684,9 +18926,15 @@ uint32_t __attribute__((visibility("default"))) TS_NetworkGraph_update_channel_ LDKUnsignedChannelAnnouncement msg_conv; msg_conv.inner = (void*)(msg & (~1)); msg_conv.is_owned = false; - LDKAccess* chain_access_conv = (LDKAccess*)chain_access; + LDKAccess *chain_access_conv_ptr = NULL; + if (chain_access != 0) { + LDKAccess chain_access_conv; + chain_access_conv = *(LDKAccess*)(((uint64_t)chain_access) & ~1); + chain_access_conv_ptr = MALLOC(sizeof(LDKAccess), "LDKAccess"); + *chain_access_conv_ptr = chain_access_conv; + } LDKCResult_NoneLightningErrorZ* ret_conv = MALLOC(sizeof(LDKCResult_NoneLightningErrorZ), "LDKCResult_NoneLightningErrorZ"); - *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv); + *ret_conv = NetworkGraph_update_channel_from_unsigned_announcement(&this_arg_conv, &msg_conv, chain_access_conv_ptr); return (long)ret_conv; } diff --git a/ts/bindings.ts b/ts/bindings.ts index ed4a3fdf..326a84e2 100644 --- a/ts/bindings.ts +++ b/ts/bindings.ts @@ -498,6 +498,14 @@ public static native long new_empty_slice_vec(); public static native long LDKC2Tuple_OutPointScriptZ_new(number a, Uint8Array b); public static native number LDKC2Tuple_OutPointScriptZ_get_a(long ptr); public static native Uint8Array LDKC2Tuple_OutPointScriptZ_get_b(long ptr); + public static native long LDKC2Tuple_u32ScriptZ_new(number a, Uint8Array b); + public static native number LDKC2Tuple_u32ScriptZ_get_a(long ptr); + public static native Uint8Array LDKC2Tuple_u32ScriptZ_get_b(long ptr); + public static native long LDKCVec_C2Tuple_u32ScriptZZ_new(number[] elems); + public static native long LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(Uint8Array a, number[] b); + public static native Uint8Array LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(long ptr); + public static native number[] LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(long ptr); + public static native long LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_new(number[] elems); public static native long LDKC2Tuple_u32TxOutZ_new(number a, number b); public static native number LDKC2Tuple_u32TxOutZ_get_a(long ptr); public static native number LDKC2Tuple_u32TxOutZ_get_b(long ptr); @@ -541,7 +549,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKPublicKey Sign_get_per_commitment_point LDKSign* this_arg, uint64_t idx + // LDKPublicKey Sign_get_per_commitment_point LDKSign *NONNULL_PTR this_arg, uint64_t idx export function Sign_get_per_commitment_point(this_arg: number, idx: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -549,7 +557,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_get_per_commitment_point(this_arg, idx); return decodeArray(nativeResponseValue); } - // LDKThirtyTwoBytes Sign_release_commitment_secret LDKSign* this_arg, uint64_t idx + // LDKThirtyTwoBytes Sign_release_commitment_secret LDKSign *NONNULL_PTR this_arg, uint64_t idx export function Sign_release_commitment_secret(this_arg: number, idx: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -557,7 +565,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_release_commitment_secret(this_arg, idx); return decodeArray(nativeResponseValue); } - // LDKThirtyTwoBytes Sign_channel_keys_id LDKSign* this_arg + // LDKThirtyTwoBytes Sign_channel_keys_id LDKSign *NONNULL_PTR this_arg export function Sign_channel_keys_id(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -565,7 +573,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_channel_keys_id(this_arg); return decodeArray(nativeResponseValue); } - // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ Sign_sign_counterparty_commitment LDKSign* this_arg, const struct LDKCommitmentTransaction *NONNULL_PTR commitment_tx + // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ Sign_sign_counterparty_commitment LDKSign *NONNULL_PTR this_arg, const struct LDKCommitmentTransaction *NONNULL_PTR commitment_tx export function Sign_sign_counterparty_commitment(this_arg: number, commitment_tx: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -573,7 +581,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_counterparty_commitment(this_arg, commitment_tx); return nativeResponseValue; } - // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ Sign_sign_holder_commitment_and_htlcs LDKSign* this_arg, const struct LDKHolderCommitmentTransaction *NONNULL_PTR commitment_tx + // LDKCResult_C2Tuple_SignatureCVec_SignatureZZNoneZ Sign_sign_holder_commitment_and_htlcs LDKSign *NONNULL_PTR this_arg, const struct LDKHolderCommitmentTransaction *NONNULL_PTR commitment_tx export function Sign_sign_holder_commitment_and_htlcs(this_arg: number, commitment_tx: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -581,7 +589,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_holder_commitment_and_htlcs(this_arg, commitment_tx); return nativeResponseValue; } - // LDKCResult_SignatureNoneZ Sign_sign_justice_transaction LDKSign* this_arg, struct LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (*per_commitment_key)[32], const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc + // LDKCResult_SignatureNoneZ Sign_sign_justice_transaction LDKSign *NONNULL_PTR this_arg, struct LDKTransaction justice_tx, uintptr_t input, uint64_t amount, const uint8_t (*per_commitment_key)[32], const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc export function Sign_sign_justice_transaction(this_arg: number, justice_tx: Uint8Array, input: number, amount: number, per_commitment_key: Uint8Array, htlc: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -589,7 +597,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_justice_transaction(this_arg, encodeArray(justice_tx), input, amount, encodeArray(per_commitment_key), htlc); return nativeResponseValue; } - // LDKCResult_SignatureNoneZ Sign_sign_counterparty_htlc_transaction LDKSign* this_arg, struct LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, struct LDKPublicKey per_commitment_point, const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc + // LDKCResult_SignatureNoneZ Sign_sign_counterparty_htlc_transaction LDKSign *NONNULL_PTR this_arg, struct LDKTransaction htlc_tx, uintptr_t input, uint64_t amount, struct LDKPublicKey per_commitment_point, const struct LDKHTLCOutputInCommitment *NONNULL_PTR htlc export function Sign_sign_counterparty_htlc_transaction(this_arg: number, htlc_tx: Uint8Array, input: number, amount: number, per_commitment_point: Uint8Array, htlc: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -597,7 +605,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_counterparty_htlc_transaction(this_arg, encodeArray(htlc_tx), input, amount, encodeArray(per_commitment_point), htlc); return nativeResponseValue; } - // LDKCResult_SignatureNoneZ Sign_sign_closing_transaction LDKSign* this_arg, struct LDKTransaction closing_tx + // LDKCResult_SignatureNoneZ Sign_sign_closing_transaction LDKSign *NONNULL_PTR this_arg, struct LDKTransaction closing_tx export function Sign_sign_closing_transaction(this_arg: number, closing_tx: Uint8Array): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -605,7 +613,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_closing_transaction(this_arg, encodeArray(closing_tx)); return nativeResponseValue; } - // LDKCResult_SignatureNoneZ Sign_sign_channel_announcement LDKSign* this_arg, const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR msg + // LDKCResult_SignatureNoneZ Sign_sign_channel_announcement LDKSign *NONNULL_PTR this_arg, const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR msg export function Sign_sign_channel_announcement(this_arg: number, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -613,7 +621,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_sign_channel_announcement(this_arg, msg); return nativeResponseValue; } - // void Sign_ready_channel LDKSign* this_arg, const struct LDKChannelTransactionParameters *NONNULL_PTR channel_parameters + // void Sign_ready_channel LDKSign *NONNULL_PTR this_arg, const struct LDKChannelTransactionParameters *NONNULL_PTR channel_parameters export function Sign_ready_channel(this_arg: number, channel_parameters: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -621,7 +629,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_ready_channel(this_arg, channel_parameters); // debug statements here } - // LDKCVec_u8Z Sign_write LDKSign* this_arg + // LDKCVec_u8Z Sign_write LDKSign *NONNULL_PTR this_arg export function Sign_write(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -629,7 +637,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Sign_write(this_arg); return decodeArray(nativeResponseValue); } - // LDKChannelPublicKeys Sign_get_pubkeys LDKSign* this_arg + // LDKChannelPublicKeys Sign_get_pubkeys LDKSign *NONNULL_PTR this_arg export function Sign_get_pubkeys(this_arg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -718,7 +726,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_watch_channel LDKWatch* this_arg, struct LDKOutPoint funding_txo, struct LDKChannelMonitor monitor + // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_watch_channel LDKWatch *NONNULL_PTR this_arg, struct LDKOutPoint funding_txo, struct LDKChannelMonitor monitor export function Watch_watch_channel(this_arg: number, funding_txo: number, monitor: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -726,7 +734,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Watch_watch_channel(this_arg, funding_txo, monitor); return nativeResponseValue; } - // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_update_channel LDKWatch* this_arg, struct LDKOutPoint funding_txo, struct LDKChannelMonitorUpdate update + // LDKCResult_NoneChannelMonitorUpdateErrZ Watch_update_channel LDKWatch *NONNULL_PTR this_arg, struct LDKOutPoint funding_txo, struct LDKChannelMonitorUpdate update export function Watch_update_channel(this_arg: number, funding_txo: number, update: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -734,7 +742,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Watch_update_channel(this_arg, funding_txo, update); return nativeResponseValue; } - // LDKCVec_MonitorEventZ Watch_release_pending_monitor_events LDKWatch* this_arg + // LDKCVec_MonitorEventZ Watch_release_pending_monitor_events LDKWatch *NONNULL_PTR this_arg export function Watch_release_pending_monitor_events(this_arg: number): number[] { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -758,7 +766,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // void BroadcasterInterface_broadcast_transaction LDKBroadcasterInterface* this_arg, struct LDKTransaction tx + // void BroadcasterInterface_broadcast_transaction LDKBroadcasterInterface *NONNULL_PTR this_arg, struct LDKTransaction tx export function BroadcasterInterface_broadcast_transaction(this_arg: number, tx: Uint8Array): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -790,7 +798,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKSecretKey KeysInterface_get_node_secret LDKKeysInterface* this_arg + // LDKSecretKey KeysInterface_get_node_secret LDKKeysInterface *NONNULL_PTR this_arg export function KeysInterface_get_node_secret(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -798,7 +806,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_get_node_secret(this_arg); return decodeArray(nativeResponseValue); } - // LDKCVec_u8Z KeysInterface_get_destination_script LDKKeysInterface* this_arg + // LDKCVec_u8Z KeysInterface_get_destination_script LDKKeysInterface *NONNULL_PTR this_arg export function KeysInterface_get_destination_script(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -806,7 +814,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_get_destination_script(this_arg); return decodeArray(nativeResponseValue); } - // LDKPublicKey KeysInterface_get_shutdown_pubkey LDKKeysInterface* this_arg + // LDKPublicKey KeysInterface_get_shutdown_pubkey LDKKeysInterface *NONNULL_PTR this_arg export function KeysInterface_get_shutdown_pubkey(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -814,7 +822,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_get_shutdown_pubkey(this_arg); return decodeArray(nativeResponseValue); } - // LDKSign KeysInterface_get_channel_signer LDKKeysInterface* this_arg, bool inbound, uint64_t channel_value_satoshis + // LDKSign KeysInterface_get_channel_signer LDKKeysInterface *NONNULL_PTR this_arg, bool inbound, uint64_t channel_value_satoshis export function KeysInterface_get_channel_signer(this_arg: number, inbound: boolean, channel_value_satoshis: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -822,7 +830,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_get_channel_signer(this_arg, inbound, channel_value_satoshis); return nativeResponseValue; } - // LDKThirtyTwoBytes KeysInterface_get_secure_random_bytes LDKKeysInterface* this_arg + // LDKThirtyTwoBytes KeysInterface_get_secure_random_bytes LDKKeysInterface *NONNULL_PTR this_arg export function KeysInterface_get_secure_random_bytes(this_arg: number): Uint8Array { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -830,7 +838,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_get_secure_random_bytes(this_arg); return decodeArray(nativeResponseValue); } - // LDKCResult_SignDecodeErrorZ KeysInterface_read_chan_signer LDKKeysInterface* this_arg, struct LDKu8slice reader + // LDKCResult_SignDecodeErrorZ KeysInterface_read_chan_signer LDKKeysInterface *NONNULL_PTR this_arg, struct LDKu8slice reader export function KeysInterface_read_chan_signer(this_arg: number, reader: Uint8Array): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -854,7 +862,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // uint32_t FeeEstimator_get_est_sat_per_1000_weight LDKFeeEstimator* this_arg, enum LDKConfirmationTarget confirmation_target + // uint32_t FeeEstimator_get_est_sat_per_1000_weight LDKFeeEstimator *NONNULL_PTR this_arg, enum LDKConfirmationTarget confirmation_target export function FeeEstimator_get_est_sat_per_1000_weight(this_arg: number, confirmation_target: LDKConfirmationTarget): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1024,7 +1032,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCVec_MessageSendEventZ MessageSendEventsProvider_get_and_clear_pending_msg_events LDKMessageSendEventsProvider* this_arg + // LDKCVec_MessageSendEventZ MessageSendEventsProvider_get_and_clear_pending_msg_events LDKMessageSendEventsProvider *NONNULL_PTR this_arg export function MessageSendEventsProvider_get_and_clear_pending_msg_events(this_arg: number): number[] { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1048,7 +1056,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCVec_EventZ EventsProvider_get_and_clear_pending_events LDKEventsProvider* this_arg + // LDKCVec_EventZ EventsProvider_get_and_clear_pending_events LDKEventsProvider *NONNULL_PTR this_arg export function EventsProvider_get_and_clear_pending_events(this_arg: number): number[] { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1072,7 +1080,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCResult_TxOutAccessErrorZ Access_get_utxo LDKAccess* this_arg, const uint8_t (*genesis_hash)[32], uint64_t short_channel_id + // LDKCResult_TxOutAccessErrorZ Access_get_utxo LDKAccess *NONNULL_PTR this_arg, const uint8_t (*genesis_hash)[32], uint64_t short_channel_id export function Access_get_utxo(this_arg: number, genesis_hash: Uint8Array, short_channel_id: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1097,7 +1105,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // void Listen_block_connected LDKListen* this_arg, struct LDKu8slice block, uint32_t height + // void Listen_block_connected LDKListen *NONNULL_PTR this_arg, struct LDKu8slice block, uint32_t height export function Listen_block_connected(this_arg: number, block: Uint8Array, height: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1105,7 +1113,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Listen_block_connected(this_arg, encodeArray(block), height); // debug statements here } - // void Listen_block_disconnected LDKListen* this_arg, const uint8_t (*header)[80], uint32_t height + // void Listen_block_disconnected LDKListen *NONNULL_PTR this_arg, const uint8_t (*header)[80], uint32_t height export function Listen_block_disconnected(this_arg: number, header: Uint8Array, height: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1130,7 +1138,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // void Filter_register_tx LDKFilter* this_arg, const uint8_t (*txid)[32], struct LDKu8slice script_pubkey + // void Filter_register_tx LDKFilter *NONNULL_PTR this_arg, const uint8_t (*txid)[32], struct LDKu8slice script_pubkey export function Filter_register_tx(this_arg: number, txid: Uint8Array, script_pubkey: Uint8Array): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1138,7 +1146,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Filter_register_tx(this_arg, encodeArray(txid), encodeArray(script_pubkey)); // debug statements here } - // void Filter_register_output LDKFilter* this_arg, const struct LDKOutPoint *NONNULL_PTR outpoint, struct LDKu8slice script_pubkey + // void Filter_register_output LDKFilter *NONNULL_PTR this_arg, const struct LDKOutPoint *NONNULL_PTR outpoint, struct LDKu8slice script_pubkey export function Filter_register_output(this_arg: number, outpoint: number, script_pubkey: Uint8Array): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1163,7 +1171,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCResult_NoneChannelMonitorUpdateErrZ Persist_persist_new_channel LDKPersist* this_arg, struct LDKOutPoint id, const struct LDKChannelMonitor *NONNULL_PTR data + // LDKCResult_NoneChannelMonitorUpdateErrZ Persist_persist_new_channel LDKPersist *NONNULL_PTR this_arg, struct LDKOutPoint id, const struct LDKChannelMonitor *NONNULL_PTR data export function Persist_persist_new_channel(this_arg: number, id: number, data: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1171,7 +1179,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Persist_persist_new_channel(this_arg, id, data); return nativeResponseValue; } - // LDKCResult_NoneChannelMonitorUpdateErrZ Persist_update_persisted_channel LDKPersist* this_arg, struct LDKOutPoint id, const struct LDKChannelMonitorUpdate *NONNULL_PTR update, const struct LDKChannelMonitor *NONNULL_PTR data + // LDKCResult_NoneChannelMonitorUpdateErrZ Persist_update_persisted_channel LDKPersist *NONNULL_PTR this_arg, struct LDKOutPoint id, const struct LDKChannelMonitorUpdate *NONNULL_PTR update, const struct LDKChannelMonitor *NONNULL_PTR data export function Persist_update_persisted_channel(this_arg: number, id: number, update: number, data: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1213,7 +1221,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // void ChannelMessageHandler_handle_open_channel LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKInitFeatures their_features, const struct LDKOpenChannel *NONNULL_PTR msg + // 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 export function ChannelMessageHandler_handle_open_channel(this_arg: number, their_node_id: Uint8Array, their_features: number, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1221,7 +1229,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_open_channel(this_arg, encodeArray(their_node_id), their_features, msg); // debug statements here } - // void ChannelMessageHandler_handle_accept_channel LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKInitFeatures their_features, const struct LDKAcceptChannel *NONNULL_PTR 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 export function ChannelMessageHandler_handle_accept_channel(this_arg: number, their_node_id: Uint8Array, their_features: number, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1229,7 +1237,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_accept_channel(this_arg, encodeArray(their_node_id), their_features, msg); // debug statements here } - // void ChannelMessageHandler_handle_funding_created LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingCreated *NONNULL_PTR msg + // void ChannelMessageHandler_handle_funding_created LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingCreated *NONNULL_PTR msg export function ChannelMessageHandler_handle_funding_created(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1237,7 +1245,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_funding_created(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_funding_signed LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingSigned *NONNULL_PTR msg + // void ChannelMessageHandler_handle_funding_signed LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingSigned *NONNULL_PTR msg export function ChannelMessageHandler_handle_funding_signed(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1245,7 +1253,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_funding_signed(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_funding_locked LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingLocked *NONNULL_PTR msg + // void ChannelMessageHandler_handle_funding_locked LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKFundingLocked *NONNULL_PTR msg export function ChannelMessageHandler_handle_funding_locked(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1253,7 +1261,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_funding_locked(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_shutdown LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKInitFeatures *NONNULL_PTR their_features, const struct LDKShutdown *NONNULL_PTR msg + // void ChannelMessageHandler_handle_shutdown LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKInitFeatures *NONNULL_PTR their_features, const struct LDKShutdown *NONNULL_PTR msg export function ChannelMessageHandler_handle_shutdown(this_arg: number, their_node_id: Uint8Array, their_features: number, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1261,7 +1269,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_shutdown(this_arg, encodeArray(their_node_id), their_features, msg); // debug statements here } - // void ChannelMessageHandler_handle_closing_signed LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKClosingSigned *NONNULL_PTR msg + // void ChannelMessageHandler_handle_closing_signed LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKClosingSigned *NONNULL_PTR msg export function ChannelMessageHandler_handle_closing_signed(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1269,7 +1277,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_closing_signed(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_update_add_htlc LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateAddHTLC *NONNULL_PTR msg + // void ChannelMessageHandler_handle_update_add_htlc LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateAddHTLC *NONNULL_PTR msg export function ChannelMessageHandler_handle_update_add_htlc(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1277,7 +1285,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_update_add_htlc(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_update_fulfill_htlc LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFulfillHTLC *NONNULL_PTR msg + // void ChannelMessageHandler_handle_update_fulfill_htlc LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFulfillHTLC *NONNULL_PTR msg export function ChannelMessageHandler_handle_update_fulfill_htlc(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1285,7 +1293,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_update_fulfill_htlc(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_update_fail_htlc LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFailHTLC *NONNULL_PTR msg + // void ChannelMessageHandler_handle_update_fail_htlc LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFailHTLC *NONNULL_PTR msg export function ChannelMessageHandler_handle_update_fail_htlc(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1293,7 +1301,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_update_fail_htlc(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_update_fail_malformed_htlc LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR msg + // void ChannelMessageHandler_handle_update_fail_malformed_htlc LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR msg export function ChannelMessageHandler_handle_update_fail_malformed_htlc(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1301,7 +1309,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_update_fail_malformed_htlc(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_commitment_signed LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKCommitmentSigned *NONNULL_PTR msg + // void ChannelMessageHandler_handle_commitment_signed LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKCommitmentSigned *NONNULL_PTR msg export function ChannelMessageHandler_handle_commitment_signed(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1309,7 +1317,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_commitment_signed(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_revoke_and_ack LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKRevokeAndACK *NONNULL_PTR msg + // void ChannelMessageHandler_handle_revoke_and_ack LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKRevokeAndACK *NONNULL_PTR msg export function ChannelMessageHandler_handle_revoke_and_ack(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1317,7 +1325,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_revoke_and_ack(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_update_fee LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFee *NONNULL_PTR msg + // void ChannelMessageHandler_handle_update_fee LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKUpdateFee *NONNULL_PTR msg export function ChannelMessageHandler_handle_update_fee(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1325,7 +1333,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_update_fee(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_announcement_signatures LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKAnnouncementSignatures *NONNULL_PTR msg + // void ChannelMessageHandler_handle_announcement_signatures LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKAnnouncementSignatures *NONNULL_PTR msg export function ChannelMessageHandler_handle_announcement_signatures(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1333,7 +1341,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_announcement_signatures(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_peer_disconnected LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, bool no_connection_possible + // void ChannelMessageHandler_peer_disconnected LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, bool no_connection_possible export function ChannelMessageHandler_peer_disconnected(this_arg: number, their_node_id: Uint8Array, no_connection_possible: boolean): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1341,7 +1349,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_peer_disconnected(this_arg, encodeArray(their_node_id), no_connection_possible); // debug statements here } - // void ChannelMessageHandler_peer_connected LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKInit *NONNULL_PTR msg + // void ChannelMessageHandler_peer_connected LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKInit *NONNULL_PTR msg export function ChannelMessageHandler_peer_connected(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1349,7 +1357,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_peer_connected(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_channel_reestablish LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKChannelReestablish *NONNULL_PTR msg + // void ChannelMessageHandler_handle_channel_reestablish LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKChannelReestablish *NONNULL_PTR msg export function ChannelMessageHandler_handle_channel_reestablish(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1357,7 +1365,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMessageHandler_handle_channel_reestablish(this_arg, encodeArray(their_node_id), msg); // debug statements here } - // void ChannelMessageHandler_handle_error LDKChannelMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKErrorMessage *NONNULL_PTR msg + // void ChannelMessageHandler_handle_error LDKChannelMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKErrorMessage *NONNULL_PTR msg export function ChannelMessageHandler_handle_error(this_arg: number, their_node_id: Uint8Array, msg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1391,7 +1399,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_node_announcement LDKRoutingMessageHandler* this_arg, const struct LDKNodeAnnouncement *NONNULL_PTR msg + // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_node_announcement LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKNodeAnnouncement *NONNULL_PTR msg export function RoutingMessageHandler_handle_node_announcement(this_arg: number, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1399,7 +1407,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_node_announcement(this_arg, msg); return nativeResponseValue; } - // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_channel_announcement LDKRoutingMessageHandler* this_arg, const struct LDKChannelAnnouncement *NONNULL_PTR msg + // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_channel_announcement LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKChannelAnnouncement *NONNULL_PTR msg export function RoutingMessageHandler_handle_channel_announcement(this_arg: number, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1407,7 +1415,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_channel_announcement(this_arg, msg); return nativeResponseValue; } - // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_channel_update LDKRoutingMessageHandler* this_arg, const struct LDKChannelUpdate *NONNULL_PTR msg + // LDKCResult_boolLightningErrorZ RoutingMessageHandler_handle_channel_update LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKChannelUpdate *NONNULL_PTR msg export function RoutingMessageHandler_handle_channel_update(this_arg: number, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1415,7 +1423,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_channel_update(this_arg, msg); return nativeResponseValue; } - // void RoutingMessageHandler_handle_htlc_fail_channel_update LDKRoutingMessageHandler* this_arg, const struct LDKHTLCFailChannelUpdate *NONNULL_PTR update + // void RoutingMessageHandler_handle_htlc_fail_channel_update LDKRoutingMessageHandler *NONNULL_PTR this_arg, const struct LDKHTLCFailChannelUpdate *NONNULL_PTR update export function RoutingMessageHandler_handle_htlc_fail_channel_update(this_arg: number, update: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1423,7 +1431,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_htlc_fail_channel_update(this_arg, update); // debug statements here } - // LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ RoutingMessageHandler_get_next_channel_announcements LDKRoutingMessageHandler* this_arg, uint64_t starting_point, uint8_t batch_amount + // LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ RoutingMessageHandler_get_next_channel_announcements LDKRoutingMessageHandler *NONNULL_PTR this_arg, uint64_t starting_point, uint8_t batch_amount export function RoutingMessageHandler_get_next_channel_announcements(this_arg: number, starting_point: number, batch_amount: number): number[] { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1431,7 +1439,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_get_next_channel_announcements(this_arg, starting_point, batch_amount); return nativeResponseValue; } - // LDKCVec_NodeAnnouncementZ RoutingMessageHandler_get_next_node_announcements LDKRoutingMessageHandler* this_arg, struct LDKPublicKey starting_point, uint8_t batch_amount + // LDKCVec_NodeAnnouncementZ RoutingMessageHandler_get_next_node_announcements LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey starting_point, uint8_t batch_amount export function RoutingMessageHandler_get_next_node_announcements(this_arg: number, starting_point: Uint8Array, batch_amount: number): number[] { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1439,7 +1447,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_get_next_node_announcements(this_arg, encodeArray(starting_point), batch_amount); return nativeResponseValue; } - // void RoutingMessageHandler_sync_routing_table LDKRoutingMessageHandler* this_arg, struct LDKPublicKey their_node_id, const struct LDKInit *NONNULL_PTR init + // void RoutingMessageHandler_sync_routing_table LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, const struct LDKInit *NONNULL_PTR init export function RoutingMessageHandler_sync_routing_table(this_arg: number, their_node_id: Uint8Array, init: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1447,7 +1455,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_sync_routing_table(this_arg, encodeArray(their_node_id), init); // debug statements here } - // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_reply_channel_range LDKRoutingMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKReplyChannelRange msg + // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_reply_channel_range LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKReplyChannelRange msg export function RoutingMessageHandler_handle_reply_channel_range(this_arg: number, their_node_id: Uint8Array, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1455,7 +1463,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_reply_channel_range(this_arg, encodeArray(their_node_id), msg); return nativeResponseValue; } - // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_reply_short_channel_ids_end LDKRoutingMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKReplyShortChannelIdsEnd msg + // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_reply_short_channel_ids_end LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKReplyShortChannelIdsEnd msg export function RoutingMessageHandler_handle_reply_short_channel_ids_end(this_arg: number, their_node_id: Uint8Array, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1463,7 +1471,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_reply_short_channel_ids_end(this_arg, encodeArray(their_node_id), msg); return nativeResponseValue; } - // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_query_channel_range LDKRoutingMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKQueryChannelRange msg + // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_query_channel_range LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKQueryChannelRange msg export function RoutingMessageHandler_handle_query_channel_range(this_arg: number, their_node_id: Uint8Array, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1471,7 +1479,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingMessageHandler_handle_query_channel_range(this_arg, encodeArray(their_node_id), msg); return nativeResponseValue; } - // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_query_short_channel_ids LDKRoutingMessageHandler* this_arg, struct LDKPublicKey their_node_id, struct LDKQueryShortChannelIds msg + // LDKCResult_NoneLightningErrorZ RoutingMessageHandler_handle_query_short_channel_ids LDKRoutingMessageHandler *NONNULL_PTR this_arg, struct LDKPublicKey their_node_id, struct LDKQueryShortChannelIds msg export function RoutingMessageHandler_handle_query_short_channel_ids(this_arg: number, their_node_id: Uint8Array, msg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1498,7 +1506,7 @@ public static native long new_empty_slice_vec(); // OUT_TYPESCRIPT_BINDINGS :: MAP_TRAIT :: END - // uintptr_t SocketDescriptor_send_data LDKSocketDescriptor* this_arg, struct LDKu8slice data, bool resume_read + // uintptr_t SocketDescriptor_send_data LDKSocketDescriptor *NONNULL_PTR this_arg, struct LDKu8slice data, bool resume_read export function SocketDescriptor_send_data(this_arg: number, data: Uint8Array, resume_read: boolean): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1506,7 +1514,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.SocketDescriptor_send_data(this_arg, encodeArray(data), resume_read); return nativeResponseValue; } - // void SocketDescriptor_disconnect_socket LDKSocketDescriptor* this_arg + // void SocketDescriptor_disconnect_socket LDKSocketDescriptor *NONNULL_PTR this_arg export function SocketDescriptor_disconnect_socket(this_arg: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -1514,7 +1522,7 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.SocketDescriptor_disconnect_socket(this_arg); // debug statements here } - // uint64_t SocketDescriptor_hash LDKSocketDescriptor* this_arg + // uint64_t SocketDescriptor_hash LDKSocketDescriptor *NONNULL_PTR this_arg export function SocketDescriptor_hash(this_arg: number): number { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); @@ -2698,6 +2706,62 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.C2Tuple_OutPointScriptZ_free(_res); // debug statements here } + // struct LDKC2Tuple_u32ScriptZ C2Tuple_u32ScriptZ_clone(const struct LDKC2Tuple_u32ScriptZ *NONNULL_PTR orig); + export function C2Tuple_u32ScriptZ_clone(orig: number): number { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.C2Tuple_u32ScriptZ_clone(orig); + return nativeResponseValue; + } + // struct LDKC2Tuple_u32ScriptZ C2Tuple_u32ScriptZ_new(uint32_t a, struct LDKCVec_u8Z b); + export function C2Tuple_u32ScriptZ_new(a: number, b: Uint8Array): number { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.C2Tuple_u32ScriptZ_new(a, encodeArray(b)); + return nativeResponseValue; + } + // void C2Tuple_u32ScriptZ_free(struct LDKC2Tuple_u32ScriptZ _res); + export function C2Tuple_u32ScriptZ_free(_res: number): void { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.C2Tuple_u32ScriptZ_free(_res); + // debug statements here + } + // void CVec_C2Tuple_u32ScriptZZ_free(struct LDKCVec_C2Tuple_u32ScriptZZ _res); + export function CVec_C2Tuple_u32ScriptZZ_free(_res: number[]): void { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.CVec_C2Tuple_u32ScriptZZ_free(_res); + // debug statements here + } + // struct LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(struct LDKThirtyTwoBytes a, struct LDKCVec_C2Tuple_u32ScriptZZ b); + export function C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(a: Uint8Array, b: number[]): number { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_new(encodeArray(a), b); + return nativeResponseValue; + } + // void C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(struct LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ _res); + export function C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(_res: number): void { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_free(_res); + // debug statements here + } + // void CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(struct LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ _res); + export function CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res: number[]): void { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res); + // debug statements here + } // void CVec_TransactionZ_free(struct LDKCVec_TransactionZ _res); export function CVec_TransactionZ_free(_res: Uint8Array[]): void { if(!isWasmInitialized) { @@ -4506,12 +4570,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Logger_free(this_ptr); // debug statements here } - // void ChannelHandshakeConfig_free(struct LDKChannelHandshakeConfig this_ptr); - export function ChannelHandshakeConfig_free(this_ptr: number): void { + // void ChannelHandshakeConfig_free(struct LDKChannelHandshakeConfig this_obj); + export function ChannelHandshakeConfig_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelHandshakeConfig_free(this_ptr); + const nativeResponseValue = wasm.ChannelHandshakeConfig_free(this_obj); // debug statements here } // uint32_t ChannelHandshakeConfig_get_minimum_depth(const struct LDKChannelHandshakeConfig *NONNULL_PTR this_ptr); @@ -4586,12 +4650,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelHandshakeConfig_default(); return nativeResponseValue; } - // void ChannelHandshakeLimits_free(struct LDKChannelHandshakeLimits this_ptr); - export function ChannelHandshakeLimits_free(this_ptr: number): void { + // void ChannelHandshakeLimits_free(struct LDKChannelHandshakeLimits this_obj); + export function ChannelHandshakeLimits_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelHandshakeLimits_free(this_ptr); + const nativeResponseValue = wasm.ChannelHandshakeLimits_free(this_obj); // debug statements here } // uint64_t ChannelHandshakeLimits_get_min_funding_satoshis(const struct LDKChannelHandshakeLimits *NONNULL_PTR this_ptr); @@ -4778,12 +4842,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelHandshakeLimits_default(); return nativeResponseValue; } - // void ChannelConfig_free(struct LDKChannelConfig this_ptr); - export function ChannelConfig_free(this_ptr: number): void { + // void ChannelConfig_free(struct LDKChannelConfig this_obj); + export function ChannelConfig_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelConfig_free(this_ptr); + const nativeResponseValue = wasm.ChannelConfig_free(this_obj); // debug statements here } // uint32_t ChannelConfig_get_fee_proportional_millionths(const struct LDKChannelConfig *NONNULL_PTR this_ptr); @@ -4874,12 +4938,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelConfig_read(encodeArray(ser)); return nativeResponseValue; } - // void UserConfig_free(struct LDKUserConfig this_ptr); - export function UserConfig_free(this_ptr: number): void { + // void UserConfig_free(struct LDKUserConfig this_obj); + export function UserConfig_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UserConfig_free(this_ptr); + const nativeResponseValue = wasm.UserConfig_free(this_obj); // debug statements here } // struct LDKChannelHandshakeConfig UserConfig_get_own_channel_config(const struct LDKUserConfig *NONNULL_PTR this_ptr); @@ -5018,12 +5082,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.FeeEstimator_free(this_ptr); // debug statements here } - // void ChainMonitor_free(struct LDKChainMonitor this_ptr); - export function ChainMonitor_free(this_ptr: number): void { + // void ChainMonitor_free(struct LDKChainMonitor this_obj); + export function ChainMonitor_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChainMonitor_free(this_ptr); + const nativeResponseValue = wasm.ChainMonitor_free(this_obj); // debug statements here } // void ChainMonitor_block_connected(const struct LDKChainMonitor *NONNULL_PTR this_arg, const uint8_t (*header)[80], struct LDKCVec_C2Tuple_usizeTransactionZZ txdata, uint32_t height); @@ -5066,12 +5130,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChainMonitor_as_EventsProvider(this_arg); return nativeResponseValue; } - // void ChannelMonitorUpdate_free(struct LDKChannelMonitorUpdate this_ptr); - export function ChannelMonitorUpdate_free(this_ptr: number): void { + // void ChannelMonitorUpdate_free(struct LDKChannelMonitorUpdate this_obj); + export function ChannelMonitorUpdate_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelMonitorUpdate_free(this_ptr); + const nativeResponseValue = wasm.ChannelMonitorUpdate_free(this_obj); // debug statements here } // uint64_t ChannelMonitorUpdate_get_update_id(const struct LDKChannelMonitorUpdate *NONNULL_PTR this_ptr); @@ -5122,12 +5186,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMonitorUpdateErr_clone(orig); return nativeResponseValue; } - // void MonitorUpdateError_free(struct LDKMonitorUpdateError this_ptr); - export function MonitorUpdateError_free(this_ptr: number): void { + // void MonitorUpdateError_free(struct LDKMonitorUpdateError this_obj); + export function MonitorUpdateError_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.MonitorUpdateError_free(this_ptr); + const nativeResponseValue = wasm.MonitorUpdateError_free(this_obj); // debug statements here } // struct LDKMonitorUpdateError MonitorUpdateError_clone(const struct LDKMonitorUpdateError *NONNULL_PTR orig); @@ -5154,12 +5218,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.MonitorEvent_clone(orig); return nativeResponseValue; } - // void HTLCUpdate_free(struct LDKHTLCUpdate this_ptr); - export function HTLCUpdate_free(this_ptr: number): void { + // void HTLCUpdate_free(struct LDKHTLCUpdate this_obj); + export function HTLCUpdate_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.HTLCUpdate_free(this_ptr); + const nativeResponseValue = wasm.HTLCUpdate_free(this_obj); // debug statements here } // struct LDKHTLCUpdate HTLCUpdate_clone(const struct LDKHTLCUpdate *NONNULL_PTR orig); @@ -5186,12 +5250,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.HTLCUpdate_read(encodeArray(ser)); return nativeResponseValue; } - // void ChannelMonitor_free(struct LDKChannelMonitor this_ptr); - export function ChannelMonitor_free(this_ptr: number): void { + // void ChannelMonitor_free(struct LDKChannelMonitor this_obj); + export function ChannelMonitor_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelMonitor_free(this_ptr); + const nativeResponseValue = wasm.ChannelMonitor_free(this_obj); // debug statements here } // struct LDKChannelMonitor ChannelMonitor_clone(const struct LDKChannelMonitor *NONNULL_PTR orig); @@ -5234,6 +5298,22 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelMonitor_get_funding_txo(this_arg); return nativeResponseValue; } + // MUST_USE_RES struct LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ ChannelMonitor_get_outputs_to_watch(const struct LDKChannelMonitor *NONNULL_PTR this_arg); + export function ChannelMonitor_get_outputs_to_watch(this_arg: number): number[] { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.ChannelMonitor_get_outputs_to_watch(this_arg); + return nativeResponseValue; + } + // void ChannelMonitor_load_outputs_to_watch(const struct LDKChannelMonitor *NONNULL_PTR this_arg, const struct LDKFilter *NONNULL_PTR filter); + export function ChannelMonitor_load_outputs_to_watch(this_arg: number, filter: number): void { + if(!isWasmInitialized) { + throw new Error("initializeWasm() must be awaited first!"); + } + const nativeResponseValue = wasm.ChannelMonitor_load_outputs_to_watch(this_arg, filter); + // debug statements here + } // MUST_USE_RES struct LDKCVec_MonitorEventZ ChannelMonitor_get_and_clear_pending_monitor_events(const struct LDKChannelMonitor *NONNULL_PTR this_arg); export function ChannelMonitor_get_and_clear_pending_monitor_events(this_arg: number): number[] { if(!isWasmInitialized) { @@ -5290,12 +5370,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.C2Tuple_BlockHashChannelMonitorZ_read(encodeArray(ser), arg); return nativeResponseValue; } - // void OutPoint_free(struct LDKOutPoint this_ptr); - export function OutPoint_free(this_ptr: number): void { + // void OutPoint_free(struct LDKOutPoint this_obj); + export function OutPoint_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.OutPoint_free(this_ptr); + const nativeResponseValue = wasm.OutPoint_free(this_obj); // debug statements here } // const uint8_t (*OutPoint_get_txid(const struct LDKOutPoint *NONNULL_PTR this_ptr))[32]; @@ -5370,12 +5450,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.OutPoint_read(encodeArray(ser)); return nativeResponseValue; } - // void DelayedPaymentOutputDescriptor_free(struct LDKDelayedPaymentOutputDescriptor this_ptr); - export function DelayedPaymentOutputDescriptor_free(this_ptr: number): void { + // void DelayedPaymentOutputDescriptor_free(struct LDKDelayedPaymentOutputDescriptor this_obj); + export function DelayedPaymentOutputDescriptor_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.DelayedPaymentOutputDescriptor_free(this_ptr); + const nativeResponseValue = wasm.DelayedPaymentOutputDescriptor_free(this_obj); // debug statements here } // struct LDKOutPoint DelayedPaymentOutputDescriptor_get_outpoint(const struct LDKDelayedPaymentOutputDescriptor *NONNULL_PTR this_ptr); @@ -5498,12 +5578,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.DelayedPaymentOutputDescriptor_clone(orig); return nativeResponseValue; } - // void StaticPaymentOutputDescriptor_free(struct LDKStaticPaymentOutputDescriptor this_ptr); - export function StaticPaymentOutputDescriptor_free(this_ptr: number): void { + // void StaticPaymentOutputDescriptor_free(struct LDKStaticPaymentOutputDescriptor this_obj); + export function StaticPaymentOutputDescriptor_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.StaticPaymentOutputDescriptor_free(this_ptr); + const nativeResponseValue = wasm.StaticPaymentOutputDescriptor_free(this_obj); // debug statements here } // struct LDKOutPoint StaticPaymentOutputDescriptor_get_outpoint(const struct LDKStaticPaymentOutputDescriptor *NONNULL_PTR this_ptr); @@ -5634,12 +5714,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysInterface_free(this_ptr); // debug statements here } - // void InMemorySigner_free(struct LDKInMemorySigner this_ptr); - export function InMemorySigner_free(this_ptr: number): void { + // void InMemorySigner_free(struct LDKInMemorySigner this_obj); + export function InMemorySigner_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.InMemorySigner_free(this_ptr); + const nativeResponseValue = wasm.InMemorySigner_free(this_obj); // debug statements here } // const uint8_t (*InMemorySigner_get_funding_key(const struct LDKInMemorySigner *NONNULL_PTR this_ptr))[32]; @@ -5842,12 +5922,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.InMemorySigner_read(encodeArray(ser)); return nativeResponseValue; } - // void KeysManager_free(struct LDKKeysManager this_ptr); - export function KeysManager_free(this_ptr: number): void { + // void KeysManager_free(struct LDKKeysManager this_obj); + export function KeysManager_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.KeysManager_free(this_ptr); + const nativeResponseValue = wasm.KeysManager_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKKeysManager KeysManager_new(const uint8_t (*seed)[32], uint64_t starting_time_secs, uint32_t starting_time_nanos); @@ -5882,20 +5962,20 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.KeysManager_as_KeysInterface(this_arg); return nativeResponseValue; } - // void ChannelManager_free(struct LDKChannelManager this_ptr); - export function ChannelManager_free(this_ptr: number): void { + // void ChannelManager_free(struct LDKChannelManager this_obj); + export function ChannelManager_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelManager_free(this_ptr); + const nativeResponseValue = wasm.ChannelManager_free(this_obj); // debug statements here } - // void ChainParameters_free(struct LDKChainParameters this_ptr); - export function ChainParameters_free(this_ptr: number): void { + // void ChainParameters_free(struct LDKChainParameters this_obj); + export function ChainParameters_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChainParameters_free(this_ptr); + const nativeResponseValue = wasm.ChainParameters_free(this_obj); // debug statements here } // enum LDKNetwork ChainParameters_get_network(const struct LDKChainParameters *NONNULL_PTR this_ptr); @@ -5954,12 +6034,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChainParameters_new(network_arg, encodeArray(latest_hash_arg), latest_height_arg); return nativeResponseValue; } - // void ChannelDetails_free(struct LDKChannelDetails this_ptr); - export function ChannelDetails_free(this_ptr: number): void { + // void ChannelDetails_free(struct LDKChannelDetails this_obj); + export function ChannelDetails_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelDetails_free(this_ptr); + const nativeResponseValue = wasm.ChannelDetails_free(this_obj); // debug statements here } // const uint8_t (*ChannelDetails_get_channel_id(const struct LDKChannelDetails *NONNULL_PTR this_ptr))[32]; @@ -6306,12 +6386,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelManager_write(obj); return decodeArray(nativeResponseValue); } - // void ChannelManagerReadArgs_free(struct LDKChannelManagerReadArgs this_ptr); - export function ChannelManagerReadArgs_free(this_ptr: number): void { + // void ChannelManagerReadArgs_free(struct LDKChannelManagerReadArgs this_obj); + export function ChannelManagerReadArgs_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelManagerReadArgs_free(this_ptr); + const nativeResponseValue = wasm.ChannelManagerReadArgs_free(this_obj); // debug statements here } // const struct LDKKeysInterface *ChannelManagerReadArgs_get_keys_manager(const struct LDKChannelManagerReadArgs *NONNULL_PTR this_ptr); @@ -6426,12 +6506,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.C2Tuple_BlockHashChannelManagerZ_read(encodeArray(ser), arg); return nativeResponseValue; } - // void DecodeError_free(struct LDKDecodeError this_ptr); - export function DecodeError_free(this_ptr: number): void { + // void DecodeError_free(struct LDKDecodeError this_obj); + export function DecodeError_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.DecodeError_free(this_ptr); + const nativeResponseValue = wasm.DecodeError_free(this_obj); // debug statements here } // struct LDKDecodeError DecodeError_clone(const struct LDKDecodeError *NONNULL_PTR orig); @@ -6442,12 +6522,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.DecodeError_clone(orig); return nativeResponseValue; } - // void Init_free(struct LDKInit this_ptr); - export function Init_free(this_ptr: number): void { + // void Init_free(struct LDKInit this_obj); + export function Init_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.Init_free(this_ptr); + const nativeResponseValue = wasm.Init_free(this_obj); // debug statements here } // struct LDKInitFeatures Init_get_features(const struct LDKInit *NONNULL_PTR this_ptr); @@ -6482,12 +6562,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Init_clone(orig); return nativeResponseValue; } - // void ErrorMessage_free(struct LDKErrorMessage this_ptr); - export function ErrorMessage_free(this_ptr: number): void { + // void ErrorMessage_free(struct LDKErrorMessage this_obj); + export function ErrorMessage_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ErrorMessage_free(this_ptr); + const nativeResponseValue = wasm.ErrorMessage_free(this_obj); // debug statements here } // const uint8_t (*ErrorMessage_get_channel_id(const struct LDKErrorMessage *NONNULL_PTR this_ptr))[32]; @@ -6538,12 +6618,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ErrorMessage_clone(orig); return nativeResponseValue; } - // void Ping_free(struct LDKPing this_ptr); - export function Ping_free(this_ptr: number): void { + // void Ping_free(struct LDKPing this_obj); + export function Ping_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.Ping_free(this_ptr); + const nativeResponseValue = wasm.Ping_free(this_obj); // debug statements here } // uint16_t Ping_get_ponglen(const struct LDKPing *NONNULL_PTR this_ptr); @@ -6594,12 +6674,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Ping_clone(orig); return nativeResponseValue; } - // void Pong_free(struct LDKPong this_ptr); - export function Pong_free(this_ptr: number): void { + // void Pong_free(struct LDKPong this_obj); + export function Pong_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.Pong_free(this_ptr); + const nativeResponseValue = wasm.Pong_free(this_obj); // debug statements here } // uint16_t Pong_get_byteslen(const struct LDKPong *NONNULL_PTR this_ptr); @@ -6634,12 +6714,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Pong_clone(orig); return nativeResponseValue; } - // void OpenChannel_free(struct LDKOpenChannel this_ptr); - export function OpenChannel_free(this_ptr: number): void { + // void OpenChannel_free(struct LDKOpenChannel this_obj); + export function OpenChannel_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.OpenChannel_free(this_ptr); + const nativeResponseValue = wasm.OpenChannel_free(this_obj); // debug statements here } // const uint8_t (*OpenChannel_get_chain_hash(const struct LDKOpenChannel *NONNULL_PTR this_ptr))[32]; @@ -6938,12 +7018,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.OpenChannel_clone(orig); return nativeResponseValue; } - // void AcceptChannel_free(struct LDKAcceptChannel this_ptr); - export function AcceptChannel_free(this_ptr: number): void { + // void AcceptChannel_free(struct LDKAcceptChannel this_obj); + export function AcceptChannel_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.AcceptChannel_free(this_ptr); + const nativeResponseValue = wasm.AcceptChannel_free(this_obj); // debug statements here } // const uint8_t (*AcceptChannel_get_temporary_channel_id(const struct LDKAcceptChannel *NONNULL_PTR this_ptr))[32]; @@ -7178,12 +7258,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.AcceptChannel_clone(orig); return nativeResponseValue; } - // void FundingCreated_free(struct LDKFundingCreated this_ptr); - export function FundingCreated_free(this_ptr: number): void { + // void FundingCreated_free(struct LDKFundingCreated this_obj); + export function FundingCreated_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.FundingCreated_free(this_ptr); + const nativeResponseValue = wasm.FundingCreated_free(this_obj); // debug statements here } // const uint8_t (*FundingCreated_get_temporary_channel_id(const struct LDKFundingCreated *NONNULL_PTR this_ptr))[32]; @@ -7266,12 +7346,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.FundingCreated_clone(orig); return nativeResponseValue; } - // void FundingSigned_free(struct LDKFundingSigned this_ptr); - export function FundingSigned_free(this_ptr: number): void { + // void FundingSigned_free(struct LDKFundingSigned this_obj); + export function FundingSigned_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.FundingSigned_free(this_ptr); + const nativeResponseValue = wasm.FundingSigned_free(this_obj); // debug statements here } // const uint8_t (*FundingSigned_get_channel_id(const struct LDKFundingSigned *NONNULL_PTR this_ptr))[32]; @@ -7322,12 +7402,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.FundingSigned_clone(orig); return nativeResponseValue; } - // void FundingLocked_free(struct LDKFundingLocked this_ptr); - export function FundingLocked_free(this_ptr: number): void { + // void FundingLocked_free(struct LDKFundingLocked this_obj); + export function FundingLocked_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.FundingLocked_free(this_ptr); + const nativeResponseValue = wasm.FundingLocked_free(this_obj); // debug statements here } // const uint8_t (*FundingLocked_get_channel_id(const struct LDKFundingLocked *NONNULL_PTR this_ptr))[32]; @@ -7378,12 +7458,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.FundingLocked_clone(orig); return nativeResponseValue; } - // void Shutdown_free(struct LDKShutdown this_ptr); - export function Shutdown_free(this_ptr: number): void { + // void Shutdown_free(struct LDKShutdown this_obj); + export function Shutdown_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.Shutdown_free(this_ptr); + const nativeResponseValue = wasm.Shutdown_free(this_obj); // debug statements here } // const uint8_t (*Shutdown_get_channel_id(const struct LDKShutdown *NONNULL_PTR this_ptr))[32]; @@ -7434,12 +7514,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Shutdown_clone(orig); return nativeResponseValue; } - // void ClosingSigned_free(struct LDKClosingSigned this_ptr); - export function ClosingSigned_free(this_ptr: number): void { + // void ClosingSigned_free(struct LDKClosingSigned this_obj); + export function ClosingSigned_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ClosingSigned_free(this_ptr); + const nativeResponseValue = wasm.ClosingSigned_free(this_obj); // debug statements here } // const uint8_t (*ClosingSigned_get_channel_id(const struct LDKClosingSigned *NONNULL_PTR this_ptr))[32]; @@ -7506,12 +7586,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ClosingSigned_clone(orig); return nativeResponseValue; } - // void UpdateAddHTLC_free(struct LDKUpdateAddHTLC this_ptr); - export function UpdateAddHTLC_free(this_ptr: number): void { + // void UpdateAddHTLC_free(struct LDKUpdateAddHTLC this_obj); + export function UpdateAddHTLC_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UpdateAddHTLC_free(this_ptr); + const nativeResponseValue = wasm.UpdateAddHTLC_free(this_obj); // debug statements here } // const uint8_t (*UpdateAddHTLC_get_channel_id(const struct LDKUpdateAddHTLC *NONNULL_PTR this_ptr))[32]; @@ -7602,12 +7682,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UpdateAddHTLC_clone(orig); return nativeResponseValue; } - // void UpdateFulfillHTLC_free(struct LDKUpdateFulfillHTLC this_ptr); - export function UpdateFulfillHTLC_free(this_ptr: number): void { + // void UpdateFulfillHTLC_free(struct LDKUpdateFulfillHTLC this_obj); + export function UpdateFulfillHTLC_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UpdateFulfillHTLC_free(this_ptr); + const nativeResponseValue = wasm.UpdateFulfillHTLC_free(this_obj); // debug statements here } // const uint8_t (*UpdateFulfillHTLC_get_channel_id(const struct LDKUpdateFulfillHTLC *NONNULL_PTR this_ptr))[32]; @@ -7674,12 +7754,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UpdateFulfillHTLC_clone(orig); return nativeResponseValue; } - // void UpdateFailHTLC_free(struct LDKUpdateFailHTLC this_ptr); - export function UpdateFailHTLC_free(this_ptr: number): void { + // void UpdateFailHTLC_free(struct LDKUpdateFailHTLC this_obj); + export function UpdateFailHTLC_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UpdateFailHTLC_free(this_ptr); + const nativeResponseValue = wasm.UpdateFailHTLC_free(this_obj); // debug statements here } // const uint8_t (*UpdateFailHTLC_get_channel_id(const struct LDKUpdateFailHTLC *NONNULL_PTR this_ptr))[32]; @@ -7722,12 +7802,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UpdateFailHTLC_clone(orig); return nativeResponseValue; } - // void UpdateFailMalformedHTLC_free(struct LDKUpdateFailMalformedHTLC this_ptr); - export function UpdateFailMalformedHTLC_free(this_ptr: number): void { + // void UpdateFailMalformedHTLC_free(struct LDKUpdateFailMalformedHTLC this_obj); + export function UpdateFailMalformedHTLC_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UpdateFailMalformedHTLC_free(this_ptr); + const nativeResponseValue = wasm.UpdateFailMalformedHTLC_free(this_obj); // debug statements here } // const uint8_t (*UpdateFailMalformedHTLC_get_channel_id(const struct LDKUpdateFailMalformedHTLC *NONNULL_PTR this_ptr))[32]; @@ -7786,12 +7866,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UpdateFailMalformedHTLC_clone(orig); return nativeResponseValue; } - // void CommitmentSigned_free(struct LDKCommitmentSigned this_ptr); - export function CommitmentSigned_free(this_ptr: number): void { + // void CommitmentSigned_free(struct LDKCommitmentSigned this_obj); + export function CommitmentSigned_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.CommitmentSigned_free(this_ptr); + const nativeResponseValue = wasm.CommitmentSigned_free(this_obj); // debug statements here } // const uint8_t (*CommitmentSigned_get_channel_id(const struct LDKCommitmentSigned *NONNULL_PTR this_ptr))[32]; @@ -7850,12 +7930,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.CommitmentSigned_clone(orig); return nativeResponseValue; } - // void RevokeAndACK_free(struct LDKRevokeAndACK this_ptr); - export function RevokeAndACK_free(this_ptr: number): void { + // void RevokeAndACK_free(struct LDKRevokeAndACK this_obj); + export function RevokeAndACK_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.RevokeAndACK_free(this_ptr); + const nativeResponseValue = wasm.RevokeAndACK_free(this_obj); // debug statements here } // const uint8_t (*RevokeAndACK_get_channel_id(const struct LDKRevokeAndACK *NONNULL_PTR this_ptr))[32]; @@ -7922,12 +8002,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RevokeAndACK_clone(orig); return nativeResponseValue; } - // void UpdateFee_free(struct LDKUpdateFee this_ptr); - export function UpdateFee_free(this_ptr: number): void { + // void UpdateFee_free(struct LDKUpdateFee this_obj); + export function UpdateFee_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UpdateFee_free(this_ptr); + const nativeResponseValue = wasm.UpdateFee_free(this_obj); // debug statements here } // const uint8_t (*UpdateFee_get_channel_id(const struct LDKUpdateFee *NONNULL_PTR this_ptr))[32]; @@ -7978,12 +8058,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UpdateFee_clone(orig); return nativeResponseValue; } - // void DataLossProtect_free(struct LDKDataLossProtect this_ptr); - export function DataLossProtect_free(this_ptr: number): void { + // void DataLossProtect_free(struct LDKDataLossProtect this_obj); + export function DataLossProtect_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.DataLossProtect_free(this_ptr); + const nativeResponseValue = wasm.DataLossProtect_free(this_obj); // debug statements here } // const uint8_t (*DataLossProtect_get_your_last_per_commitment_secret(const struct LDKDataLossProtect *NONNULL_PTR this_ptr))[32]; @@ -8034,12 +8114,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.DataLossProtect_clone(orig); return nativeResponseValue; } - // void ChannelReestablish_free(struct LDKChannelReestablish this_ptr); - export function ChannelReestablish_free(this_ptr: number): void { + // void ChannelReestablish_free(struct LDKChannelReestablish this_obj); + export function ChannelReestablish_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelReestablish_free(this_ptr); + const nativeResponseValue = wasm.ChannelReestablish_free(this_obj); // debug statements here } // const uint8_t (*ChannelReestablish_get_channel_id(const struct LDKChannelReestablish *NONNULL_PTR this_ptr))[32]; @@ -8098,12 +8178,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelReestablish_clone(orig); return nativeResponseValue; } - // void AnnouncementSignatures_free(struct LDKAnnouncementSignatures this_ptr); - export function AnnouncementSignatures_free(this_ptr: number): void { + // void AnnouncementSignatures_free(struct LDKAnnouncementSignatures this_obj); + export function AnnouncementSignatures_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.AnnouncementSignatures_free(this_ptr); + const nativeResponseValue = wasm.AnnouncementSignatures_free(this_obj); // debug statements here } // const uint8_t (*AnnouncementSignatures_get_channel_id(const struct LDKAnnouncementSignatures *NONNULL_PTR this_ptr))[32]; @@ -8218,12 +8298,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Result_read(encodeArray(ser)); return nativeResponseValue; } - // void UnsignedNodeAnnouncement_free(struct LDKUnsignedNodeAnnouncement this_ptr); - export function UnsignedNodeAnnouncement_free(this_ptr: number): void { + // void UnsignedNodeAnnouncement_free(struct LDKUnsignedNodeAnnouncement this_obj); + export function UnsignedNodeAnnouncement_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UnsignedNodeAnnouncement_free(this_ptr); + const nativeResponseValue = wasm.UnsignedNodeAnnouncement_free(this_obj); // debug statements here } // struct LDKNodeFeatures UnsignedNodeAnnouncement_get_features(const struct LDKUnsignedNodeAnnouncement *NONNULL_PTR this_ptr); @@ -8322,12 +8402,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UnsignedNodeAnnouncement_clone(orig); return nativeResponseValue; } - // void NodeAnnouncement_free(struct LDKNodeAnnouncement this_ptr); - export function NodeAnnouncement_free(this_ptr: number): void { + // void NodeAnnouncement_free(struct LDKNodeAnnouncement this_obj); + export function NodeAnnouncement_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NodeAnnouncement_free(this_ptr); + const nativeResponseValue = wasm.NodeAnnouncement_free(this_obj); // debug statements here } // struct LDKSignature NodeAnnouncement_get_signature(const struct LDKNodeAnnouncement *NONNULL_PTR this_ptr); @@ -8378,12 +8458,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.NodeAnnouncement_clone(orig); return nativeResponseValue; } - // void UnsignedChannelAnnouncement_free(struct LDKUnsignedChannelAnnouncement this_ptr); - export function UnsignedChannelAnnouncement_free(this_ptr: number): void { + // void UnsignedChannelAnnouncement_free(struct LDKUnsignedChannelAnnouncement this_obj); + export function UnsignedChannelAnnouncement_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UnsignedChannelAnnouncement_free(this_ptr); + const nativeResponseValue = wasm.UnsignedChannelAnnouncement_free(this_obj); // debug statements here } // struct LDKChannelFeatures UnsignedChannelAnnouncement_get_features(const struct LDKUnsignedChannelAnnouncement *NONNULL_PTR this_ptr); @@ -8506,12 +8586,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UnsignedChannelAnnouncement_clone(orig); return nativeResponseValue; } - // void ChannelAnnouncement_free(struct LDKChannelAnnouncement this_ptr); - export function ChannelAnnouncement_free(this_ptr: number): void { + // void ChannelAnnouncement_free(struct LDKChannelAnnouncement this_obj); + export function ChannelAnnouncement_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelAnnouncement_free(this_ptr); + const nativeResponseValue = wasm.ChannelAnnouncement_free(this_obj); // debug statements here } // struct LDKSignature ChannelAnnouncement_get_node_signature_1(const struct LDKChannelAnnouncement *NONNULL_PTR this_ptr); @@ -8610,12 +8690,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelAnnouncement_clone(orig); return nativeResponseValue; } - // void UnsignedChannelUpdate_free(struct LDKUnsignedChannelUpdate this_ptr); - export function UnsignedChannelUpdate_free(this_ptr: number): void { + // void UnsignedChannelUpdate_free(struct LDKUnsignedChannelUpdate this_obj); + export function UnsignedChannelUpdate_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.UnsignedChannelUpdate_free(this_ptr); + const nativeResponseValue = wasm.UnsignedChannelUpdate_free(this_obj); // debug statements here } // const uint8_t (*UnsignedChannelUpdate_get_chain_hash(const struct LDKUnsignedChannelUpdate *NONNULL_PTR this_ptr))[32]; @@ -8754,12 +8834,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.UnsignedChannelUpdate_clone(orig); return nativeResponseValue; } - // void ChannelUpdate_free(struct LDKChannelUpdate this_ptr); - export function ChannelUpdate_free(this_ptr: number): void { + // void ChannelUpdate_free(struct LDKChannelUpdate this_obj); + export function ChannelUpdate_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelUpdate_free(this_ptr); + const nativeResponseValue = wasm.ChannelUpdate_free(this_obj); // debug statements here } // struct LDKSignature ChannelUpdate_get_signature(const struct LDKChannelUpdate *NONNULL_PTR this_ptr); @@ -8810,12 +8890,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelUpdate_clone(orig); return nativeResponseValue; } - // void QueryChannelRange_free(struct LDKQueryChannelRange this_ptr); - export function QueryChannelRange_free(this_ptr: number): void { + // void QueryChannelRange_free(struct LDKQueryChannelRange this_obj); + export function QueryChannelRange_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.QueryChannelRange_free(this_ptr); + const nativeResponseValue = wasm.QueryChannelRange_free(this_obj); // debug statements here } // const uint8_t (*QueryChannelRange_get_chain_hash(const struct LDKQueryChannelRange *NONNULL_PTR this_ptr))[32]; @@ -8882,12 +8962,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.QueryChannelRange_clone(orig); return nativeResponseValue; } - // void ReplyChannelRange_free(struct LDKReplyChannelRange this_ptr); - export function ReplyChannelRange_free(this_ptr: number): void { + // void ReplyChannelRange_free(struct LDKReplyChannelRange this_obj); + export function ReplyChannelRange_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ReplyChannelRange_free(this_ptr); + const nativeResponseValue = wasm.ReplyChannelRange_free(this_obj); // debug statements here } // const uint8_t (*ReplyChannelRange_get_chain_hash(const struct LDKReplyChannelRange *NONNULL_PTR this_ptr))[32]; @@ -8978,12 +9058,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ReplyChannelRange_clone(orig); return nativeResponseValue; } - // void QueryShortChannelIds_free(struct LDKQueryShortChannelIds this_ptr); - export function QueryShortChannelIds_free(this_ptr: number): void { + // void QueryShortChannelIds_free(struct LDKQueryShortChannelIds this_obj); + export function QueryShortChannelIds_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.QueryShortChannelIds_free(this_ptr); + const nativeResponseValue = wasm.QueryShortChannelIds_free(this_obj); // debug statements here } // const uint8_t (*QueryShortChannelIds_get_chain_hash(const struct LDKQueryShortChannelIds *NONNULL_PTR this_ptr))[32]; @@ -9026,12 +9106,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.QueryShortChannelIds_clone(orig); return nativeResponseValue; } - // void ReplyShortChannelIdsEnd_free(struct LDKReplyShortChannelIdsEnd this_ptr); - export function ReplyShortChannelIdsEnd_free(this_ptr: number): void { + // void ReplyShortChannelIdsEnd_free(struct LDKReplyShortChannelIdsEnd this_obj); + export function ReplyShortChannelIdsEnd_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ReplyShortChannelIdsEnd_free(this_ptr); + const nativeResponseValue = wasm.ReplyShortChannelIdsEnd_free(this_obj); // debug statements here } // const uint8_t (*ReplyShortChannelIdsEnd_get_chain_hash(const struct LDKReplyShortChannelIdsEnd *NONNULL_PTR this_ptr))[32]; @@ -9082,12 +9162,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ReplyShortChannelIdsEnd_clone(orig); return nativeResponseValue; } - // void GossipTimestampFilter_free(struct LDKGossipTimestampFilter this_ptr); - export function GossipTimestampFilter_free(this_ptr: number): void { + // void GossipTimestampFilter_free(struct LDKGossipTimestampFilter this_obj); + export function GossipTimestampFilter_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.GossipTimestampFilter_free(this_ptr); + const nativeResponseValue = wasm.GossipTimestampFilter_free(this_obj); // debug statements here } // const uint8_t (*GossipTimestampFilter_get_chain_hash(const struct LDKGossipTimestampFilter *NONNULL_PTR this_ptr))[32]; @@ -9170,12 +9250,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ErrorAction_clone(orig); return nativeResponseValue; } - // void LightningError_free(struct LDKLightningError this_ptr); - export function LightningError_free(this_ptr: number): void { + // void LightningError_free(struct LDKLightningError this_obj); + export function LightningError_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.LightningError_free(this_ptr); + const nativeResponseValue = wasm.LightningError_free(this_obj); // debug statements here } // struct LDKStr LightningError_get_err(const struct LDKLightningError *NONNULL_PTR this_ptr); @@ -9226,12 +9306,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.LightningError_clone(orig); return nativeResponseValue; } - // void CommitmentUpdate_free(struct LDKCommitmentUpdate this_ptr); - export function CommitmentUpdate_free(this_ptr: number): void { + // void CommitmentUpdate_free(struct LDKCommitmentUpdate this_obj); + export function CommitmentUpdate_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.CommitmentUpdate_free(this_ptr); + const nativeResponseValue = wasm.CommitmentUpdate_free(this_obj); // debug statements here } // void CommitmentUpdate_set_update_add_htlcs(struct LDKCommitmentUpdate *NONNULL_PTR this_ptr, struct LDKCVec_UpdateAddHTLCZ val); @@ -9842,12 +9922,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.GossipTimestampFilter_write(obj); return decodeArray(nativeResponseValue); } - // void IgnoringMessageHandler_free(struct LDKIgnoringMessageHandler this_ptr); - export function IgnoringMessageHandler_free(this_ptr: number): void { + // void IgnoringMessageHandler_free(struct LDKIgnoringMessageHandler this_obj); + export function IgnoringMessageHandler_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.IgnoringMessageHandler_free(this_ptr); + const nativeResponseValue = wasm.IgnoringMessageHandler_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKIgnoringMessageHandler IgnoringMessageHandler_new(void); @@ -9874,12 +9954,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.IgnoringMessageHandler_as_RoutingMessageHandler(this_arg); return nativeResponseValue; } - // void ErroringMessageHandler_free(struct LDKErroringMessageHandler this_ptr); - export function ErroringMessageHandler_free(this_ptr: number): void { + // void ErroringMessageHandler_free(struct LDKErroringMessageHandler this_obj); + export function ErroringMessageHandler_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ErroringMessageHandler_free(this_ptr); + const nativeResponseValue = wasm.ErroringMessageHandler_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKErroringMessageHandler ErroringMessageHandler_new(void); @@ -9906,12 +9986,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ErroringMessageHandler_as_ChannelMessageHandler(this_arg); return nativeResponseValue; } - // void MessageHandler_free(struct LDKMessageHandler this_ptr); - export function MessageHandler_free(this_ptr: number): void { + // void MessageHandler_free(struct LDKMessageHandler this_obj); + export function MessageHandler_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.MessageHandler_free(this_ptr); + const nativeResponseValue = wasm.MessageHandler_free(this_obj); // debug statements here } // const struct LDKChannelMessageHandler *MessageHandler_get_chan_handler(const struct LDKMessageHandler *NONNULL_PTR this_ptr); @@ -9970,12 +10050,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.SocketDescriptor_free(this_ptr); // debug statements here } - // void PeerHandleError_free(struct LDKPeerHandleError this_ptr); - export function PeerHandleError_free(this_ptr: number): void { + // void PeerHandleError_free(struct LDKPeerHandleError this_obj); + export function PeerHandleError_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.PeerHandleError_free(this_ptr); + const nativeResponseValue = wasm.PeerHandleError_free(this_obj); // debug statements here } // bool PeerHandleError_get_no_connection_possible(const struct LDKPeerHandleError *NONNULL_PTR this_ptr); @@ -10010,12 +10090,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.PeerHandleError_clone(orig); return nativeResponseValue; } - // void PeerManager_free(struct LDKPeerManager this_ptr); - export function PeerManager_free(this_ptr: number): void { + // void PeerManager_free(struct LDKPeerManager this_obj); + export function PeerManager_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.PeerManager_free(this_ptr); + const nativeResponseValue = wasm.PeerManager_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKPeerManager PeerManager_new(struct LDKMessageHandler message_handler, struct LDKSecretKey our_node_secret, const uint8_t (*ephemeral_random_data)[32], struct LDKLogger logger); @@ -10138,12 +10218,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.derive_public_revocation_key(encodeArray(per_commitment_point), encodeArray(countersignatory_revocation_base_point)); return nativeResponseValue; } - // void TxCreationKeys_free(struct LDKTxCreationKeys this_ptr); - export function TxCreationKeys_free(this_ptr: number): void { + // void TxCreationKeys_free(struct LDKTxCreationKeys this_obj); + export function TxCreationKeys_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.TxCreationKeys_free(this_ptr); + const nativeResponseValue = wasm.TxCreationKeys_free(this_obj); // debug statements here } // struct LDKPublicKey TxCreationKeys_get_per_commitment_point(const struct LDKTxCreationKeys *NONNULL_PTR this_ptr); @@ -10258,12 +10338,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.TxCreationKeys_read(encodeArray(ser)); return nativeResponseValue; } - // void ChannelPublicKeys_free(struct LDKChannelPublicKeys this_ptr); - export function ChannelPublicKeys_free(this_ptr: number): void { + // void ChannelPublicKeys_free(struct LDKChannelPublicKeys this_obj); + export function ChannelPublicKeys_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelPublicKeys_free(this_ptr); + const nativeResponseValue = wasm.ChannelPublicKeys_free(this_obj); // debug statements here } // struct LDKPublicKey ChannelPublicKeys_get_funding_pubkey(const struct LDKChannelPublicKeys *NONNULL_PTR this_ptr); @@ -10402,12 +10482,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.get_revokeable_redeemscript(encodeArray(revocation_key), contest_delay, encodeArray(broadcaster_delayed_payment_key)); return decodeArray(nativeResponseValue); } - // void HTLCOutputInCommitment_free(struct LDKHTLCOutputInCommitment this_ptr); - export function HTLCOutputInCommitment_free(this_ptr: number): void { + // void HTLCOutputInCommitment_free(struct LDKHTLCOutputInCommitment this_obj); + export function HTLCOutputInCommitment_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.HTLCOutputInCommitment_free(this_ptr); + const nativeResponseValue = wasm.HTLCOutputInCommitment_free(this_obj); // debug statements here } // bool HTLCOutputInCommitment_get_offered(const struct LDKHTLCOutputInCommitment *NONNULL_PTR this_ptr); @@ -10522,12 +10602,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.build_htlc_transaction(encodeArray(prev_hash), feerate_per_kw, contest_delay, htlc, encodeArray(broadcaster_delayed_payment_key), encodeArray(revocation_key)); return decodeArray(nativeResponseValue); } - // void ChannelTransactionParameters_free(struct LDKChannelTransactionParameters this_ptr); - export function ChannelTransactionParameters_free(this_ptr: number): void { + // void ChannelTransactionParameters_free(struct LDKChannelTransactionParameters this_obj); + export function ChannelTransactionParameters_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelTransactionParameters_free(this_ptr); + const nativeResponseValue = wasm.ChannelTransactionParameters_free(this_obj); // debug statements here } // struct LDKChannelPublicKeys ChannelTransactionParameters_get_holder_pubkeys(const struct LDKChannelTransactionParameters *NONNULL_PTR this_ptr); @@ -10626,12 +10706,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelTransactionParameters_clone(orig); return nativeResponseValue; } - // void CounterpartyChannelTransactionParameters_free(struct LDKCounterpartyChannelTransactionParameters this_ptr); - export function CounterpartyChannelTransactionParameters_free(this_ptr: number): void { + // void CounterpartyChannelTransactionParameters_free(struct LDKCounterpartyChannelTransactionParameters this_obj); + export function CounterpartyChannelTransactionParameters_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.CounterpartyChannelTransactionParameters_free(this_ptr); + const nativeResponseValue = wasm.CounterpartyChannelTransactionParameters_free(this_obj); // debug statements here } // struct LDKChannelPublicKeys CounterpartyChannelTransactionParameters_get_pubkeys(const struct LDKCounterpartyChannelTransactionParameters *NONNULL_PTR this_ptr); @@ -10738,12 +10818,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelTransactionParameters_read(encodeArray(ser)); return nativeResponseValue; } - // void DirectedChannelTransactionParameters_free(struct LDKDirectedChannelTransactionParameters this_ptr); - export function DirectedChannelTransactionParameters_free(this_ptr: number): void { + // void DirectedChannelTransactionParameters_free(struct LDKDirectedChannelTransactionParameters this_obj); + export function DirectedChannelTransactionParameters_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.DirectedChannelTransactionParameters_free(this_ptr); + const nativeResponseValue = wasm.DirectedChannelTransactionParameters_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKChannelPublicKeys DirectedChannelTransactionParameters_broadcaster_pubkeys(const struct LDKDirectedChannelTransactionParameters *NONNULL_PTR this_arg); @@ -10786,12 +10866,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.DirectedChannelTransactionParameters_funding_outpoint(this_arg); return nativeResponseValue; } - // void HolderCommitmentTransaction_free(struct LDKHolderCommitmentTransaction this_ptr); - export function HolderCommitmentTransaction_free(this_ptr: number): void { + // void HolderCommitmentTransaction_free(struct LDKHolderCommitmentTransaction this_obj); + export function HolderCommitmentTransaction_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.HolderCommitmentTransaction_free(this_ptr); + const nativeResponseValue = wasm.HolderCommitmentTransaction_free(this_obj); // debug statements here } // struct LDKSignature HolderCommitmentTransaction_get_counterparty_sig(const struct LDKHolderCommitmentTransaction *NONNULL_PTR this_ptr); @@ -10850,12 +10930,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.HolderCommitmentTransaction_new(commitment_tx, encodeArray(counterparty_sig), counterparty_htlc_sigs, encodeArray(holder_funding_key), encodeArray(counterparty_funding_key)); return nativeResponseValue; } - // void BuiltCommitmentTransaction_free(struct LDKBuiltCommitmentTransaction this_ptr); - export function BuiltCommitmentTransaction_free(this_ptr: number): void { + // void BuiltCommitmentTransaction_free(struct LDKBuiltCommitmentTransaction this_obj); + export function BuiltCommitmentTransaction_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.BuiltCommitmentTransaction_free(this_ptr); + const nativeResponseValue = wasm.BuiltCommitmentTransaction_free(this_obj); // debug statements here } // struct LDKTransaction BuiltCommitmentTransaction_get_transaction(const struct LDKBuiltCommitmentTransaction *NONNULL_PTR this_ptr); @@ -10938,12 +11018,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.BuiltCommitmentTransaction_sign(this_arg, encodeArray(funding_key), encodeArray(funding_redeemscript), channel_value_satoshis); return decodeArray(nativeResponseValue); } - // void CommitmentTransaction_free(struct LDKCommitmentTransaction this_ptr); - export function CommitmentTransaction_free(this_ptr: number): void { + // void CommitmentTransaction_free(struct LDKCommitmentTransaction this_obj); + export function CommitmentTransaction_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.CommitmentTransaction_free(this_ptr); + const nativeResponseValue = wasm.CommitmentTransaction_free(this_obj); // debug statements here } // struct LDKCommitmentTransaction CommitmentTransaction_clone(const struct LDKCommitmentTransaction *NONNULL_PTR orig); @@ -11018,12 +11098,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.CommitmentTransaction_verify(this_arg, channel_parameters, broadcaster_keys, countersignatory_keys); return nativeResponseValue; } - // void TrustedCommitmentTransaction_free(struct LDKTrustedCommitmentTransaction this_ptr); - export function TrustedCommitmentTransaction_free(this_ptr: number): void { + // void TrustedCommitmentTransaction_free(struct LDKTrustedCommitmentTransaction this_obj); + export function TrustedCommitmentTransaction_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.TrustedCommitmentTransaction_free(this_ptr); + const nativeResponseValue = wasm.TrustedCommitmentTransaction_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKThirtyTwoBytes TrustedCommitmentTransaction_txid(const struct LDKTrustedCommitmentTransaction *NONNULL_PTR this_arg); @@ -11090,28 +11170,28 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelFeatures_clone(orig); return nativeResponseValue; } - // void InitFeatures_free(struct LDKInitFeatures this_ptr); - export function InitFeatures_free(this_ptr: number): void { + // void InitFeatures_free(struct LDKInitFeatures this_obj); + export function InitFeatures_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.InitFeatures_free(this_ptr); + const nativeResponseValue = wasm.InitFeatures_free(this_obj); // debug statements here } - // void NodeFeatures_free(struct LDKNodeFeatures this_ptr); - export function NodeFeatures_free(this_ptr: number): void { + // void NodeFeatures_free(struct LDKNodeFeatures this_obj); + export function NodeFeatures_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NodeFeatures_free(this_ptr); + const nativeResponseValue = wasm.NodeFeatures_free(this_obj); // debug statements here } - // void ChannelFeatures_free(struct LDKChannelFeatures this_ptr); - export function ChannelFeatures_free(this_ptr: number): void { + // void ChannelFeatures_free(struct LDKChannelFeatures this_obj); + export function ChannelFeatures_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelFeatures_free(this_ptr); + const nativeResponseValue = wasm.ChannelFeatures_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKInitFeatures InitFeatures_empty(void); @@ -11210,12 +11290,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelFeatures_read(encodeArray(ser)); return nativeResponseValue; } - // void RouteHop_free(struct LDKRouteHop this_ptr); - export function RouteHop_free(this_ptr: number): void { + // void RouteHop_free(struct LDKRouteHop this_obj); + export function RouteHop_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.RouteHop_free(this_ptr); + const nativeResponseValue = wasm.RouteHop_free(this_obj); // debug statements here } // struct LDKPublicKey RouteHop_get_pubkey(const struct LDKRouteHop *NONNULL_PTR this_ptr); @@ -11330,12 +11410,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RouteHop_clone(orig); return nativeResponseValue; } - // void Route_free(struct LDKRoute this_ptr); - export function Route_free(this_ptr: number): void { + // void Route_free(struct LDKRoute this_obj); + export function Route_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.Route_free(this_ptr); + const nativeResponseValue = wasm.Route_free(this_obj); // debug statements here } // void Route_set_paths(struct LDKRoute *NONNULL_PTR this_ptr, struct LDKCVec_CVec_RouteHopZZ val); @@ -11378,12 +11458,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.Route_read(encodeArray(ser)); return nativeResponseValue; } - // void RouteHint_free(struct LDKRouteHint this_ptr); - export function RouteHint_free(this_ptr: number): void { + // void RouteHint_free(struct LDKRouteHint this_obj); + export function RouteHint_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.RouteHint_free(this_ptr); + const nativeResponseValue = wasm.RouteHint_free(this_obj); // debug statements here } // struct LDKPublicKey RouteHint_get_src_node_id(const struct LDKRouteHint *NONNULL_PTR this_ptr); @@ -11466,12 +11546,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.get_route(encodeArray(our_node_id), network, encodeArray(payee), first_hops, last_hops, final_value_msat, final_cltv, logger); return nativeResponseValue; } - // void NetworkGraph_free(struct LDKNetworkGraph this_ptr); - export function NetworkGraph_free(this_ptr: number): void { + // void NetworkGraph_free(struct LDKNetworkGraph this_obj); + export function NetworkGraph_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NetworkGraph_free(this_ptr); + const nativeResponseValue = wasm.NetworkGraph_free(this_obj); // debug statements here } // struct LDKNetworkGraph NetworkGraph_clone(const struct LDKNetworkGraph *NONNULL_PTR orig); @@ -11482,20 +11562,20 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.NetworkGraph_clone(orig); return nativeResponseValue; } - // void LockedNetworkGraph_free(struct LDKLockedNetworkGraph this_ptr); - export function LockedNetworkGraph_free(this_ptr: number): void { + // void LockedNetworkGraph_free(struct LDKLockedNetworkGraph this_obj); + export function LockedNetworkGraph_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.LockedNetworkGraph_free(this_ptr); + const nativeResponseValue = wasm.LockedNetworkGraph_free(this_obj); // debug statements here } - // void NetGraphMsgHandler_free(struct LDKNetGraphMsgHandler this_ptr); - export function NetGraphMsgHandler_free(this_ptr: number): void { + // void NetGraphMsgHandler_free(struct LDKNetGraphMsgHandler this_obj); + export function NetGraphMsgHandler_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NetGraphMsgHandler_free(this_ptr); + const nativeResponseValue = wasm.NetGraphMsgHandler_free(this_obj); // debug statements here } // MUST_USE_RES struct LDKNetGraphMsgHandler NetGraphMsgHandler_new(struct LDKThirtyTwoBytes genesis_hash, struct LDKAccess *chain_access, struct LDKLogger logger); @@ -11554,12 +11634,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.NetGraphMsgHandler_as_MessageSendEventsProvider(this_arg); return nativeResponseValue; } - // void DirectionalChannelInfo_free(struct LDKDirectionalChannelInfo this_ptr); - export function DirectionalChannelInfo_free(this_ptr: number): void { + // void DirectionalChannelInfo_free(struct LDKDirectionalChannelInfo this_obj); + export function DirectionalChannelInfo_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.DirectionalChannelInfo_free(this_ptr); + const nativeResponseValue = wasm.DirectionalChannelInfo_free(this_obj); // debug statements here } // uint32_t DirectionalChannelInfo_get_last_update(const struct LDKDirectionalChannelInfo *NONNULL_PTR this_ptr); @@ -11682,12 +11762,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.DirectionalChannelInfo_read(encodeArray(ser)); return nativeResponseValue; } - // void ChannelInfo_free(struct LDKChannelInfo this_ptr); - export function ChannelInfo_free(this_ptr: number): void { + // void ChannelInfo_free(struct LDKChannelInfo this_obj); + export function ChannelInfo_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.ChannelInfo_free(this_ptr); + const nativeResponseValue = wasm.ChannelInfo_free(this_obj); // debug statements here } // struct LDKChannelFeatures ChannelInfo_get_features(const struct LDKChannelInfo *NONNULL_PTR this_ptr); @@ -11810,12 +11890,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.ChannelInfo_read(encodeArray(ser)); return nativeResponseValue; } - // void RoutingFees_free(struct LDKRoutingFees this_ptr); - export function RoutingFees_free(this_ptr: number): void { + // void RoutingFees_free(struct LDKRoutingFees this_obj); + export function RoutingFees_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.RoutingFees_free(this_ptr); + const nativeResponseValue = wasm.RoutingFees_free(this_obj); // debug statements here } // uint32_t RoutingFees_get_base_msat(const struct LDKRoutingFees *NONNULL_PTR this_ptr); @@ -11882,12 +11962,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.RoutingFees_write(obj); return decodeArray(nativeResponseValue); } - // void NodeAnnouncementInfo_free(struct LDKNodeAnnouncementInfo this_ptr); - export function NodeAnnouncementInfo_free(this_ptr: number): void { + // void NodeAnnouncementInfo_free(struct LDKNodeAnnouncementInfo this_obj); + export function NodeAnnouncementInfo_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NodeAnnouncementInfo_free(this_ptr); + const nativeResponseValue = wasm.NodeAnnouncementInfo_free(this_obj); // debug statements here } // struct LDKNodeFeatures NodeAnnouncementInfo_get_features(const struct LDKNodeAnnouncementInfo *NONNULL_PTR this_ptr); @@ -12010,12 +12090,12 @@ public static native long new_empty_slice_vec(); const nativeResponseValue = wasm.NodeAnnouncementInfo_read(encodeArray(ser)); return nativeResponseValue; } - // void NodeInfo_free(struct LDKNodeInfo this_ptr); - export function NodeInfo_free(this_ptr: number): void { + // void NodeInfo_free(struct LDKNodeInfo this_obj); + export function NodeInfo_free(this_obj: number): void { if(!isWasmInitialized) { throw new Error("initializeWasm() must be awaited first!"); } - const nativeResponseValue = wasm.NodeInfo_free(this_ptr); + const nativeResponseValue = wasm.NodeInfo_free(this_obj); // debug statements here } // void NodeInfo_set_channels(struct LDKNodeInfo *NONNULL_PTR this_ptr, struct LDKCVec_u64Z val); diff --git a/ts/structs/ChannelMonitor.ts b/ts/structs/ChannelMonitor.ts index a2f59137..3c8a824d 100644 --- a/ts/structs/ChannelMonitor.ts +++ b/ts/structs/ChannelMonitor.ts @@ -58,6 +58,35 @@ import * as bindings from '../bindings' // TODO: figure out location return ret_conv; } + public TwoTuple[]>[] get_outputs_to_watch() { + number[] ret = bindings.ChannelMonitor_get_outputs_to_watch(this.ptr); + TwoTuple[]>[] ret_conv_54_arr = new TwoTuple[ret.length]; + for (int c = 0; c < ret.length; c++) { + number ret_conv_54 = ret[c]; + Uint8Array ret_conv_54_a = bindings.LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_a(ret_conv_54); + number[] ret_conv_54_b = bindings.LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ_get_b(ret_conv_54); + TwoTuple[] ret_conv_54_b_conv_30_arr = new TwoTuple[ret_conv_54_b.length]; + for (int e = 0; e < ret_conv_54_b.length; e++) { + number ret_conv_54_b_conv_30 = ret_conv_54_b[e]; + number ret_conv_54_b_conv_30_a = bindings.LDKC2Tuple_u32ScriptZ_get_a(ret_conv_54_b_conv_30); + Uint8Array ret_conv_54_b_conv_30_b = bindings.LDKC2Tuple_u32ScriptZ_get_b(ret_conv_54_b_conv_30); + TwoTuple ret_conv_54_b_conv_30_conv = new TwoTuple(ret_conv_54_b_conv_30_a, ret_conv_54_b_conv_30_b, () -> { + bindings.C2Tuple_u32ScriptZ_free(ret_conv_54_b_conv_30); + }); + ret_conv_54_b_conv_30_arr[e] = ret_conv_54_b_conv_30_conv; + }; + TwoTuple[]> ret_conv_54_conv = new TwoTuple[]>(ret_conv_54_a, ret_conv_54_b_conv_30_arr); + // Warning: We may not free the C tuple object! + ret_conv_54_arr[c] = ret_conv_54_conv; + } + return ret_conv_54_arr; + } + + public void load_outputs_to_watch(Filter filter) { + bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, filter == null ? 0 : filter.ptr); + this.ptrs_to.add(filter); + } + public MonitorEvent[] get_and_clear_pending_monitor_events() { number[] ret = bindings.ChannelMonitor_get_and_clear_pending_monitor_events(this.ptr); MonitorEvent[] ret_conv_14_arr = new MonitorEvent[ret.length]; -- 2.39.5