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§

source§

impl CommitmentTransaction

source

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

source

pub fn with_non_zero_fee_anchors(self) -> Self

Use non-zero fee anchors

(C-not exported) due to move, and also not likely to be useful for binding users

source

pub fn commitment_number(&self) -> u64

The backwards-counting commitment number

source

pub fn to_broadcaster_value_sat(&self) -> u64

The value to be sent to the broadcaster

source

pub fn to_countersignatory_value_sat(&self) -> u64

The value to be sent to the counterparty

source

pub fn feerate_per_kw(&self) -> u32

The feerate paid per 1000-weight-unit in this commitment transaction.

source

pub fn htlcs(&self) -> &Vec<HTLCOutputInCommitment>

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.

source

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.

source

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§

source§

impl Clone for CommitmentTransaction

source§

fn clone(&self) -> CommitmentTransaction

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl PartialEq<CommitmentTransaction> for CommitmentTransaction

source§

fn eq(&self, o: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Readable for CommitmentTransaction

source§

fn read<R: Read>(reader: &mut R) -> Result<Self, DecodeError>

Reads a Self in from the given Read.
source§

impl Writeable for CommitmentTransaction

source§

fn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>

Writes self out to the given Writer.
source§

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.
source§

fn encode(&self) -> Vec<u8>

Writes self out to a Vec<u8>.
source§

impl Eq for CommitmentTransaction

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> MaybeReadable for Twhere T: Readable,

source§

fn read<R>(reader: &mut R) -> Result<Option<T>, DecodeError>where R: Read,

Reads a Self in from the given Read.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.