2 import CommonBase from './CommonBase';
3 import * as bindings from '../bindings' // TODO: figure out location
5 export default class MonitorEvent extends CommonBase {
6 protected constructor(_dummy: object, ptr: number) { super(ptr); }
9 if (this.ptr != 0) { bindings.MonitorEvent_free(this.ptr); }
11 static constr_from_ptr(ptr: number): MonitorEvent {
12 const raw_val: bindings.LDKMonitorEvent = bindings.LDKMonitorEvent_ref_from_ptr(ptr);
13 if (raw_val instanceof bindings.LDKMonitorEvent.HTLCEvent) {
14 return new HTLCEvent(this.ptr, raw_val);
16 if (raw_val instanceof bindings.LDKMonitorEvent.CommitmentTxConfirmed) {
17 return new CommitmentTxConfirmed(this.ptr, raw_val);
19 if (raw_val instanceof bindings.LDKMonitorEvent.UpdateCompleted) {
20 return new UpdateCompleted(this.ptr, raw_val);
22 if (raw_val instanceof bindings.LDKMonitorEvent.UpdateFailed) {
23 return new UpdateFailed(this.ptr, raw_val);
25 throw new Error('oops, this should be unreachable'); // Unreachable without extending the (internal) bindings interface
29 export class HTLCEvent extends MonitorEvent {
30 public htlc_event: HTLCUpdate;
31 private constructor(ptr: number, obj: bindings.LDKMonitorEvent.HTLCEvent) {
33 const htlc_event: number = obj.htlc_event;
34 const htlc_event_hu_conv: HTLCUpdate = new HTLCUpdate(null, htlc_event);
35 htlc_event_hu_conv.ptrs_to.add(this);
36 this.htlc_event = htlc_event_hu_conv;
39 export class CommitmentTxConfirmed extends MonitorEvent {
40 public commitment_tx_confirmed: OutPoint;
41 private constructor(ptr: number, obj: bindings.LDKMonitorEvent.CommitmentTxConfirmed) {
43 const commitment_tx_confirmed: number = obj.commitment_tx_confirmed;
44 const commitment_tx_confirmed_hu_conv: OutPoint = new OutPoint(null, commitment_tx_confirmed);
45 commitment_tx_confirmed_hu_conv.ptrs_to.add(this);
46 this.commitment_tx_confirmed = commitment_tx_confirmed_hu_conv;
49 export class UpdateCompleted extends MonitorEvent {
50 public funding_txo: OutPoint;
51 public monitor_update_id: number;
52 private constructor(ptr: number, obj: bindings.LDKMonitorEvent.UpdateCompleted) {
54 const funding_txo: number = obj.funding_txo;
55 const funding_txo_hu_conv: OutPoint = new OutPoint(null, funding_txo);
56 funding_txo_hu_conv.ptrs_to.add(this);
57 this.funding_txo = funding_txo_hu_conv;
58 this.monitor_update_id = obj.monitor_update_id;
61 export class UpdateFailed extends MonitorEvent {
62 public update_failed: OutPoint;
63 private constructor(ptr: number, obj: bindings.LDKMonitorEvent.UpdateFailed) {
65 const update_failed: number = obj.update_failed;
66 const update_failed_hu_conv: OutPoint = new OutPoint(null, update_failed);
67 update_failed_hu_conv.ptrs_to.add(this);
68 this.update_failed = update_failed_hu_conv;
71 public number clone_ptr() {
72 number ret = bindings.MonitorEvent_clone_ptr(this.ptr);
76 public MonitorEvent clone() {
77 number ret = bindings.MonitorEvent_clone(this.ptr);
78 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
79 ret_hu_conv.ptrs_to.add(this);
83 public static MonitorEvent constructor_htlcevent(HTLCUpdate a) {
84 number ret = bindings.MonitorEvent_htlcevent(a == null ? 0 : a.ptr & ~1);
85 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
86 ret_hu_conv.ptrs_to.add(ret_hu_conv);
90 public static MonitorEvent constructor_commitment_tx_confirmed(OutPoint a) {
91 number ret = bindings.MonitorEvent_commitment_tx_confirmed(a == null ? 0 : a.ptr & ~1);
92 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
93 ret_hu_conv.ptrs_to.add(ret_hu_conv);
97 public static MonitorEvent constructor_update_completed(OutPoint funding_txo, number monitor_update_id) {
98 number ret = bindings.MonitorEvent_update_completed(funding_txo == null ? 0 : funding_txo.ptr & ~1, monitor_update_id);
99 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
100 ret_hu_conv.ptrs_to.add(ret_hu_conv);
104 public static MonitorEvent constructor_update_failed(OutPoint a) {
105 number ret = bindings.MonitorEvent_update_failed(a == null ? 0 : a.ptr & ~1);
106 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
107 ret_hu_conv.ptrs_to.add(ret_hu_conv);
111 public Uint8Array write() {
112 Uint8Array ret = bindings.MonitorEvent_write(this.ptr);