6 namespace org { namespace ldk { namespace structs {
10 * A [`channel_announcement`] message to be sent to or received from a peer.
12 * [`channel_announcement`]: https://github.com/lightning/bolts/blob/master/07-routing-gossip.md#the-channel_announcement-message
14 public class ChannelAnnouncement : CommonBase {
15 internal ChannelAnnouncement(object _dummy, long ptr) : base(ptr) { }
16 ~ChannelAnnouncement() {
17 if (ptr != 0) { bindings.ChannelAnnouncement_free(ptr); }
21 * Authentication of the announcement by the first public node
23 public byte[] get_node_signature_1() {
24 long ret = bindings.ChannelAnnouncement_get_node_signature_1(this.ptr);
26 if (ret >= 0 && ret <= 4096) { return null; }
27 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
32 * Authentication of the announcement by the first public node
34 public void set_node_signature_1(byte[] val) {
35 bindings.ChannelAnnouncement_set_node_signature_1(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 64)));
41 * Authentication of the announcement by the second public node
43 public byte[] get_node_signature_2() {
44 long ret = bindings.ChannelAnnouncement_get_node_signature_2(this.ptr);
46 if (ret >= 0 && ret <= 4096) { return null; }
47 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
52 * Authentication of the announcement by the second public node
54 public void set_node_signature_2(byte[] val) {
55 bindings.ChannelAnnouncement_set_node_signature_2(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 64)));
61 * Proof of funding UTXO ownership by the first public node
63 public byte[] get_bitcoin_signature_1() {
64 long ret = bindings.ChannelAnnouncement_get_bitcoin_signature_1(this.ptr);
66 if (ret >= 0 && ret <= 4096) { return null; }
67 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
72 * Proof of funding UTXO ownership by the first public node
74 public void set_bitcoin_signature_1(byte[] val) {
75 bindings.ChannelAnnouncement_set_bitcoin_signature_1(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 64)));
81 * Proof of funding UTXO ownership by the second public node
83 public byte[] get_bitcoin_signature_2() {
84 long ret = bindings.ChannelAnnouncement_get_bitcoin_signature_2(this.ptr);
86 if (ret >= 0 && ret <= 4096) { return null; }
87 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
92 * Proof of funding UTXO ownership by the second public node
94 public void set_bitcoin_signature_2(byte[] val) {
95 bindings.ChannelAnnouncement_set_bitcoin_signature_2(this.ptr, InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(val, 64)));
101 * The actual announcement
103 public UnsignedChannelAnnouncement get_contents() {
104 long ret = bindings.ChannelAnnouncement_get_contents(this.ptr);
106 if (ret >= 0 && ret <= 4096) { return null; }
107 org.ldk.structs.UnsignedChannelAnnouncement ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.UnsignedChannelAnnouncement(null, ret); }
108 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); };
113 * The actual announcement
115 public void set_contents(org.ldk.structs.UnsignedChannelAnnouncement val) {
116 bindings.ChannelAnnouncement_set_contents(this.ptr, val.ptr);
119 if (this != null) { this.ptrs_to.AddLast(val); };
123 * Constructs a new ChannelAnnouncement given each field
125 public static ChannelAnnouncement of(byte[] node_signature_1_arg, byte[] node_signature_2_arg, byte[] bitcoin_signature_1_arg, byte[] bitcoin_signature_2_arg, org.ldk.structs.UnsignedChannelAnnouncement contents_arg) {
126 long ret = bindings.ChannelAnnouncement_new(InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_signature_1_arg, 64)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(node_signature_2_arg, 64)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(bitcoin_signature_1_arg, 64)), InternalUtils.encodeUint8Array(InternalUtils.check_arr_len(bitcoin_signature_2_arg, 64)), contents_arg.ptr);
127 GC.KeepAlive(node_signature_1_arg);
128 GC.KeepAlive(node_signature_2_arg);
129 GC.KeepAlive(bitcoin_signature_1_arg);
130 GC.KeepAlive(bitcoin_signature_2_arg);
131 GC.KeepAlive(contents_arg);
132 if (ret >= 0 && ret <= 4096) { return null; }
133 org.ldk.structs.ChannelAnnouncement ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ChannelAnnouncement(null, ret); }
134 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
135 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(contents_arg); };
139 internal long clone_ptr() {
140 long ret = bindings.ChannelAnnouncement_clone_ptr(this.ptr);
146 * Creates a copy of the ChannelAnnouncement
148 public ChannelAnnouncement clone() {
149 long ret = bindings.ChannelAnnouncement_clone(this.ptr);
151 if (ret >= 0 && ret <= 4096) { return null; }
152 org.ldk.structs.ChannelAnnouncement ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ChannelAnnouncement(null, ret); }
153 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); };
158 * Generates a non-cryptographic 64-bit hash of the ChannelAnnouncement.
161 long ret = bindings.ChannelAnnouncement_hash(this.ptr);
166 public override int GetHashCode() {
167 return (int)this.hash();
170 * Checks if two ChannelAnnouncements contain equal inner contents.
171 * This ignores pointers and is_owned flags and looks at the values in fields.
172 * Two objects with NULL inner values will be considered "equal" here.
174 public bool eq(org.ldk.structs.ChannelAnnouncement b) {
175 bool ret = bindings.ChannelAnnouncement_eq(this.ptr, b.ptr);
178 if (this != null) { this.ptrs_to.AddLast(b); };
182 public override bool Equals(object o) {
183 if (!(o is ChannelAnnouncement)) return false;
184 return this.eq((ChannelAnnouncement)o);
187 * Serialize the ChannelAnnouncement object into a byte array which can be read by ChannelAnnouncement_read
189 public byte[] write() {
190 long ret = bindings.ChannelAnnouncement_write(this.ptr);
192 if (ret >= 0 && ret <= 4096) { return null; }
193 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
198 * Read a ChannelAnnouncement from a byte array, created by ChannelAnnouncement_write
200 public static Result_ChannelAnnouncementDecodeErrorZ read(byte[] ser) {
201 long ret = bindings.ChannelAnnouncement_read(InternalUtils.encodeUint8Array(ser));
203 if (ret >= 0 && ret <= 4096) { return null; }
204 Result_ChannelAnnouncementDecodeErrorZ ret_hu_conv = Result_ChannelAnnouncementDecodeErrorZ.constr_from_ptr(ret);