pub struct HtlcKey(pub PublicKey);Expand description
A derived key built from a HtlcBasepoint and per_commitment_point.
HTLC keys are used to ensure only the recipient of an HTLC can claim it on-chain with the HTLC preimage and that only the sender of an HTLC can claim it on-chain after it has timed out. Thus, both channel counterparties’ HTLC keys will appears in each HTLC output’s script.
[See the BOLT specs] https://github.com/lightning/bolts/blob/master/03-transactions.md#localpubkey-local_htlcpubkey-remote_htlcpubkey-local_delayedpubkey-and-remote_delayedpubkey-derivation for more information on key derivation details.
Tuple Fields§
§0: PublicKeyImplementations§
Source§impl HtlcKey
impl HtlcKey
Sourcepub fn from_basepoint<T: Signing>(
secp_ctx: &Secp256k1<T>,
countersignatory_basepoint: &HtlcBasepoint,
per_commitment_point: &PublicKey,
) -> Self
pub fn from_basepoint<T: Signing>( secp_ctx: &Secp256k1<T>, countersignatory_basepoint: &HtlcBasepoint, per_commitment_point: &PublicKey, ) -> Self
Derive a public htlcpubkey using one node’s per_commitment_point and its countersignatory’s basepoint
Sourcepub fn from_secret_key<T: Signing>(
secp_ctx: &Secp256k1<T>,
sk: &SecretKey,
) -> Self
pub fn from_secret_key<T: Signing>( secp_ctx: &Secp256k1<T>, sk: &SecretKey, ) -> Self
Build a htlcpubkey directly from an already-derived private key
Sourcepub fn to_public_key(&self) -> PublicKey
pub fn to_public_key(&self) -> PublicKey
Get inner Public Key
Trait Implementations§
Source§impl Writeable for HtlcKey
impl Writeable for HtlcKey
impl Copy for HtlcKey
impl Eq for HtlcKey
impl StructuralPartialEq for HtlcKey
Auto Trait Implementations§
impl Freeze for HtlcKey
impl RefUnwindSafe for HtlcKey
impl Send for HtlcKey
impl Sync for HtlcKey
impl Unpin for HtlcKey
impl UnwindSafe for HtlcKey
Blanket Implementations§
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LengthReadable for Twhere
T: Readable,
impl<T> LengthReadable for Twhere
T: Readable,
Source§fn read_from_fixed_length_buffer<R>(reader: &mut R) -> Result<T, DecodeError>where
R: LengthLimitedRead,
fn read_from_fixed_length_buffer<R>(reader: &mut R) -> Result<T, DecodeError>where
R: LengthLimitedRead,
Self in from the given LengthLimitedRead.