lightningdevkit
Version:
Lightning Development Kit
307 lines • 12.5 kB
JavaScript
import { Option_boolZ } from '../structs/Option_boolZ.mjs';
import { UntrustedString } from '../structs/UntrustedString.mjs';
import { CommonBase } from './CommonBase.mjs';
import * as bindings from '../bindings.mjs';
/**
* The reason the channel was closed. See individual variants for more details.
*/
export class ClosureReason extends CommonBase {
constructor(_dummy, ptr) { super(ptr, bindings.ClosureReason_free); }
/* @internal */
static constr_from_ptr(ptr) {
const raw_ty = bindings.LDKClosureReason_ty_from_ptr(ptr);
switch (raw_ty) {
case 0: return new ClosureReason_CounterpartyForceClosed(ptr);
case 1: return new ClosureReason_HolderForceClosed(ptr);
case 2: return new ClosureReason_LegacyCooperativeClosure(ptr);
case 3: return new ClosureReason_CounterpartyInitiatedCooperativeClosure(ptr);
case 4: return new ClosureReason_LocallyInitiatedCooperativeClosure(ptr);
case 5: return new ClosureReason_CommitmentTxConfirmed(ptr);
case 6: return new ClosureReason_FundingTimedOut(ptr);
case 7: return new ClosureReason_ProcessingError(ptr);
case 8: return new ClosureReason_DisconnectedPeer(ptr);
case 9: return new ClosureReason_OutdatedChannelManager(ptr);
case 10: return new ClosureReason_CounterpartyCoopClosedUnfundedChannel(ptr);
case 11: return new ClosureReason_FundingBatchClosure(ptr);
case 12: return new ClosureReason_HTLCsTimedOut(ptr);
case 13: return new ClosureReason_PeerFeerateTooLow(ptr);
default:
throw new Error('oops, this should be unreachable'); // Unreachable without extending the (internal) bindings interface
}
}
clone_ptr() {
const ret = bindings.ClosureReason_clone_ptr(this.ptr);
return ret;
}
/**
* Creates a copy of the ClosureReason
*/
clone() {
const ret = bindings.ClosureReason_clone(this.ptr);
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, this);
return ret_hu_conv;
}
/**
* Utility method to constructs a new CounterpartyForceClosed-variant ClosureReason
*/
static constructor_counterparty_force_closed(peer_msg) {
const ret = bindings.ClosureReason_counterparty_force_closed(CommonBase.get_ptr_of(peer_msg));
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new HolderForceClosed-variant ClosureReason
*/
static constructor_holder_force_closed(broadcasted_latest_txn) {
const ret = bindings.ClosureReason_holder_force_closed(CommonBase.get_ptr_of(broadcasted_latest_txn));
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new LegacyCooperativeClosure-variant ClosureReason
*/
static constructor_legacy_cooperative_closure() {
const ret = bindings.ClosureReason_legacy_cooperative_closure();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new CounterpartyInitiatedCooperativeClosure-variant ClosureReason
*/
static constructor_counterparty_initiated_cooperative_closure() {
const ret = bindings.ClosureReason_counterparty_initiated_cooperative_closure();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new LocallyInitiatedCooperativeClosure-variant ClosureReason
*/
static constructor_locally_initiated_cooperative_closure() {
const ret = bindings.ClosureReason_locally_initiated_cooperative_closure();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new CommitmentTxConfirmed-variant ClosureReason
*/
static constructor_commitment_tx_confirmed() {
const ret = bindings.ClosureReason_commitment_tx_confirmed();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new FundingTimedOut-variant ClosureReason
*/
static constructor_funding_timed_out() {
const ret = bindings.ClosureReason_funding_timed_out();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new ProcessingError-variant ClosureReason
*/
static constructor_processing_error(err) {
const ret = bindings.ClosureReason_processing_error(bindings.encodeString(err));
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new DisconnectedPeer-variant ClosureReason
*/
static constructor_disconnected_peer() {
const ret = bindings.ClosureReason_disconnected_peer();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new OutdatedChannelManager-variant ClosureReason
*/
static constructor_outdated_channel_manager() {
const ret = bindings.ClosureReason_outdated_channel_manager();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new CounterpartyCoopClosedUnfundedChannel-variant ClosureReason
*/
static constructor_counterparty_coop_closed_unfunded_channel() {
const ret = bindings.ClosureReason_counterparty_coop_closed_unfunded_channel();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new FundingBatchClosure-variant ClosureReason
*/
static constructor_funding_batch_closure() {
const ret = bindings.ClosureReason_funding_batch_closure();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new HTLCsTimedOut-variant ClosureReason
*/
static constructor_htlcs_timed_out() {
const ret = bindings.ClosureReason_htlcs_timed_out();
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Utility method to constructs a new PeerFeerateTooLow-variant ClosureReason
*/
static constructor_peer_feerate_too_low(peer_feerate_sat_per_kw, required_feerate_sat_per_kw) {
const ret = bindings.ClosureReason_peer_feerate_too_low(peer_feerate_sat_per_kw, required_feerate_sat_per_kw);
const ret_hu_conv = ClosureReason.constr_from_ptr(ret);
CommonBase.add_ref_from(ret_hu_conv, ret_hu_conv);
return ret_hu_conv;
}
/**
* Checks if two ClosureReasons contain equal inner contents.
* This ignores pointers and is_owned flags and looks at the values in fields.
*/
eq(b) {
const ret = bindings.ClosureReason_eq(this.ptr, CommonBase.get_ptr_of(b));
return ret;
}
/**
* Get the string representation of a ClosureReason object
*/
to_str() {
const ret = bindings.ClosureReason_to_str(this.ptr);
const ret_conv = bindings.decodeString(ret);
return ret_conv;
}
/**
* Serialize the ClosureReason object into a byte array which can be read by ClosureReason_read
*/
write() {
const ret = bindings.ClosureReason_write(this.ptr);
const ret_conv = bindings.decodeUint8Array(ret);
return ret_conv;
}
}
/** A ClosureReason of type CounterpartyForceClosed */
export class ClosureReason_CounterpartyForceClosed extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
const peer_msg = bindings.LDKClosureReason_CounterpartyForceClosed_get_peer_msg(ptr);
const peer_msg_hu_conv = new UntrustedString(null, peer_msg);
CommonBase.add_ref_from(peer_msg_hu_conv, this);
this.peer_msg = peer_msg_hu_conv;
}
}
/** A ClosureReason of type HolderForceClosed */
export class ClosureReason_HolderForceClosed extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
const broadcasted_latest_txn = bindings.LDKClosureReason_HolderForceClosed_get_broadcasted_latest_txn(ptr);
const broadcasted_latest_txn_hu_conv = Option_boolZ.constr_from_ptr(broadcasted_latest_txn);
CommonBase.add_ref_from(broadcasted_latest_txn_hu_conv, this);
this.broadcasted_latest_txn = broadcasted_latest_txn_hu_conv;
}
}
/** A ClosureReason of type LegacyCooperativeClosure */
export class ClosureReason_LegacyCooperativeClosure extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type CounterpartyInitiatedCooperativeClosure */
export class ClosureReason_CounterpartyInitiatedCooperativeClosure extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type LocallyInitiatedCooperativeClosure */
export class ClosureReason_LocallyInitiatedCooperativeClosure extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type CommitmentTxConfirmed */
export class ClosureReason_CommitmentTxConfirmed extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type FundingTimedOut */
export class ClosureReason_FundingTimedOut extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type ProcessingError */
export class ClosureReason_ProcessingError extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
const err = bindings.LDKClosureReason_ProcessingError_get_err(ptr);
const err_conv = bindings.decodeString(err);
this.err = err_conv;
}
}
/** A ClosureReason of type DisconnectedPeer */
export class ClosureReason_DisconnectedPeer extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type OutdatedChannelManager */
export class ClosureReason_OutdatedChannelManager extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type CounterpartyCoopClosedUnfundedChannel */
export class ClosureReason_CounterpartyCoopClosedUnfundedChannel extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type FundingBatchClosure */
export class ClosureReason_FundingBatchClosure extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type HTLCsTimedOut */
export class ClosureReason_HTLCsTimedOut extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
}
}
/** A ClosureReason of type PeerFeerateTooLow */
export class ClosureReason_PeerFeerateTooLow extends ClosureReason {
/* @internal */
constructor(ptr) {
super(null, ptr);
this.peer_feerate_sat_per_kw = bindings.LDKClosureReason_PeerFeerateTooLow_get_peer_feerate_sat_per_kw(ptr);
this.required_feerate_sat_per_kw = bindings.LDKClosureReason_PeerFeerateTooLow_get_required_feerate_sat_per_kw(ptr);
}
}
//# sourceMappingURL=ClosureReason.mjs.map