Struct lightning::ln::chan_utils::TrustedCommitmentTransaction
source · [−]pub struct TrustedCommitmentTransaction<'a> { /* private fields */ }
Expand description
A wrapper on CommitmentTransaction indicating that the derived fields (the built bitcoin transaction and the transaction creation keys) are trusted.
See trust() and verify() functions on CommitmentTransaction.
This structure implements Deref.
Implementations
sourceimpl<'a> TrustedCommitmentTransaction<'a>
impl<'a> TrustedCommitmentTransaction<'a>
sourcepub fn built_transaction(&self) -> &BuiltCommitmentTransaction
pub fn built_transaction(&self) -> &BuiltCommitmentTransaction
The pre-built Bitcoin commitment transaction
sourcepub fn keys(&self) -> &TxCreationKeys
pub fn keys(&self) -> &TxCreationKeys
The pre-calculated transaction creation public keys.
sourcepub fn opt_anchors(&self) -> bool
pub fn opt_anchors(&self) -> bool
Should anchors be used.
sourcepub fn get_htlc_sigs<T: Signing>(
&self,
htlc_base_key: &SecretKey,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
secp_ctx: &Secp256k1<T>
) -> Result<Vec<Signature>, ()>
pub fn get_htlc_sigs<T: Signing>(
&self,
htlc_base_key: &SecretKey,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
secp_ctx: &Secp256k1<T>
) -> Result<Vec<Signature>, ()>
Get a signature for each HTLC which was included in the commitment transaction (ie for which HTLCOutputInCommitment::transaction_output_index.is_some()).
The returned Vec has one entry for each HTLC, and in the same order.
This function is only valid in the holder commitment context, it always uses SigHashType::All.
Methods from Deref<Target = CommitmentTransaction>
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<'a> Deref for TrustedCommitmentTransaction<'a>
impl<'a> Deref for TrustedCommitmentTransaction<'a>
type Target = CommitmentTransaction
type Target = CommitmentTransaction
The resulting type after dereferencing.
Auto Trait Implementations
impl<'a> RefUnwindSafe for TrustedCommitmentTransaction<'a>
impl<'a> Send for TrustedCommitmentTransaction<'a>
impl<'a> Sync for TrustedCommitmentTransaction<'a>
impl<'a> Unpin for TrustedCommitmentTransaction<'a>
impl<'a> UnwindSafe for TrustedCommitmentTransaction<'a>
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