X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FMonitorEvent.ts;h=e226f96e4bd14a86fd0927ef0615ab8b006278c0;hb=c3ae2d6897e5a809459c8d9a72a4b3aa0052c8c8;hp=9123817cb4e741e1591815830435524f850e3d0f;hpb=822471992c6bf6f9985e531cc5940e4cc35e3e4c;p=ldk-java diff --git a/ts/structs/MonitorEvent.ts b/ts/structs/MonitorEvent.ts index 9123817c..e226f96e 100644 --- a/ts/structs/MonitorEvent.ts +++ b/ts/structs/MonitorEvent.ts @@ -2,17 +2,48 @@ import CommonBase from './CommonBase'; import * as bindings from '../bindings' // TODO: figure out location -public class MonitorEvent extends CommonBase { - MonitorEvent(Object _dummy, long ptr) { super(ptr); } - @Override @SuppressWarnings("deprecation") - protected void finalize() throws Throwable { +export default class MonitorEvent extends CommonBase { + protected constructor(_dummy: object, ptr: number) { super(ptr); } + protected finalize() { super.finalize(); - if (ptr != 0) { bindings.MonitorEvent_free(ptr); } + if (this.ptr != 0) { bindings.MonitorEvent_free(this.ptr); } + } + static constr_from_ptr(ptr: number): MonitorEvent { + const raw_val: bindings.LDKMonitorEvent = bindings.LDKMonitorEvent_ref_from_ptr(ptr); + if (raw_val instanceof bindings.LDKMonitorEvent.HTLCEvent) { + return new HTLCEvent(this.ptr, raw_val); + } + if (raw_val instanceof bindings.LDKMonitorEvent.CommitmentTxBroadcasted) { + return new CommitmentTxBroadcasted(this.ptr, raw_val); + } + throw new Error('oops, this should be unreachable'); // Unreachable without extending the (internal) bindings interface } +} +export class HTLCEvent extends MonitorEvent { + public htlc_event: HTLCUpdate; + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.HTLCEvent) { + super(null, ptr); + const htlc_event: number = obj.htlc_event; + const htlc_event_hu_conv: HTLCUpdate = new HTLCUpdate(null, htlc_event); + htlc_event_hu_conv.ptrs_to.add(this); + this.htlc_event = htlc_event_hu_conv; + } +} +export class CommitmentTxBroadcasted extends MonitorEvent { + public commitment_tx_broadcasted: OutPoint; + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.CommitmentTxBroadcasted) { + super(null, ptr); + const commitment_tx_broadcasted: number = obj.commitment_tx_broadcasted; + const commitment_tx_broadcasted_hu_conv: OutPoint = new OutPoint(null, commitment_tx_broadcasted); + commitment_tx_broadcasted_hu_conv.ptrs_to.add(this); + this.commitment_tx_broadcasted = commitment_tx_broadcasted_hu_conv; + } +} public MonitorEvent clone() { - uint32_t ret = bindings.MonitorEvent_clone(this.ptr); - MonitorEvent ret_hu_conv = new MonitorEvent(null, ret); + number ret = bindings.MonitorEvent_clone(this.ptr); + MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(this); return ret_hu_conv; }