Skip to main content

InMemorySigner

Struct InMemorySigner 

Source
pub struct InMemorySigner {
    pub funding_key: Privkey,
    pub tlc_base_key: Privkey,
    pub musig2_base_nonce: Privkey,
    pub commitment_seed: [u8; 32],
}
Expand description

A simple implementation of a channel signer that keeps the private keys in memory.

This implementation performs no policy checks and is insufficient by itself as a secure external signer.

Fields§

§funding_key: Privkey

Holder secret key in the 2-of-2 multisig script of a channel.

§tlc_base_key: Privkey

Holder HTLC secret key used in commitment transaction HTLC outputs.

§musig2_base_nonce: Privkey

SecNonce used to generate valid signature in musig.

§commitment_seed: [u8; 32]

Seed to derive above keys (per commitment).

Implementations§

Source§

impl InMemorySigner

Source

pub fn generate_from_seed(params: &[u8]) -> InMemorySigner

Generate an InMemorySigner from a seed.

Source

pub fn get_base_public_keys(&self) -> ChannelBasePublicKeys

Get the base public keys for this signer.

Source

pub fn get_commitment_point(&self, commitment_number: u64) -> Pubkey

Returns the commitment point for the given commitment number.

The commitment point is the public key derived from the commitment seed and the commitment number. It is used to derive the pubkeys used in TLC (htlc and revocation outputs).

Source

pub fn get_commitment_secret(&self, commitment_number: u64) -> [u8; 32]

Returns the commitment secret for the given commitment number.

Source

pub fn derive_tlc_key(&self, new_commitment_number: u64) -> Privkey

Derive the TLC key for the given commitment number.

Source

pub fn derive_musig2_nonce( &self, commitment_number: u64, context: Musig2Context, ) -> SecNonce

Derive a musig2 nonce for the given commitment number and context.

Trait Implementations§

Source§

impl Clone for InMemorySigner

Source§

fn clone(&self) -> InMemorySigner

Returns a duplicate 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 Debug for InMemorySigner

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for InMemorySigner

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for InMemorySigner

Source§

fn eq(&self, other: &InMemorySigner) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for InMemorySigner

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for InMemorySigner

Source§

impl StructuralPartialEq for InMemorySigner

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,