Merge pull request #45 from TheBlueMatt/main
[ldk-java] / ts / structs / Event.ts
1
2 import CommonBase from './CommonBase';
3 import * as bindings from '../bindings' // TODO: figure out location
4
5 export default class Event extends CommonBase {
6         protected constructor(_dummy: object, ptr: number) { super(ptr); }
7         protected finalize() {
8                 super.finalize();
9                 if (this.ptr != 0) { bindings.Event_free(this.ptr); }
10         }
11         static constr_from_ptr(ptr: number): Event {
12                 const raw_val: bindings.LDKEvent = bindings.LDKEvent_ref_from_ptr(ptr);
13                 if (raw_val instanceof bindings.LDKEvent.FundingGenerationReady) {
14                         return new FundingGenerationReady(this.ptr, raw_val);
15                 }
16                 if (raw_val instanceof bindings.LDKEvent.PaymentReceived) {
17                         return new PaymentReceived(this.ptr, raw_val);
18                 }
19                 if (raw_val instanceof bindings.LDKEvent.PaymentSent) {
20                         return new PaymentSent(this.ptr, raw_val);
21                 }
22                 if (raw_val instanceof bindings.LDKEvent.PaymentPathFailed) {
23                         return new PaymentPathFailed(this.ptr, raw_val);
24                 }
25                 if (raw_val instanceof bindings.LDKEvent.PendingHTLCsForwardable) {
26                         return new PendingHTLCsForwardable(this.ptr, raw_val);
27                 }
28                 if (raw_val instanceof bindings.LDKEvent.SpendableOutputs) {
29                         return new SpendableOutputs(this.ptr, raw_val);
30                 }
31                 if (raw_val instanceof bindings.LDKEvent.PaymentForwarded) {
32                         return new PaymentForwarded(this.ptr, raw_val);
33                 }
34                 if (raw_val instanceof bindings.LDKEvent.ChannelClosed) {
35                         return new ChannelClosed(this.ptr, raw_val);
36                 }
37                 throw new Error('oops, this should be unreachable'); // Unreachable without extending the (internal) bindings interface
38         }
39
40 }
41 export class FundingGenerationReady extends Event {
42         public temporary_channel_id: Uint8Array;
43         public channel_value_satoshis: number;
44         public output_script: Uint8Array;
45         public user_channel_id: number;
46         private constructor(ptr: number, obj: bindings.LDKEvent.FundingGenerationReady) {
47                 super(null, ptr);
48                 this.temporary_channel_id = obj.temporary_channel_id;
49                 this.channel_value_satoshis = obj.channel_value_satoshis;
50                 this.output_script = obj.output_script;
51                 this.user_channel_id = obj.user_channel_id;
52         }
53 }
54 export class PaymentReceived extends Event {
55         public payment_hash: Uint8Array;
56         public amt: number;
57         public purpose: PaymentPurpose;
58         private constructor(ptr: number, obj: bindings.LDKEvent.PaymentReceived) {
59                 super(null, ptr);
60                 this.payment_hash = obj.payment_hash;
61                 this.amt = obj.amt;
62                 const purpose: number = obj.purpose;
63                 PaymentPurpose purpose_hu_conv = PaymentPurpose.constr_from_ptr(purpose);
64                         purpose_hu_conv.ptrs_to.add(this);
65                 this.purpose = purpose_hu_conv;
66         }
67 }
68 export class PaymentSent extends Event {
69         public payment_preimage: Uint8Array;
70         private constructor(ptr: number, obj: bindings.LDKEvent.PaymentSent) {
71                 super(null, ptr);
72                 this.payment_preimage = obj.payment_preimage;
73         }
74 }
75 export class PaymentPathFailed extends Event {
76         public payment_hash: Uint8Array;
77         public rejected_by_dest: boolean;
78         public network_update: Option_NetworkUpdateZ;
79         public all_paths_failed: boolean;
80         public path: RouteHop[];
81         private constructor(ptr: number, obj: bindings.LDKEvent.PaymentPathFailed) {
82                 super(null, ptr);
83                 this.payment_hash = obj.payment_hash;
84                 this.rejected_by_dest = obj.rejected_by_dest;
85                 const network_update: number = obj.network_update;
86                 Option_NetworkUpdateZ network_update_hu_conv = Option_NetworkUpdateZ.constr_from_ptr(network_update);
87                         network_update_hu_conv.ptrs_to.add(this);
88                 this.network_update = network_update_hu_conv;
89                 this.all_paths_failed = obj.all_paths_failed;
90                 const path: number[] = obj.path;
91                 RouteHop[] path_conv_10_arr = new RouteHop[path.length];
92                         for (int k = 0; k < path.length; k++) {
93                                 number path_conv_10 = path[k];
94                                 const path_conv_10_hu_conv: RouteHop = new RouteHop(null, path_conv_10);
95                                 path_conv_10_hu_conv.ptrs_to.add(this);
96                                 path_conv_10_arr[k] = path_conv_10_hu_conv;
97                         }
98                 this.path = path_conv_10_arr;
99         }
100 }
101 export class PendingHTLCsForwardable extends Event {
102         public time_forwardable: number;
103         private constructor(ptr: number, obj: bindings.LDKEvent.PendingHTLCsForwardable) {
104                 super(null, ptr);
105                 this.time_forwardable = obj.time_forwardable;
106         }
107 }
108 export class SpendableOutputs extends Event {
109         public outputs: SpendableOutputDescriptor[];
110         private constructor(ptr: number, obj: bindings.LDKEvent.SpendableOutputs) {
111                 super(null, ptr);
112                 const outputs: number[] = obj.outputs;
113                 SpendableOutputDescriptor[] outputs_conv_27_arr = new SpendableOutputDescriptor[outputs.length];
114                         for (int b = 0; b < outputs.length; b++) {
115                                 number outputs_conv_27 = outputs[b];
116                                 SpendableOutputDescriptor outputs_conv_27_hu_conv = SpendableOutputDescriptor.constr_from_ptr(outputs_conv_27);
117                                 outputs_conv_27_hu_conv.ptrs_to.add(this);
118                                 outputs_conv_27_arr[b] = outputs_conv_27_hu_conv;
119                         }
120                 this.outputs = outputs_conv_27_arr;
121         }
122 }
123 export class PaymentForwarded extends Event {
124         public fee_earned_msat: Option_u64Z;
125         public claim_from_onchain_tx: boolean;
126         private constructor(ptr: number, obj: bindings.LDKEvent.PaymentForwarded) {
127                 super(null, ptr);
128                 const fee_earned_msat: number = obj.fee_earned_msat;
129                 Option_u64Z fee_earned_msat_hu_conv = Option_u64Z.constr_from_ptr(fee_earned_msat);
130                         fee_earned_msat_hu_conv.ptrs_to.add(this);
131                 this.fee_earned_msat = fee_earned_msat_hu_conv;
132                 this.claim_from_onchain_tx = obj.claim_from_onchain_tx;
133         }
134 }
135 export class ChannelClosed extends Event {
136         public channel_id: Uint8Array;
137         public reason: ClosureReason;
138         private constructor(ptr: number, obj: bindings.LDKEvent.ChannelClosed) {
139                 super(null, ptr);
140                 this.channel_id = obj.channel_id;
141                 const reason: number = obj.reason;
142                 ClosureReason reason_hu_conv = ClosureReason.constr_from_ptr(reason);
143                         reason_hu_conv.ptrs_to.add(this);
144                 this.reason = reason_hu_conv;
145         }
146 }
147         public Event clone() {
148                 number ret = bindings.Event_clone(this.ptr);
149                 Event ret_hu_conv = Event.constr_from_ptr(ret);
150                 ret_hu_conv.ptrs_to.add(this);
151                 return ret_hu_conv;
152         }
153
154         public static Event constructor_funding_generation_ready(Uint8Array temporary_channel_id, number channel_value_satoshis, Uint8Array output_script, number user_channel_id) {
155                 number ret = bindings.Event_funding_generation_ready(temporary_channel_id, channel_value_satoshis, output_script, user_channel_id);
156                 Event ret_hu_conv = Event.constr_from_ptr(ret);
157                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
158                 return ret_hu_conv;
159         }
160
161         public static Event constructor_payment_received(Uint8Array payment_hash, number amt, PaymentPurpose purpose) {
162                 number ret = bindings.Event_payment_received(payment_hash, amt, purpose.ptr);
163                 Event ret_hu_conv = Event.constr_from_ptr(ret);
164                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
165                 return ret_hu_conv;
166         }
167
168         public static Event constructor_payment_sent(Uint8Array payment_preimage) {
169                 number ret = bindings.Event_payment_sent(payment_preimage);
170                 Event ret_hu_conv = Event.constr_from_ptr(ret);
171                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
172                 return ret_hu_conv;
173         }
174
175         public static Event constructor_payment_path_failed(Uint8Array payment_hash, boolean rejected_by_dest, Option_NetworkUpdateZ network_update, boolean all_paths_failed, RouteHop[] path) {
176                 number ret = bindings.Event_payment_path_failed(payment_hash, rejected_by_dest, network_update.ptr, all_paths_failed, path != null ? Arrays.stream(path).map(path_conv_10 -> path_conv_10 == null ? 0 : path_conv_10.ptr & ~1).toArray(number[]::new) : null);
177                 Event ret_hu_conv = Event.constr_from_ptr(ret);
178                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
179                 for (RouteHop path_conv_10: path) { ret_hu_conv.ptrs_to.add(path_conv_10); };
180                 return ret_hu_conv;
181         }
182
183         public static Event constructor_pending_htlcs_forwardable(number time_forwardable) {
184                 number ret = bindings.Event_pending_htlcs_forwardable(time_forwardable);
185                 Event ret_hu_conv = Event.constr_from_ptr(ret);
186                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
187                 return ret_hu_conv;
188         }
189
190         public static Event constructor_spendable_outputs(SpendableOutputDescriptor[] outputs) {
191                 number ret = bindings.Event_spendable_outputs(outputs != null ? Arrays.stream(outputs).map(outputs_conv_27 -> outputs_conv_27.ptr).toArray(number[]::new) : null);
192                 Event ret_hu_conv = Event.constr_from_ptr(ret);
193                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
194                 return ret_hu_conv;
195         }
196
197         public static Event constructor_payment_forwarded(Option_u64Z fee_earned_msat, boolean claim_from_onchain_tx) {
198                 number ret = bindings.Event_payment_forwarded(fee_earned_msat.ptr, claim_from_onchain_tx);
199                 Event ret_hu_conv = Event.constr_from_ptr(ret);
200                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
201                 return ret_hu_conv;
202         }
203
204         public static Event constructor_channel_closed(Uint8Array channel_id, ClosureReason reason) {
205                 number ret = bindings.Event_channel_closed(channel_id, reason.ptr);
206                 Event ret_hu_conv = Event.constr_from_ptr(ret);
207                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
208                 return ret_hu_conv;
209         }
210
211         public Uint8Array write() {
212                 Uint8Array ret = bindings.Event_write(this.ptr);
213                 return ret;
214         }
215
216 }