2 import CommonBase from './CommonBase';
3 import * as bindings from '../bindings' // TODO: figure out location
5 export default class ClosureReason extends CommonBase {
6 protected constructor(_dummy: object, ptr: number) { super(ptr); }
9 if (this.ptr != 0) { bindings.ClosureReason_free(this.ptr); }
11 static constr_from_ptr(ptr: number): ClosureReason {
12 const raw_val: bindings.LDKClosureReason = bindings.LDKClosureReason_ref_from_ptr(ptr);
13 if (raw_val instanceof bindings.LDKClosureReason.CounterpartyForceClosed) {
14 return new CounterpartyForceClosed(this.ptr, raw_val);
16 if (raw_val instanceof bindings.LDKClosureReason.HolderForceClosed) {
17 return new HolderForceClosed(this.ptr, raw_val);
19 if (raw_val instanceof bindings.LDKClosureReason.CooperativeClosure) {
20 return new CooperativeClosure(this.ptr, raw_val);
22 if (raw_val instanceof bindings.LDKClosureReason.CommitmentTxConfirmed) {
23 return new CommitmentTxConfirmed(this.ptr, raw_val);
25 if (raw_val instanceof bindings.LDKClosureReason.FundingTimedOut) {
26 return new FundingTimedOut(this.ptr, raw_val);
28 if (raw_val instanceof bindings.LDKClosureReason.ProcessingError) {
29 return new ProcessingError(this.ptr, raw_val);
31 if (raw_val instanceof bindings.LDKClosureReason.DisconnectedPeer) {
32 return new DisconnectedPeer(this.ptr, raw_val);
34 if (raw_val instanceof bindings.LDKClosureReason.OutdatedChannelManager) {
35 return new OutdatedChannelManager(this.ptr, raw_val);
37 throw new Error('oops, this should be unreachable'); // Unreachable without extending the (internal) bindings interface
41 export class CounterpartyForceClosed extends ClosureReason {
42 public peer_msg: String;
43 private constructor(ptr: number, obj: bindings.LDKClosureReason.CounterpartyForceClosed) {
45 this.peer_msg = obj.peer_msg;
48 export class HolderForceClosed extends ClosureReason {
49 private constructor(ptr: number, obj: bindings.LDKClosureReason.HolderForceClosed) {
53 export class CooperativeClosure extends ClosureReason {
54 private constructor(ptr: number, obj: bindings.LDKClosureReason.CooperativeClosure) {
58 export class CommitmentTxConfirmed extends ClosureReason {
59 private constructor(ptr: number, obj: bindings.LDKClosureReason.CommitmentTxConfirmed) {
63 export class FundingTimedOut extends ClosureReason {
64 private constructor(ptr: number, obj: bindings.LDKClosureReason.FundingTimedOut) {
68 export class ProcessingError extends ClosureReason {
70 private constructor(ptr: number, obj: bindings.LDKClosureReason.ProcessingError) {
75 export class DisconnectedPeer extends ClosureReason {
76 private constructor(ptr: number, obj: bindings.LDKClosureReason.DisconnectedPeer) {
80 export class OutdatedChannelManager extends ClosureReason {
81 private constructor(ptr: number, obj: bindings.LDKClosureReason.OutdatedChannelManager) {
85 public number clone_ptr() {
86 number ret = bindings.ClosureReason_clone_ptr(this.ptr);
90 public ClosureReason clone() {
91 number ret = bindings.ClosureReason_clone(this.ptr);
92 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
93 ret_hu_conv.ptrs_to.add(this);
97 public static ClosureReason constructor_counterparty_force_closed(String peer_msg) {
98 number ret = bindings.ClosureReason_counterparty_force_closed(peer_msg);
99 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
100 ret_hu_conv.ptrs_to.add(ret_hu_conv);
104 public static ClosureReason constructor_holder_force_closed() {
105 number ret = bindings.ClosureReason_holder_force_closed();
106 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
107 ret_hu_conv.ptrs_to.add(ret_hu_conv);
111 public static ClosureReason constructor_cooperative_closure() {
112 number ret = bindings.ClosureReason_cooperative_closure();
113 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
114 ret_hu_conv.ptrs_to.add(ret_hu_conv);
118 public static ClosureReason constructor_commitment_tx_confirmed() {
119 number ret = bindings.ClosureReason_commitment_tx_confirmed();
120 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
121 ret_hu_conv.ptrs_to.add(ret_hu_conv);
125 public static ClosureReason constructor_funding_timed_out() {
126 number ret = bindings.ClosureReason_funding_timed_out();
127 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
128 ret_hu_conv.ptrs_to.add(ret_hu_conv);
132 public static ClosureReason constructor_processing_error(String err) {
133 number ret = bindings.ClosureReason_processing_error(err);
134 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
135 ret_hu_conv.ptrs_to.add(ret_hu_conv);
139 public static ClosureReason constructor_disconnected_peer() {
140 number ret = bindings.ClosureReason_disconnected_peer();
141 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
142 ret_hu_conv.ptrs_to.add(ret_hu_conv);
146 public static ClosureReason constructor_outdated_channel_manager() {
147 number ret = bindings.ClosureReason_outdated_channel_manager();
148 ClosureReason ret_hu_conv = ClosureReason.constr_from_ptr(ret);
149 ret_hu_conv.ptrs_to.add(ret_hu_conv);
153 public Uint8Array write() {
154 Uint8Array ret = bindings.ClosureReason_write(this.ptr);