X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FMonitorEvent.ts;h=121b502547e2c3160a98474bea3baa5779da9d62;hb=c6bac88847b7c09560af81f00ba8dd3c2ebe3a19;hp=2f65462810ec836f990884a8fdd7c844f68d486b;hpb=22f5f4208b1f3b5542292250f1612b944f5cd7fd;p=ldk-java diff --git a/ts/structs/MonitorEvent.ts b/ts/structs/MonitorEvent.ts index 2f654628..121b5025 100644 --- a/ts/structs/MonitorEvent.ts +++ b/ts/structs/MonitorEvent.ts @@ -1,27 +1,111 @@ - import CommonBase from './CommonBase'; import * as bindings from '../bindings' // TODO: figure out location +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.CommitmentTxConfirmed) { + return new CommitmentTxConfirmed(this.ptr, raw_val); + } + if (raw_val instanceof bindings.LDKMonitorEvent.UpdateCompleted) { + return new UpdateCompleted(this.ptr, raw_val); + } + if (raw_val instanceof bindings.LDKMonitorEvent.UpdateFailed) { + return new UpdateFailed(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 CommitmentTxConfirmed extends MonitorEvent { + public commitment_tx_confirmed: OutPoint; + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.CommitmentTxConfirmed) { + super(null, ptr); + const commitment_tx_confirmed: number = obj.commitment_tx_confirmed; + const commitment_tx_confirmed_hu_conv: OutPoint = new OutPoint(null, commitment_tx_confirmed); + commitment_tx_confirmed_hu_conv.ptrs_to.add(this); + this.commitment_tx_confirmed = commitment_tx_confirmed_hu_conv; + } +} +export class UpdateCompleted extends MonitorEvent { + public funding_txo: OutPoint; + public monitor_update_id: number; + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.UpdateCompleted) { + super(null, ptr); + const funding_txo: number = obj.funding_txo; + const funding_txo_hu_conv: OutPoint = new OutPoint(null, funding_txo); + funding_txo_hu_conv.ptrs_to.add(this); + this.funding_txo = funding_txo_hu_conv; + this.monitor_update_id = obj.monitor_update_id; + } +} +export class UpdateFailed extends MonitorEvent { + public update_failed: OutPoint; + private constructor(ptr: number, obj: bindings.LDKMonitorEvent.UpdateFailed) { + super(null, ptr); + const update_failed: number = obj.update_failed; + const update_failed_hu_conv: OutPoint = new OutPoint(null, update_failed); + update_failed_hu_conv.ptrs_to.add(this); + this.update_failed = update_failed_hu_conv; + } +} + public MonitorEvent clone() { + 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; + } + public static MonitorEvent constructor_htlcevent(HTLCUpdate a) { + number ret = bindings.MonitorEvent_htlcevent(a == null ? 0 : a.ptr & ~1); + MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(ret_hu_conv); + return ret_hu_conv; + } - export default class MonitorEvent extends CommonBase { - constructor(_dummy: object, ptr: number) { - super(ptr); - } + public static MonitorEvent constructor_commitment_tx_confirmed(OutPoint a) { + number ret = bindings.MonitorEvent_commitment_tx_confirmed(a == null ? 0 : a.ptr & ~1); + MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(ret_hu_conv); + return ret_hu_conv; + } - - protected finalize() { - super.finalize(); + public static MonitorEvent constructor_update_completed(OutPoint funding_txo, number monitor_update_id) { + number ret = bindings.MonitorEvent_update_completed(funding_txo == null ? 0 : funding_txo.ptr & ~1, monitor_update_id); + MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(ret_hu_conv); + return ret_hu_conv; + } - 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); + public static MonitorEvent constructor_update_failed(OutPoint a) { + number ret = bindings.MonitorEvent_update_failed(a == null ? 0 : a.ptr & ~1); + MonitorEvent ret_hu_conv = MonitorEvent.constr_from_ptr(ret); + ret_hu_conv.ptrs_to.add(ret_hu_conv); return ret_hu_conv; } + public Uint8Array write() { + Uint8Array ret = bindings.MonitorEvent_write(this.ptr); + return ret; + } + }