X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=ts%2Fstructs%2FMonitorEvent.ts;h=1a6c1637f42a6cfbfc1cc1347f68aff76bd70085;hb=7230fc131684082fcd2170733b1afab147613405;hp=2f65462810ec836f990884a8fdd7c844f68d486b;hpb=acecce750cf1159a51f9d1a4dbfd717520739e92;p=ldk-java diff --git a/ts/structs/MonitorEvent.ts b/ts/structs/MonitorEvent.ts index 2f654628..1a6c1637 100644 --- a/ts/structs/MonitorEvent.ts +++ b/ts/structs/MonitorEvent.ts @@ -1,27 +1,32 @@ - import CommonBase from './CommonBase'; import * as bindings from '../bindings' // TODO: figure out location - - - export default class MonitorEvent extends CommonBase { - constructor(_dummy: object, ptr: number) { - super(ptr); - } - - - protected finalize() { - super.finalize(); - - if (this.ptr != 0) { - bindings.MonitorEvent_free(this.ptr); - } - } - public MonitorEvent clone() { - number ret = bindings.MonitorEvent_clone(this.ptr); - const ret_hu_conv: MonitorEvent = new MonitorEvent(null, ret); - return ret_hu_conv; +export default class MonitorEvent extends CommonBase { + protected constructor(_dummy: object, ptr: number) { super(ptr); } + protected finalize() { + super.finalize(); + 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 { + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.HTLCEvent) { + super(null, ptr); + } +} +export class CommitmentTxBroadcasted extends MonitorEvent { + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.CommitmentTxBroadcasted) { + super(null, ptr); + } +}