X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FMonitorEvent.ts;h=1a6c1637f42a6cfbfc1cc1347f68aff76bd70085;hb=276893d3b8bd3fcb2bb10e3cab73a69d34831909;hp=b24e66024fc43129f267d4bae029f105da04158f;hpb=fd59673b53bd5e74459132e685a10258b3c1d5a6;p=ldk-java diff --git a/ts/structs/MonitorEvent.ts b/ts/structs/MonitorEvent.ts index b24e6602..1a6c1637 100644 --- a/ts/structs/MonitorEvent.ts +++ b/ts/structs/MonitorEvent.ts @@ -1,28 +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); - ret_hu_conv.ptrs_to.add(this); - 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); + } +}