pub enum LightningBalance {
ClaimableOnChannelClose {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
transaction_fee_satoshis: u64,
outbound_payment_htlc_rounded_msat: u64,
outbound_forwarded_htlc_rounded_msat: u64,
inbound_claiming_htlc_rounded_msat: u64,
inbound_htlc_rounded_msat: u64,
},
ClaimableAwaitingConfirmations {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
confirmation_height: u32,
source: BalanceSource,
},
ContentiousClaimable {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
timeout_height: u32,
payment_hash: PaymentHash,
payment_preimage: PaymentPreimage,
},
MaybeTimeoutClaimableHTLC {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
claimable_height: u32,
payment_hash: PaymentHash,
outbound_payment: bool,
},
MaybePreimageClaimableHTLC {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
expiry_height: u32,
payment_hash: PaymentHash,
},
CounterpartyRevokedOutputClaimable {
channel_id: ChannelId,
counterparty_node_id: PublicKey,
amount_satoshis: u64,
},
}Expand description
Details about the status of a known Lightning balance.
Variants§
ClaimableOnChannelClose
The channel is not yet closed (or the commitment or closing transaction has not yet appeared in a block). The given balance is claimable (less on-chain fees) if the channel is force-closed now.
Fields
amount_satoshis: u64The amount available to claim, in satoshis, excluding the on-chain fees which will be required to do so.
transaction_fee_satoshis: u64The transaction fee we pay for the closing commitment transaction. This amount is not
included in the amount_satoshis value.
Note that if this channel is inbound (and thus our counterparty pays the commitment transaction fee) this value will be zero. For channels created prior to LDK Node 0.4 the channel is always treated as outbound (and thus this value is never zero).
outbound_payment_htlc_rounded_msat: u64The amount of millisatoshis which has been burned to fees from HTLCs which are outbound
from us and are related to a payment which was sent by us. This is the sum of the
millisatoshis part of all HTLCs which are otherwise represented by
LightningBalance::MaybeTimeoutClaimableHTLC with their
LightningBalance::MaybeTimeoutClaimableHTLC::outbound_payment flag set, as well as
any dust HTLCs which would otherwise be represented the same.
This amount (rounded up to a whole satoshi value) will not be included in amount_satoshis.
outbound_forwarded_htlc_rounded_msat: u64The amount of millisatoshis which has been burned to fees from HTLCs which are outbound
from us and are related to a forwarded HTLC. This is the sum of the millisatoshis part
of all HTLCs which are otherwise represented by
LightningBalance::MaybeTimeoutClaimableHTLC with their
LightningBalance::MaybeTimeoutClaimableHTLC::outbound_payment flag not set, as
well as any dust HTLCs which would otherwise be represented the same.
This amount (rounded up to a whole satoshi value) will not be included in amount_satoshis.
inbound_claiming_htlc_rounded_msat: u64The amount of millisatoshis which has been burned to fees from HTLCs which are inbound
to us and for which we know the preimage. This is the sum of the millisatoshis part of
all HTLCs which would be represented by LightningBalance::ContentiousClaimable on
channel close, but whose current value is included in amount_satoshis, as well as any
dust HTLCs which would otherwise be represented the same.
This amount (rounded up to a whole satoshi value) will not be included in the counterparty’s
amount_satoshis.
inbound_htlc_rounded_msat: u64The amount of millisatoshis which has been burned to fees from HTLCs which are inbound
to us and for which we do not know the preimage. This is the sum of the millisatoshis
part of all HTLCs which would be represented by
LightningBalance::MaybePreimageClaimableHTLC on channel close, as well as any dust
HTLCs which would otherwise be represented the same.
This amount (rounded up to a whole satoshi value) will not be included in the
counterparty’s amount_satoshis.
ClaimableAwaitingConfirmations
The channel has been closed, and the given balance is ours but awaiting confirmations until we consider it spendable.
Fields
amount_satoshis: u64The amount available to claim, in satoshis, possibly excluding the on-chain fees which were spent in broadcasting the transaction.
confirmation_height: u32The height at which an Event::SpendableOutputs event will be generated for this
amount.
source: BalanceSourceWhether this balance is a result of cooperative close, a force-close, or an HTLC.
ContentiousClaimable
The channel has been closed, and the given balance should be ours but awaiting spending transaction confirmation. If the spending transaction does not confirm in time, it is possible our counterparty can take the funds by broadcasting an HTLC timeout on-chain.
Once the spending transaction confirms, before it has reached enough confirmations to be
considered safe from chain reorganizations, the balance will instead be provided via
LightningBalance::ClaimableAwaitingConfirmations.
Fields
amount_satoshis: u64The amount available to claim, in satoshis, excluding the on-chain fees which will be required to do so.
timeout_height: u32The height at which the counterparty may be able to claim the balance if we have not done so.
payment_hash: PaymentHashThe payment hash that locks this HTLC.
payment_preimage: PaymentPreimageThe preimage that can be used to claim this HTLC.
MaybeTimeoutClaimableHTLC
HTLCs which we sent to our counterparty which are claimable after a timeout (less on-chain fees) if the counterparty does not know the preimage for the HTLCs. These are somewhat likely to be claimed by our counterparty before we do.
Fields
amount_satoshis: u64The amount potentially available to claim, in satoshis, excluding the on-chain fees which will be required to do so.
claimable_height: u32The height at which we will be able to claim the balance if our counterparty has not done so.
payment_hash: PaymentHashThe payment hash whose preimage our counterparty needs to claim this HTLC.
MaybePreimageClaimableHTLC
HTLCs which we received from our counterparty which are claimable with a preimage which we do not currently have. This will only be claimable if we receive the preimage from the node to which we forwarded this HTLC before the timeout.
Fields
amount_satoshis: u64The amount potentially available to claim, in satoshis, excluding the on-chain fees which will be required to do so.
expiry_height: u32The height at which our counterparty will be able to claim the balance if we have not yet received the preimage and claimed it ourselves.
payment_hash: PaymentHashThe payment hash whose preimage we need to claim this HTLC.
CounterpartyRevokedOutputClaimable
The channel has been closed, and our counterparty broadcasted a revoked commitment transaction.
Thus, we’re able to claim all outputs in the commitment transaction, one of which has the following amount.
Trait Implementations§
Source§impl Clone for LightningBalance
impl Clone for LightningBalance
Source§fn clone(&self) -> LightningBalance
fn clone(&self) -> LightningBalance
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for LightningBalance
impl RefUnwindSafe for LightningBalance
impl Send for LightningBalance
impl Sync for LightningBalance
impl Unpin for LightningBalance
impl UnwindSafe for LightningBalance
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more