X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FMonitorEvent.ts;h=40899fe85e2a13ed8f09682d6d0cce1392b75686;hb=0fee03a8095f5599f8eccd920c1b1af6b3a20260;hp=2f65462810ec836f990884a8fdd7c844f68d486b;hpb=22f5f4208b1f3b5542292250f1612b944f5cd7fd;p=ldk-java diff --git a/ts/structs/MonitorEvent.ts b/ts/structs/MonitorEvent.ts index 2f654628..40899fe8 100644 --- a/ts/structs/MonitorEvent.ts +++ b/ts/structs/MonitorEvent.ts @@ -1,27 +1,116 @@ - 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 number clone_ptr() { + number ret = bindings.MonitorEvent_clone_ptr(this.ptr); + return ret; + } - 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); + 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; + } + + 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; + } + + 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; + } + + 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; + } + }