Struct lightning::ln::chan_utils::HolderCommitmentTransaction
source · [−]pub struct HolderCommitmentTransaction {
pub counterparty_sig: Signature,
pub counterparty_htlc_sigs: Vec<Signature>,
/* private fields */
}
Expand description
Information needed to build and sign a holder’s commitment transaction.
The transaction is only signed once we are ready to broadcast.
Fields
counterparty_sig: Signature
Our counterparty’s signature for the transaction
counterparty_htlc_sigs: Vec<Signature>
All non-dust counterparty HTLC signatures, in the order they appear in the transaction
Implementations
sourceimpl HolderCommitmentTransaction
impl HolderCommitmentTransaction
sourcepub fn new(
commitment_tx: CommitmentTransaction,
counterparty_sig: Signature,
counterparty_htlc_sigs: Vec<Signature>,
holder_funding_key: &PublicKey,
counterparty_funding_key: &PublicKey
) -> Self
pub fn new(
commitment_tx: CommitmentTransaction,
counterparty_sig: Signature,
counterparty_htlc_sigs: Vec<Signature>,
holder_funding_key: &PublicKey,
counterparty_funding_key: &PublicKey
) -> Self
Create a new holder transaction with the given counterparty signatures. The funding keys are used to figure out which signature should go first when building the transaction for broadcast.
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 Clone for HolderCommitmentTransaction
impl Clone for HolderCommitmentTransaction
sourcefn clone(&self) -> HolderCommitmentTransaction
fn clone(&self) -> HolderCommitmentTransaction
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 Deref for HolderCommitmentTransaction
impl Deref for HolderCommitmentTransaction
type Target = CommitmentTransaction
type Target = CommitmentTransaction
The resulting type after dereferencing.
sourceimpl Writeable for HolderCommitmentTransaction
impl Writeable for HolderCommitmentTransaction
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 HolderCommitmentTransaction
impl Send for HolderCommitmentTransaction
impl Sync for HolderCommitmentTransaction
impl Unpin for HolderCommitmentTransaction
impl UnwindSafe for HolderCommitmentTransaction
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more