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§
§impl HolderCommitmentTransaction
impl HolderCommitmentTransaction
pub fn new(
commitment_tx: CommitmentTransaction,
counterparty_sig: Signature,
counterparty_htlc_sigs: Vec<Signature>,
holder_funding_key: &PublicKey,
counterparty_funding_key: &PublicKey,
) -> HolderCommitmentTransaction
pub fn new( commitment_tx: CommitmentTransaction, counterparty_sig: Signature, counterparty_htlc_sigs: Vec<Signature>, holder_funding_key: &PublicKey, counterparty_funding_key: &PublicKey, ) -> HolderCommitmentTransaction
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>§
pub fn commitment_number(&self) -> u64
pub fn commitment_number(&self) -> u64
The backwards-counting commitment number
pub fn per_commitment_point(&self) -> PublicKey
pub fn per_commitment_point(&self) -> PublicKey
The per commitment point used by the broadcaster.
pub fn to_broadcaster_value_sat(&self) -> u64
pub fn to_broadcaster_value_sat(&self) -> u64
The value to be sent to the broadcaster
pub fn to_countersignatory_value_sat(&self) -> u64
pub fn to_countersignatory_value_sat(&self) -> u64
The value to be sent to the counterparty
pub fn feerate_per_kw(&self) -> u32
pub fn feerate_per_kw(&self) -> u32
The feerate paid per 1000-weight-unit in this commitment transaction.
pub fn htlcs(&self) -> &Vec<HTLCOutputInCommitment>
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.
This is not exported to bindings users 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.
pub 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.
pub fn verify<T>(
&self,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
broadcaster_keys: &ChannelPublicKeys,
countersignatory_keys: &ChannelPublicKeys,
secp_ctx: &Secp256k1<T>,
) -> Result<TrustedCommitmentTransaction<'_>, ()>where
T: Signing + Verification,
pub fn verify<T>(
&self,
channel_parameters: &DirectedChannelTransactionParameters<'_>,
broadcaster_keys: &ChannelPublicKeys,
countersignatory_keys: &ChannelPublicKeys,
secp_ctx: &Secp256k1<T>,
) -> Result<TrustedCommitmentTransaction<'_>, ()>where
T: Signing + Verification,
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§
§impl Clone for HolderCommitmentTransaction
impl Clone for HolderCommitmentTransaction
§fn clone(&self) -> HolderCommitmentTransaction
fn clone(&self) -> HolderCommitmentTransaction
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for HolderCommitmentTransaction
impl Debug for HolderCommitmentTransaction
§impl Deref for HolderCommitmentTransaction
impl Deref for HolderCommitmentTransaction
§type Target = CommitmentTransaction
type Target = CommitmentTransaction
§fn deref(&self) -> &<HolderCommitmentTransaction as Deref>::Target
fn deref(&self) -> &<HolderCommitmentTransaction as Deref>::Target
§impl PartialEq for HolderCommitmentTransaction
impl PartialEq for HolderCommitmentTransaction
§impl Readable for HolderCommitmentTransaction
impl Readable for HolderCommitmentTransaction
§fn read<R>(reader: &mut R) -> Result<HolderCommitmentTransaction, DecodeError>where
R: Read,
fn read<R>(reader: &mut R) -> Result<HolderCommitmentTransaction, DecodeError>where
R: Read,
Self
in from the given Read
.§impl Writeable for HolderCommitmentTransaction
impl Writeable for HolderCommitmentTransaction
impl Eq for HolderCommitmentTransaction
Auto Trait Implementations§
impl Freeze for HolderCommitmentTransaction
impl RefUnwindSafe for HolderCommitmentTransaction
impl Send for HolderCommitmentTransaction
impl Sync for HolderCommitmentTransaction
impl Unpin for HolderCommitmentTransaction
impl UnwindSafe for HolderCommitmentTransaction
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any
.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any
.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request