1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
8 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
9 public class Event extends CommonBase {
10 private Event(Object _dummy, long ptr) { super(ptr); }
11 @Override @SuppressWarnings("deprecation")
12 protected void finalize() throws Throwable {
14 bindings.Event_free(ptr);
16 long conv_to_c() { assert false; return 0; /* Should only be called on subclasses */ }
17 static Event constr_from_ptr(long ptr) {
18 bindings.LDKEvent raw_val = bindings.LDKEvent_ref_from_ptr(ptr);
19 if (raw_val.getClass() == bindings.LDKEvent.FundingGenerationReady.class) {
20 return new FundingGenerationReady(ptr, (bindings.LDKEvent.FundingGenerationReady)raw_val);
22 if (raw_val.getClass() == bindings.LDKEvent.FundingBroadcastSafe.class) {
23 return new FundingBroadcastSafe(ptr, (bindings.LDKEvent.FundingBroadcastSafe)raw_val);
25 if (raw_val.getClass() == bindings.LDKEvent.PaymentReceived.class) {
26 return new PaymentReceived(ptr, (bindings.LDKEvent.PaymentReceived)raw_val);
28 if (raw_val.getClass() == bindings.LDKEvent.PaymentSent.class) {
29 return new PaymentSent(ptr, (bindings.LDKEvent.PaymentSent)raw_val);
31 if (raw_val.getClass() == bindings.LDKEvent.PaymentFailed.class) {
32 return new PaymentFailed(ptr, (bindings.LDKEvent.PaymentFailed)raw_val);
34 if (raw_val.getClass() == bindings.LDKEvent.PendingHTLCsForwardable.class) {
35 return new PendingHTLCsForwardable(ptr, (bindings.LDKEvent.PendingHTLCsForwardable)raw_val);
37 if (raw_val.getClass() == bindings.LDKEvent.SpendableOutputs.class) {
38 return new SpendableOutputs(ptr, (bindings.LDKEvent.SpendableOutputs)raw_val);
40 assert false; return null; // Unreachable without extending the (internal) bindings interface
43 public final static class FundingGenerationReady extends Event {
44 public byte[] temporary_channel_id;
45 public long channel_value_satoshis;
46 public byte[] output_script;
47 public long user_channel_id;
48 private FundingGenerationReady(long ptr, bindings.LDKEvent.FundingGenerationReady obj) {
50 this.temporary_channel_id = obj.temporary_channel_id;
51 this.channel_value_satoshis = obj.channel_value_satoshis;
52 this.output_script = obj.output_script;
53 this.user_channel_id = obj.user_channel_id;
55 @Override long conv_to_c() { return 0; /*XXX*/ }
57 public final static class FundingBroadcastSafe extends Event {
58 public OutPoint funding_txo;
59 public long user_channel_id;
60 private FundingBroadcastSafe(long ptr, bindings.LDKEvent.FundingBroadcastSafe obj) {
62 long funding_txo = obj.funding_txo;
63 OutPoint funding_txo_hu_conv = new OutPoint(null, funding_txo);
64 this.funding_txo = funding_txo_hu_conv;
65 this.user_channel_id = obj.user_channel_id;
67 @Override long conv_to_c() { return 0; /*XXX*/ }
69 public final static class PaymentReceived extends Event {
70 public byte[] payment_hash;
71 public byte[] payment_secret;
73 private PaymentReceived(long ptr, bindings.LDKEvent.PaymentReceived obj) {
75 this.payment_hash = obj.payment_hash;
76 this.payment_secret = obj.payment_secret;
79 @Override long conv_to_c() { return 0; /*XXX*/ }
81 public final static class PaymentSent extends Event {
82 public byte[] payment_preimage;
83 private PaymentSent(long ptr, bindings.LDKEvent.PaymentSent obj) {
85 this.payment_preimage = obj.payment_preimage;
87 @Override long conv_to_c() { return 0; /*XXX*/ }
89 public final static class PaymentFailed extends Event {
90 public byte[] payment_hash;
91 public boolean rejected_by_dest;
92 private PaymentFailed(long ptr, bindings.LDKEvent.PaymentFailed obj) {
94 this.payment_hash = obj.payment_hash;
95 this.rejected_by_dest = obj.rejected_by_dest;
97 @Override long conv_to_c() { return 0; /*XXX*/ }
99 public final static class PendingHTLCsForwardable extends Event {
100 public long time_forwardable;
101 private PendingHTLCsForwardable(long ptr, bindings.LDKEvent.PendingHTLCsForwardable obj) {
103 this.time_forwardable = obj.time_forwardable;
105 @Override long conv_to_c() { return 0; /*XXX*/ }
107 public final static class SpendableOutputs extends Event {
108 public SpendableOutputDescriptor[] outputs;
109 private SpendableOutputs(long ptr, bindings.LDKEvent.SpendableOutputs obj) {
111 long[] outputs = obj.outputs;
112 SpendableOutputDescriptor[] arr_conv_27_arr = new SpendableOutputDescriptor[outputs.length];
113 for (int b = 0; b < outputs.length; b++) {
114 long arr_conv_27 = outputs[b];
115 SpendableOutputDescriptor arr_conv_27_hu_conv = SpendableOutputDescriptor.constr_from_ptr(arr_conv_27);
116 arr_conv_27_arr[b] = arr_conv_27_hu_conv;
118 this.outputs = arr_conv_27_arr;
120 @Override long conv_to_c() { return 0; /*XXX*/ }