Skip to content

Commit 3ad8b15

Browse files
committed
Update ChannelManager::splice_channel docs
Update the ChannelManager::splice_channel docs to reflect the current state of the implementation and splicing-related events.
1 parent 9ac696f commit 3ad8b15

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4663,17 +4663,32 @@ where
46634663
}
46644664
}
46654665

4666-
/// Initiate a splice, to change the channel capacity of an existing funded channel.
4667-
/// After completion of splicing, the funding transaction will be replaced by a new one, spending the old funding transaction,
4668-
/// with optional extra inputs (splice-in) and/or extra outputs (splice-out or change).
4669-
/// TODO(splicing): Implementation is currently incomplete.
4666+
/// Initiate a splice in order to add value to (splice-in) or remove value from (splice-out)
4667+
/// the channel. This will spend the channel's funding transaction output, effectively replacing
4668+
/// it with a new one.
46704669
///
4671-
/// Note: Currently only splice-in is supported (increase in channel capacity), splice-out is not.
4670+
/// # Arguments
46724671
///
4673-
/// - `our_funding_contribution_satoshis`: the amount contributed by us to the channel. This will increase our channel balance.
4674-
/// - `our_funding_inputs`: the funding inputs provided by us. If our contribution is positive, our funding inputs must cover at least that amount.
4675-
/// Includes the witness weight for this input (e.g. P2WPKH_WITNESS_WEIGHT=109 for typical P2WPKH inputs).
4676-
/// - `locktime`: Optional locktime for the new funding transaction. If None, set to the current block height.
4672+
/// Provide a `contribution` to determine if value is spliced in or out. The splice initiator is
4673+
/// responsible for paying fees for common fields, shared inputs, and shared outputs along with
4674+
/// any contributed inputs and outputs. Fees are determined using `funding_feerate_per_kw` and
4675+
/// must be covered by the supplied inputs for splice-in or the channel balance for splice-out.
4676+
///
4677+
/// An optional `locktime` for the funding transaction may be specified. If not given, the
4678+
/// current best block height is used.
4679+
///
4680+
/// # Events
4681+
///
4682+
/// Once the funding transaction has been constructed, an [`Event::SplicePending`] will be
4683+
/// emitted. At this point, any inputs contributed to the splice can only be re-spent if an
4684+
/// [`Event::DiscardFunding`] is seen.
4685+
///
4686+
/// If any failures occur while negotiating the funding transaction, an [`Event::SpliceFailed`]
4687+
/// will be emitted. Any contributed inputs no longer used will be included here and thus can
4688+
/// be re-spent.
4689+
///
4690+
/// Once the splice has been locked by both counterparties, an [`Event::ChannelReady`] will be
4691+
/// emitted with the new funding output.
46774692
#[rustfmt::skip]
46784693
pub fn splice_channel(
46794694
&self, channel_id: &ChannelId, counterparty_node_id: &PublicKey,

0 commit comments

Comments
 (0)