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 MonitorEvent clone() {
72 number ret = bindings.MonitorEvent_clone(this.ptr);
73 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
74 ret_hu_conv.ptrs_to.add(this);
78 public static MonitorEvent constructor_htlcevent(HTLCUpdate a) {
79 number ret = bindings.MonitorEvent_htlcevent(a == null ? 0 : a.ptr & ~1);
80 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
81 ret_hu_conv.ptrs_to.add(ret_hu_conv);
85 public static MonitorEvent constructor_commitment_tx_confirmed(OutPoint a) {
86 number ret = bindings.MonitorEvent_commitment_tx_confirmed(a == null ? 0 : a.ptr & ~1);
87 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
88 ret_hu_conv.ptrs_to.add(ret_hu_conv);
92 public static MonitorEvent constructor_update_completed(OutPoint funding_txo, number monitor_update_id) {
93 number ret = bindings.MonitorEvent_update_completed(funding_txo == null ? 0 : funding_txo.ptr & ~1, monitor_update_id);
94 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
95 ret_hu_conv.ptrs_to.add(ret_hu_conv);
99 public static MonitorEvent constructor_update_failed(OutPoint a) {
100 number ret = bindings.MonitorEvent_update_failed(a == null ? 0 : a.ptr & ~1);
101 MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret);
102 ret_hu_conv.ptrs_to.add(ret_hu_conv);
106 public Uint8Array write() {
107 Uint8Array ret = bindings.MonitorEvent_write(this.ptr);