Struct lightning::ln::chan_utils::CommitmentTransaction
source · [−]pub struct CommitmentTransaction { /* private fields */ }
Expand description
This class tracks the per-transaction information needed to build a commitment transaction and will actually build it and sign. It is used for holder transactions that we sign only when needed and for transactions we sign for the counterparty.
This class can be used inside a signer implementation to generate a signature given the relevant secret key.
Implementations
sourceimpl CommitmentTransaction
impl CommitmentTransaction
sourcepub fn new_with_auxiliary_htlc_data<T>(
commitment_number: u64,
to_broadcaster_value_sat: u64,
to_countersignatory_value_sat: u64,
opt_anchors: bool,
broadcaster_funding_key: PublicKey,
countersignatory_funding_key: PublicKey,
keys: TxCreationKeys,
feerate_per_kw: u32,
htlcs_with_aux: &mut Vec<(HTLCOutputInCommitment, T)>,
channel_parameters: &DirectedChannelTransactionParameters<'_>
) -> CommitmentTransaction
pub fn new_with_auxiliary_htlc_data<T>(
commitment_number: u64,
to_broadcaster_value_sat: u64,
to_countersignatory_value_sat: u64,
opt_anchors: bool,
broadcaster_funding_key: PublicKey,
countersignatory_funding_key: PublicKey,
keys: TxCreationKeys,
feerate_per_kw: u32,
htlcs_with_aux: &mut Vec<(HTLCOutputInCommitment, T)>,
channel_parameters: &DirectedChannelTransactionParameters<'_>
) -> CommitmentTransaction
Construct an object of the class while assigning transaction output indices to HTLCs.
Populates HTLCOutputInCommitment.transaction_output_index in htlcs_with_aux.
The generic T allows the caller to match the HTLC output index with auxiliary data. This auxiliary data is not stored in this object.
Only include HTLCs that are above the dust limit for the channel.
(C-not exported) due to the generic though we likely should expose a version without
sourcepub fn commitment_number(&self) -> u64
pub fn commitment_number(&self) -> u64
The backwards-counting commitment number
sourcepub fn to_broadcaster_value_sat(&self) -> u64
pub fn to_broadcaster_value_sat(&self) -> u64
The value to be sent to the broadcaster
sourcepub fn to_countersignatory_value_sat(&self) -> u64
pub fn to_countersignatory_value_sat(&self) -> u64
The value to be sent to the counterparty
sourcepub fn feerate_per_kw(&self) -> u32
pub fn feerate_per_kw(&self) -> u32
The feerate paid per 1000-weight-unit in this commitment transaction.
sourcepub fn htlcs(&self) -> &Vec<HTLCOutputInCommitment>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn htlcs(&self) -> &Vec<HTLCOutputInCommitment>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
The non-dust HTLCs (direction, amt, height expiration, hash, transaction output index) which were included in this commitment transaction in output order. The transaction index is always populated.
(C-not exported) as we cannot currently convert Vec references to/from C, though we should expose a less effecient version which creates a Vec of references in the future.
sourcepub fn trust(&self) -> TrustedCommitmentTransaction<'_>
pub fn trust(&self) -> TrustedCommitmentTransaction<'_>
Trust our pre-built transaction and derived transaction creation public keys.
Applies a wrapper which allows access to these fields.
This should only be used if you fully trust the builder of this object. It should not be used by an external signer - instead use the verify function.
sourcepub fn verify<T: Signing + Verification>(
&self,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
broadcaster_keys: &ChannelPublicKeys,
countersignatory_keys: &ChannelPublicKeys,
secp_ctx: &Secp256k1<T>
) -> Result<TrustedCommitmentTransaction<'_>, ()>
pub fn verify<T: Signing + Verification>(
&self,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
broadcaster_keys: &ChannelPublicKeys,
countersignatory_keys: &ChannelPublicKeys,
secp_ctx: &Secp256k1<T>
) -> Result<TrustedCommitmentTransaction<'_>, ()>
Verify our pre-built transaction and derived transaction creation public keys.
Applies a wrapper which allows access to these fields.
An external validating signer must call this method before signing or using the built transaction.
Trait Implementations
sourceimpl Clone for CommitmentTransaction
impl Clone for CommitmentTransaction
sourcefn clone(&self) -> CommitmentTransaction
fn clone(&self) -> CommitmentTransaction
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Readable for CommitmentTransaction
impl Readable for CommitmentTransaction
sourceimpl Writeable for CommitmentTransaction
impl Writeable for CommitmentTransaction
sourcefn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>
fn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>
Writes self out to the given Writer
sourcefn serialized_length(&self) -> usize
fn serialized_length(&self) -> usize
Gets the length of this object after it has been serialized. This can be overridden to optimize cases where we prepend an object with its length. Read more
Auto Trait Implementations
impl RefUnwindSafe for CommitmentTransaction
impl Send for CommitmentTransaction
impl Sync for CommitmentTransaction
impl Unpin for CommitmentTransaction
impl UnwindSafe for CommitmentTransaction
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> MaybeReadable for T where
T: Readable,
impl<T> MaybeReadable for T where
T: Readable,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more