1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
12 * An event generated by ChannelManager which indicates a message should be sent to a peer (or
13 * broadcast to most peers).
14 * These events are handled by PeerManager::process_events if you are using a PeerManager.
16 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
17 public class MessageSendEvent extends CommonBase {
18 private MessageSendEvent(Object _dummy, long ptr) { super(ptr); }
19 @Override @SuppressWarnings("deprecation")
20 protected void finalize() throws Throwable {
22 if (ptr != 0) { bindings.MessageSendEvent_free(ptr); }
24 static MessageSendEvent constr_from_ptr(long ptr) {
25 bindings.LDKMessageSendEvent raw_val = bindings.LDKMessageSendEvent_ref_from_ptr(ptr);
26 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendAcceptChannel.class) {
27 return new SendAcceptChannel(ptr, (bindings.LDKMessageSendEvent.SendAcceptChannel)raw_val);
29 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendOpenChannel.class) {
30 return new SendOpenChannel(ptr, (bindings.LDKMessageSendEvent.SendOpenChannel)raw_val);
32 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendFundingCreated.class) {
33 return new SendFundingCreated(ptr, (bindings.LDKMessageSendEvent.SendFundingCreated)raw_val);
35 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendFundingSigned.class) {
36 return new SendFundingSigned(ptr, (bindings.LDKMessageSendEvent.SendFundingSigned)raw_val);
38 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelReady.class) {
39 return new SendChannelReady(ptr, (bindings.LDKMessageSendEvent.SendChannelReady)raw_val);
41 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendAnnouncementSignatures.class) {
42 return new SendAnnouncementSignatures(ptr, (bindings.LDKMessageSendEvent.SendAnnouncementSignatures)raw_val);
44 if (raw_val.getClass() == bindings.LDKMessageSendEvent.UpdateHTLCs.class) {
45 return new UpdateHTLCs(ptr, (bindings.LDKMessageSendEvent.UpdateHTLCs)raw_val);
47 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendRevokeAndACK.class) {
48 return new SendRevokeAndACK(ptr, (bindings.LDKMessageSendEvent.SendRevokeAndACK)raw_val);
50 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendClosingSigned.class) {
51 return new SendClosingSigned(ptr, (bindings.LDKMessageSendEvent.SendClosingSigned)raw_val);
53 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendShutdown.class) {
54 return new SendShutdown(ptr, (bindings.LDKMessageSendEvent.SendShutdown)raw_val);
56 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelReestablish.class) {
57 return new SendChannelReestablish(ptr, (bindings.LDKMessageSendEvent.SendChannelReestablish)raw_val);
59 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelAnnouncement.class) {
60 return new SendChannelAnnouncement(ptr, (bindings.LDKMessageSendEvent.SendChannelAnnouncement)raw_val);
62 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement.class) {
63 return new BroadcastChannelAnnouncement(ptr, (bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement)raw_val);
65 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastChannelUpdate.class) {
66 return new BroadcastChannelUpdate(ptr, (bindings.LDKMessageSendEvent.BroadcastChannelUpdate)raw_val);
68 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement.class) {
69 return new BroadcastNodeAnnouncement(ptr, (bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement)raw_val);
71 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelUpdate.class) {
72 return new SendChannelUpdate(ptr, (bindings.LDKMessageSendEvent.SendChannelUpdate)raw_val);
74 if (raw_val.getClass() == bindings.LDKMessageSendEvent.HandleError.class) {
75 return new HandleError(ptr, (bindings.LDKMessageSendEvent.HandleError)raw_val);
77 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelRangeQuery.class) {
78 return new SendChannelRangeQuery(ptr, (bindings.LDKMessageSendEvent.SendChannelRangeQuery)raw_val);
80 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendShortIdsQuery.class) {
81 return new SendShortIdsQuery(ptr, (bindings.LDKMessageSendEvent.SendShortIdsQuery)raw_val);
83 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendReplyChannelRange.class) {
84 return new SendReplyChannelRange(ptr, (bindings.LDKMessageSendEvent.SendReplyChannelRange)raw_val);
86 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendGossipTimestampFilter.class) {
87 return new SendGossipTimestampFilter(ptr, (bindings.LDKMessageSendEvent.SendGossipTimestampFilter)raw_val);
89 assert false; return null; // Unreachable without extending the (internal) bindings interface
93 * Used to indicate that we've accepted a channel open and should send the accept_channel
94 * message provided to the given peer.
96 public final static class SendAcceptChannel extends MessageSendEvent {
98 * The node_id of the node which should receive this message
100 public final byte[] node_id;
102 * The message which should be sent.
104 public final org.ldk.structs.AcceptChannel msg;
105 private SendAcceptChannel(long ptr, bindings.LDKMessageSendEvent.SendAcceptChannel obj) {
107 this.node_id = obj.node_id;
109 org.ldk.structs.AcceptChannel msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.AcceptChannel(null, msg); }
110 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
111 this.msg = msg_hu_conv;
115 * Used to indicate that we've initiated a channel open and should send the open_channel
116 * message provided to the given peer.
118 public final static class SendOpenChannel extends MessageSendEvent {
120 * The node_id of the node which should receive this message
122 public final byte[] node_id;
124 * The message which should be sent.
126 public final org.ldk.structs.OpenChannel msg;
127 private SendOpenChannel(long ptr, bindings.LDKMessageSendEvent.SendOpenChannel obj) {
129 this.node_id = obj.node_id;
131 org.ldk.structs.OpenChannel msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.OpenChannel(null, msg); }
132 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
133 this.msg = msg_hu_conv;
137 * Used to indicate that a funding_created message should be sent to the peer with the given node_id.
139 public final static class SendFundingCreated extends MessageSendEvent {
141 * The node_id of the node which should receive this message
143 public final byte[] node_id;
145 * The message which should be sent.
147 public final org.ldk.structs.FundingCreated msg;
148 private SendFundingCreated(long ptr, bindings.LDKMessageSendEvent.SendFundingCreated obj) {
150 this.node_id = obj.node_id;
152 org.ldk.structs.FundingCreated msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.FundingCreated(null, msg); }
153 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
154 this.msg = msg_hu_conv;
158 * Used to indicate that a funding_signed message should be sent to the peer with the given node_id.
160 public final static class SendFundingSigned extends MessageSendEvent {
162 * The node_id of the node which should receive this message
164 public final byte[] node_id;
166 * The message which should be sent.
168 public final org.ldk.structs.FundingSigned msg;
169 private SendFundingSigned(long ptr, bindings.LDKMessageSendEvent.SendFundingSigned obj) {
171 this.node_id = obj.node_id;
173 org.ldk.structs.FundingSigned msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.FundingSigned(null, msg); }
174 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
175 this.msg = msg_hu_conv;
179 * Used to indicate that a channel_ready message should be sent to the peer with the given node_id.
181 public final static class SendChannelReady extends MessageSendEvent {
183 * The node_id of the node which should receive these message(s)
185 public final byte[] node_id;
187 * The channel_ready message which should be sent.
189 public final org.ldk.structs.ChannelReady msg;
190 private SendChannelReady(long ptr, bindings.LDKMessageSendEvent.SendChannelReady obj) {
192 this.node_id = obj.node_id;
194 org.ldk.structs.ChannelReady msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelReady(null, msg); }
195 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
196 this.msg = msg_hu_conv;
200 * Used to indicate that an announcement_signatures message should be sent to the peer with the given node_id.
202 public final static class SendAnnouncementSignatures extends MessageSendEvent {
204 * The node_id of the node which should receive these message(s)
206 public final byte[] node_id;
208 * The announcement_signatures message which should be sent.
210 public final org.ldk.structs.AnnouncementSignatures msg;
211 private SendAnnouncementSignatures(long ptr, bindings.LDKMessageSendEvent.SendAnnouncementSignatures obj) {
213 this.node_id = obj.node_id;
215 org.ldk.structs.AnnouncementSignatures msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.AnnouncementSignatures(null, msg); }
216 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
217 this.msg = msg_hu_conv;
221 * Used to indicate that a series of HTLC update messages, as well as a commitment_signed
222 * message should be sent to the peer with the given node_id.
224 public final static class UpdateHTLCs extends MessageSendEvent {
226 * The node_id of the node which should receive these message(s)
228 public final byte[] node_id;
230 * The update messages which should be sent. ALL messages in the struct should be sent!
232 public final org.ldk.structs.CommitmentUpdate updates;
233 private UpdateHTLCs(long ptr, bindings.LDKMessageSendEvent.UpdateHTLCs obj) {
235 this.node_id = obj.node_id;
236 long updates = obj.updates;
237 org.ldk.structs.CommitmentUpdate updates_hu_conv = null; if (updates < 0 || updates > 4096) { updates_hu_conv = new org.ldk.structs.CommitmentUpdate(null, updates); }
238 if (updates_hu_conv != null) { updates_hu_conv.ptrs_to.add(this); };
239 this.updates = updates_hu_conv;
243 * Used to indicate that a revoke_and_ack message should be sent to the peer with the given node_id.
245 public final static class SendRevokeAndACK extends MessageSendEvent {
247 * The node_id of the node which should receive this message
249 public final byte[] node_id;
251 * The message which should be sent.
253 public final org.ldk.structs.RevokeAndACK msg;
254 private SendRevokeAndACK(long ptr, bindings.LDKMessageSendEvent.SendRevokeAndACK obj) {
256 this.node_id = obj.node_id;
258 org.ldk.structs.RevokeAndACK msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.RevokeAndACK(null, msg); }
259 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
260 this.msg = msg_hu_conv;
264 * Used to indicate that a closing_signed message should be sent to the peer with the given node_id.
266 public final static class SendClosingSigned extends MessageSendEvent {
268 * The node_id of the node which should receive this message
270 public final byte[] node_id;
272 * The message which should be sent.
274 public final org.ldk.structs.ClosingSigned msg;
275 private SendClosingSigned(long ptr, bindings.LDKMessageSendEvent.SendClosingSigned obj) {
277 this.node_id = obj.node_id;
279 org.ldk.structs.ClosingSigned msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ClosingSigned(null, msg); }
280 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
281 this.msg = msg_hu_conv;
285 * Used to indicate that a shutdown message should be sent to the peer with the given node_id.
287 public final static class SendShutdown extends MessageSendEvent {
289 * The node_id of the node which should receive this message
291 public final byte[] node_id;
293 * The message which should be sent.
295 public final org.ldk.structs.Shutdown msg;
296 private SendShutdown(long ptr, bindings.LDKMessageSendEvent.SendShutdown obj) {
298 this.node_id = obj.node_id;
300 org.ldk.structs.Shutdown msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.Shutdown(null, msg); }
301 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
302 this.msg = msg_hu_conv;
306 * Used to indicate that a channel_reestablish message should be sent to the peer with the given node_id.
308 public final static class SendChannelReestablish extends MessageSendEvent {
310 * The node_id of the node which should receive this message
312 public final byte[] node_id;
314 * The message which should be sent.
316 public final org.ldk.structs.ChannelReestablish msg;
317 private SendChannelReestablish(long ptr, bindings.LDKMessageSendEvent.SendChannelReestablish obj) {
319 this.node_id = obj.node_id;
321 org.ldk.structs.ChannelReestablish msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelReestablish(null, msg); }
322 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
323 this.msg = msg_hu_conv;
327 * Used to send a channel_announcement and channel_update to a specific peer, likely on
328 * initial connection to ensure our peers know about our channels.
330 public final static class SendChannelAnnouncement extends MessageSendEvent {
332 * The node_id of the node which should receive this message
334 public final byte[] node_id;
336 * The channel_announcement which should be sent.
338 public final org.ldk.structs.ChannelAnnouncement msg;
340 * The followup channel_update which should be sent.
342 public final org.ldk.structs.ChannelUpdate update_msg;
343 private SendChannelAnnouncement(long ptr, bindings.LDKMessageSendEvent.SendChannelAnnouncement obj) {
345 this.node_id = obj.node_id;
347 org.ldk.structs.ChannelAnnouncement msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelAnnouncement(null, msg); }
348 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
349 this.msg = msg_hu_conv;
350 long update_msg = obj.update_msg;
351 org.ldk.structs.ChannelUpdate update_msg_hu_conv = null; if (update_msg < 0 || update_msg > 4096) { update_msg_hu_conv = new org.ldk.structs.ChannelUpdate(null, update_msg); }
352 if (update_msg_hu_conv != null) { update_msg_hu_conv.ptrs_to.add(this); };
353 this.update_msg = update_msg_hu_conv;
357 * Used to indicate that a channel_announcement and channel_update should be broadcast to all
358 * peers (except the peer with node_id either msg.contents.node_id_1 or msg.contents.node_id_2).
360 * Note that after doing so, you very likely (unless you did so very recently) want to
361 * broadcast a node_announcement (e.g. via [`PeerManager::broadcast_node_announcement`]). This
362 * ensures that any nodes which see our channel_announcement also have a relevant
363 * node_announcement, including relevant feature flags which may be important for routing
366 * [`PeerManager::broadcast_node_announcement`]: crate::ln::peer_handler::PeerManager::broadcast_node_announcement
368 public final static class BroadcastChannelAnnouncement extends MessageSendEvent {
370 * The channel_announcement which should be sent.
372 public final org.ldk.structs.ChannelAnnouncement msg;
374 * The followup channel_update which should be sent.
376 * Note that this (or a relevant inner pointer) may be NULL or all-0s to represent None
378 @Nullable public final org.ldk.structs.ChannelUpdate update_msg;
379 private BroadcastChannelAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement obj) {
382 org.ldk.structs.ChannelAnnouncement msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelAnnouncement(null, msg); }
383 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
384 this.msg = msg_hu_conv;
385 long update_msg = obj.update_msg;
386 org.ldk.structs.ChannelUpdate update_msg_hu_conv = null; if (update_msg < 0 || update_msg > 4096) { update_msg_hu_conv = new org.ldk.structs.ChannelUpdate(null, update_msg); }
387 if (update_msg_hu_conv != null) { update_msg_hu_conv.ptrs_to.add(this); };
388 this.update_msg = update_msg_hu_conv;
392 * Used to indicate that a channel_update should be broadcast to all peers.
394 public final static class BroadcastChannelUpdate extends MessageSendEvent {
396 * The channel_update which should be sent.
398 public final org.ldk.structs.ChannelUpdate msg;
399 private BroadcastChannelUpdate(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelUpdate obj) {
402 org.ldk.structs.ChannelUpdate msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelUpdate(null, msg); }
403 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
404 this.msg = msg_hu_conv;
408 * Used to indicate that a node_announcement should be broadcast to all peers.
410 public final static class BroadcastNodeAnnouncement extends MessageSendEvent {
412 * The node_announcement which should be sent.
414 public final org.ldk.structs.NodeAnnouncement msg;
415 private BroadcastNodeAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement obj) {
418 org.ldk.structs.NodeAnnouncement msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.NodeAnnouncement(null, msg); }
419 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
420 this.msg = msg_hu_conv;
424 * Used to indicate that a channel_update should be sent to a single peer.
425 * In contrast to [`Self::BroadcastChannelUpdate`], this is used when the channel is a
426 * private channel and we shouldn't be informing all of our peers of channel parameters.
428 public final static class SendChannelUpdate extends MessageSendEvent {
430 * The node_id of the node which should receive this message
432 public final byte[] node_id;
434 * The channel_update which should be sent.
436 public final org.ldk.structs.ChannelUpdate msg;
437 private SendChannelUpdate(long ptr, bindings.LDKMessageSendEvent.SendChannelUpdate obj) {
439 this.node_id = obj.node_id;
441 org.ldk.structs.ChannelUpdate msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ChannelUpdate(null, msg); }
442 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
443 this.msg = msg_hu_conv;
447 * Broadcast an error downstream to be handled
449 public final static class HandleError extends MessageSendEvent {
451 * The node_id of the node which should receive this message
453 public final byte[] node_id;
455 * The action which should be taken.
457 public final org.ldk.structs.ErrorAction action;
458 private HandleError(long ptr, bindings.LDKMessageSendEvent.HandleError obj) {
460 this.node_id = obj.node_id;
461 long action = obj.action;
462 org.ldk.structs.ErrorAction action_hu_conv = org.ldk.structs.ErrorAction.constr_from_ptr(action);
463 if (action_hu_conv != null) { action_hu_conv.ptrs_to.add(this); };
464 this.action = action_hu_conv;
468 * Query a peer for channels with funding transaction UTXOs in a block range.
470 public final static class SendChannelRangeQuery extends MessageSendEvent {
472 * The node_id of this message recipient
474 public final byte[] node_id;
476 * The query_channel_range which should be sent.
478 public final org.ldk.structs.QueryChannelRange msg;
479 private SendChannelRangeQuery(long ptr, bindings.LDKMessageSendEvent.SendChannelRangeQuery obj) {
481 this.node_id = obj.node_id;
483 org.ldk.structs.QueryChannelRange msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.QueryChannelRange(null, msg); }
484 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
485 this.msg = msg_hu_conv;
489 * Request routing gossip messages from a peer for a list of channels identified by
490 * their short_channel_ids.
492 public final static class SendShortIdsQuery extends MessageSendEvent {
494 * The node_id of this message recipient
496 public final byte[] node_id;
498 * The query_short_channel_ids which should be sent.
500 public final org.ldk.structs.QueryShortChannelIds msg;
501 private SendShortIdsQuery(long ptr, bindings.LDKMessageSendEvent.SendShortIdsQuery obj) {
503 this.node_id = obj.node_id;
505 org.ldk.structs.QueryShortChannelIds msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.QueryShortChannelIds(null, msg); }
506 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
507 this.msg = msg_hu_conv;
511 * Sends a reply to a channel range query. This may be one of several SendReplyChannelRange events
512 * emitted during processing of the query.
514 public final static class SendReplyChannelRange extends MessageSendEvent {
516 * The node_id of this message recipient
518 public final byte[] node_id;
520 * The reply_channel_range which should be sent.
522 public final org.ldk.structs.ReplyChannelRange msg;
523 private SendReplyChannelRange(long ptr, bindings.LDKMessageSendEvent.SendReplyChannelRange obj) {
525 this.node_id = obj.node_id;
527 org.ldk.structs.ReplyChannelRange msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.ReplyChannelRange(null, msg); }
528 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
529 this.msg = msg_hu_conv;
533 * Sends a timestamp filter for inbound gossip. This should be sent on each new connection to
534 * enable receiving gossip messages from the peer.
536 public final static class SendGossipTimestampFilter extends MessageSendEvent {
538 * The node_id of this message recipient
540 public final byte[] node_id;
542 * The gossip_timestamp_filter which should be sent.
544 public final org.ldk.structs.GossipTimestampFilter msg;
545 private SendGossipTimestampFilter(long ptr, bindings.LDKMessageSendEvent.SendGossipTimestampFilter obj) {
547 this.node_id = obj.node_id;
549 org.ldk.structs.GossipTimestampFilter msg_hu_conv = null; if (msg < 0 || msg > 4096) { msg_hu_conv = new org.ldk.structs.GossipTimestampFilter(null, msg); }
550 if (msg_hu_conv != null) { msg_hu_conv.ptrs_to.add(this); };
551 this.msg = msg_hu_conv;
555 long ret = bindings.MessageSendEvent_clone_ptr(this.ptr);
556 Reference.reachabilityFence(this);
561 * Creates a copy of the MessageSendEvent
563 public MessageSendEvent clone() {
564 long ret = bindings.MessageSendEvent_clone(this.ptr);
565 Reference.reachabilityFence(this);
566 if (ret >= 0 && ret <= 4096) { return null; }
567 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
568 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
573 * Utility method to constructs a new SendAcceptChannel-variant MessageSendEvent
575 public static MessageSendEvent send_accept_channel(byte[] node_id, org.ldk.structs.AcceptChannel msg) {
576 long ret = bindings.MessageSendEvent_send_accept_channel(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
577 Reference.reachabilityFence(node_id);
578 Reference.reachabilityFence(msg);
579 if (ret >= 0 && ret <= 4096) { return null; }
580 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
581 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
582 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
587 * Utility method to constructs a new SendOpenChannel-variant MessageSendEvent
589 public static MessageSendEvent send_open_channel(byte[] node_id, org.ldk.structs.OpenChannel msg) {
590 long ret = bindings.MessageSendEvent_send_open_channel(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
591 Reference.reachabilityFence(node_id);
592 Reference.reachabilityFence(msg);
593 if (ret >= 0 && ret <= 4096) { return null; }
594 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
595 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
596 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
601 * Utility method to constructs a new SendFundingCreated-variant MessageSendEvent
603 public static MessageSendEvent send_funding_created(byte[] node_id, org.ldk.structs.FundingCreated msg) {
604 long ret = bindings.MessageSendEvent_send_funding_created(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
605 Reference.reachabilityFence(node_id);
606 Reference.reachabilityFence(msg);
607 if (ret >= 0 && ret <= 4096) { return null; }
608 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
609 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
610 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
615 * Utility method to constructs a new SendFundingSigned-variant MessageSendEvent
617 public static MessageSendEvent send_funding_signed(byte[] node_id, org.ldk.structs.FundingSigned msg) {
618 long ret = bindings.MessageSendEvent_send_funding_signed(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
619 Reference.reachabilityFence(node_id);
620 Reference.reachabilityFence(msg);
621 if (ret >= 0 && ret <= 4096) { return null; }
622 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
623 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
624 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
629 * Utility method to constructs a new SendChannelReady-variant MessageSendEvent
631 public static MessageSendEvent send_channel_ready(byte[] node_id, org.ldk.structs.ChannelReady msg) {
632 long ret = bindings.MessageSendEvent_send_channel_ready(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
633 Reference.reachabilityFence(node_id);
634 Reference.reachabilityFence(msg);
635 if (ret >= 0 && ret <= 4096) { return null; }
636 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
637 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
638 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
643 * Utility method to constructs a new SendAnnouncementSignatures-variant MessageSendEvent
645 public static MessageSendEvent send_announcement_signatures(byte[] node_id, org.ldk.structs.AnnouncementSignatures msg) {
646 long ret = bindings.MessageSendEvent_send_announcement_signatures(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
647 Reference.reachabilityFence(node_id);
648 Reference.reachabilityFence(msg);
649 if (ret >= 0 && ret <= 4096) { return null; }
650 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
651 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
652 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
657 * Utility method to constructs a new UpdateHTLCs-variant MessageSendEvent
659 public static MessageSendEvent update_htlcs(byte[] node_id, org.ldk.structs.CommitmentUpdate updates) {
660 long ret = bindings.MessageSendEvent_update_htlcs(InternalUtils.check_arr_len(node_id, 33), updates == null ? 0 : updates.ptr);
661 Reference.reachabilityFence(node_id);
662 Reference.reachabilityFence(updates);
663 if (ret >= 0 && ret <= 4096) { return null; }
664 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
665 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
666 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(updates); };
671 * Utility method to constructs a new SendRevokeAndACK-variant MessageSendEvent
673 public static MessageSendEvent send_revoke_and_ack(byte[] node_id, org.ldk.structs.RevokeAndACK msg) {
674 long ret = bindings.MessageSendEvent_send_revoke_and_ack(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
675 Reference.reachabilityFence(node_id);
676 Reference.reachabilityFence(msg);
677 if (ret >= 0 && ret <= 4096) { return null; }
678 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
679 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
680 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
685 * Utility method to constructs a new SendClosingSigned-variant MessageSendEvent
687 public static MessageSendEvent send_closing_signed(byte[] node_id, org.ldk.structs.ClosingSigned msg) {
688 long ret = bindings.MessageSendEvent_send_closing_signed(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
689 Reference.reachabilityFence(node_id);
690 Reference.reachabilityFence(msg);
691 if (ret >= 0 && ret <= 4096) { return null; }
692 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
693 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
694 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
699 * Utility method to constructs a new SendShutdown-variant MessageSendEvent
701 public static MessageSendEvent send_shutdown(byte[] node_id, org.ldk.structs.Shutdown msg) {
702 long ret = bindings.MessageSendEvent_send_shutdown(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
703 Reference.reachabilityFence(node_id);
704 Reference.reachabilityFence(msg);
705 if (ret >= 0 && ret <= 4096) { return null; }
706 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
707 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
708 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
713 * Utility method to constructs a new SendChannelReestablish-variant MessageSendEvent
715 public static MessageSendEvent send_channel_reestablish(byte[] node_id, org.ldk.structs.ChannelReestablish msg) {
716 long ret = bindings.MessageSendEvent_send_channel_reestablish(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
717 Reference.reachabilityFence(node_id);
718 Reference.reachabilityFence(msg);
719 if (ret >= 0 && ret <= 4096) { return null; }
720 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
721 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
722 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
727 * Utility method to constructs a new SendChannelAnnouncement-variant MessageSendEvent
729 public static MessageSendEvent send_channel_announcement(byte[] node_id, org.ldk.structs.ChannelAnnouncement msg, org.ldk.structs.ChannelUpdate update_msg) {
730 long ret = bindings.MessageSendEvent_send_channel_announcement(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr, update_msg == null ? 0 : update_msg.ptr);
731 Reference.reachabilityFence(node_id);
732 Reference.reachabilityFence(msg);
733 Reference.reachabilityFence(update_msg);
734 if (ret >= 0 && ret <= 4096) { return null; }
735 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
736 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
737 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
738 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(update_msg); };
743 * Utility method to constructs a new BroadcastChannelAnnouncement-variant MessageSendEvent
745 public static MessageSendEvent broadcast_channel_announcement(org.ldk.structs.ChannelAnnouncement msg, org.ldk.structs.ChannelUpdate update_msg) {
746 long ret = bindings.MessageSendEvent_broadcast_channel_announcement(msg == null ? 0 : msg.ptr, update_msg == null ? 0 : update_msg.ptr);
747 Reference.reachabilityFence(msg);
748 Reference.reachabilityFence(update_msg);
749 if (ret >= 0 && ret <= 4096) { return null; }
750 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
751 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
752 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
753 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(update_msg); };
758 * Utility method to constructs a new BroadcastChannelUpdate-variant MessageSendEvent
760 public static MessageSendEvent broadcast_channel_update(org.ldk.structs.ChannelUpdate msg) {
761 long ret = bindings.MessageSendEvent_broadcast_channel_update(msg == null ? 0 : msg.ptr);
762 Reference.reachabilityFence(msg);
763 if (ret >= 0 && ret <= 4096) { return null; }
764 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
765 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
766 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
771 * Utility method to constructs a new BroadcastNodeAnnouncement-variant MessageSendEvent
773 public static MessageSendEvent broadcast_node_announcement(org.ldk.structs.NodeAnnouncement msg) {
774 long ret = bindings.MessageSendEvent_broadcast_node_announcement(msg == null ? 0 : msg.ptr);
775 Reference.reachabilityFence(msg);
776 if (ret >= 0 && ret <= 4096) { return null; }
777 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
778 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
779 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
784 * Utility method to constructs a new SendChannelUpdate-variant MessageSendEvent
786 public static MessageSendEvent send_channel_update(byte[] node_id, org.ldk.structs.ChannelUpdate msg) {
787 long ret = bindings.MessageSendEvent_send_channel_update(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
788 Reference.reachabilityFence(node_id);
789 Reference.reachabilityFence(msg);
790 if (ret >= 0 && ret <= 4096) { return null; }
791 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
792 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
793 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
798 * Utility method to constructs a new HandleError-variant MessageSendEvent
800 public static MessageSendEvent handle_error(byte[] node_id, org.ldk.structs.ErrorAction action) {
801 long ret = bindings.MessageSendEvent_handle_error(InternalUtils.check_arr_len(node_id, 33), action.ptr);
802 Reference.reachabilityFence(node_id);
803 Reference.reachabilityFence(action);
804 if (ret >= 0 && ret <= 4096) { return null; }
805 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
806 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
807 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(action); };
812 * Utility method to constructs a new SendChannelRangeQuery-variant MessageSendEvent
814 public static MessageSendEvent send_channel_range_query(byte[] node_id, org.ldk.structs.QueryChannelRange msg) {
815 long ret = bindings.MessageSendEvent_send_channel_range_query(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
816 Reference.reachabilityFence(node_id);
817 Reference.reachabilityFence(msg);
818 if (ret >= 0 && ret <= 4096) { return null; }
819 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
820 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
821 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
826 * Utility method to constructs a new SendShortIdsQuery-variant MessageSendEvent
828 public static MessageSendEvent send_short_ids_query(byte[] node_id, org.ldk.structs.QueryShortChannelIds msg) {
829 long ret = bindings.MessageSendEvent_send_short_ids_query(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
830 Reference.reachabilityFence(node_id);
831 Reference.reachabilityFence(msg);
832 if (ret >= 0 && ret <= 4096) { return null; }
833 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
834 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
835 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
840 * Utility method to constructs a new SendReplyChannelRange-variant MessageSendEvent
842 public static MessageSendEvent send_reply_channel_range(byte[] node_id, org.ldk.structs.ReplyChannelRange msg) {
843 long ret = bindings.MessageSendEvent_send_reply_channel_range(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
844 Reference.reachabilityFence(node_id);
845 Reference.reachabilityFence(msg);
846 if (ret >= 0 && ret <= 4096) { return null; }
847 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
848 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
849 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };
854 * Utility method to constructs a new SendGossipTimestampFilter-variant MessageSendEvent
856 public static MessageSendEvent send_gossip_timestamp_filter(byte[] node_id, org.ldk.structs.GossipTimestampFilter msg) {
857 long ret = bindings.MessageSendEvent_send_gossip_timestamp_filter(InternalUtils.check_arr_len(node_id, 33), msg == null ? 0 : msg.ptr);
858 Reference.reachabilityFence(node_id);
859 Reference.reachabilityFence(msg);
860 if (ret >= 0 && ret <= 4096) { return null; }
861 org.ldk.structs.MessageSendEvent ret_hu_conv = org.ldk.structs.MessageSendEvent.constr_from_ptr(ret);
862 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
863 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(msg); };