Struct MyKeysManager

Source
pub struct MyKeysManager { /* private fields */ }
Expand description

An implementation of NodeSigner

Implementations§

Source§

impl MyKeysManager

Source

pub fn new( key_derivation_style: KeyDerivationStyle, seed: &[u8], network: Network, starting_time_factory: &dyn StartingTimeFactory, ) -> MyKeysManager

Construct

NOTE - it’s ok to reconstruct MyKeysManager with a different starting time when restoring from persisted data. It is not important to persist the starting_time entropy …

Source

pub fn get_onion_reply_secret(&self) -> [u8; 32]

onion reply secret

Source

pub fn get_bolt12_pubkey(&self) -> PublicKey

BOLT 12 x-only pubkey

Source

pub fn get_persistence_pubkey(&self) -> PublicKey

Persistence pubkey

Source

pub fn get_persistence_shared_secret( &self, server_pubkey: &PublicKey, ) -> [u8; 32]

Persistence shared secret

Source

pub fn get_persistence_auth_token(&self, server_pubkey: &PublicKey) -> [u8; 32]

Persistence auth token

Source

pub fn sign_bolt12( &self, messagename: &[u8], fieldname: &[u8], merkleroot: &[u8; 32], publictweak_opt: Option<&[u8]>, ) -> Result<Signature, ()>

BOLT 12 sign

Source

pub fn derive_secret(&self, info: &[u8]) -> SecretKey

Derive pseudorandom secret from a derived key

Source

pub fn get_account_extended_key(&self) -> &ExtendedPrivKey

Get the layer-1 xpub

Source

pub fn per_commitment_point<X: Signing>( secp_ctx: &Secp256k1<X>, commitment_secret: &[u8; 32], ) -> PublicKey

Convert a commitment secret to a commitment point

Source

pub fn spend_spendable_outputs( &self, descriptors: &[&SpendableOutputDescriptor], outputs: Vec<TxOut>, change_destination_script: Script, feerate_sat_per_1000_weight: u32, secp_ctx: &Secp256k1<All>, ) -> Result<Transaction, ()>

Creates a Transaction which spends the given descriptors to the given outputs, plus an output to the given change destination (if sufficient change value remains). The transaction will have a feerate, at least, of the given value.

Returns Err(()) if the output value is greater than the input value minus required fee or if a descriptor was duplicated.

We do not enforce that outputs meet the dust limit or that any output scripts are standard.

May panic if the SpendableOutputDescriptors were not generated by Channels which used this KeysManager or one of the InMemorySigner created by this KeysManager.

Source

pub fn sign_heartbeat(&self, ser_heartbeat: &[u8]) -> Signature

Sign a heartbeat object

Trait Implementations§

Source§

impl EntropySource for MyKeysManager

Source§

fn get_secure_random_bytes(&self) -> [u8; 32]

Gets a unique, cryptographically-secure, random 32-byte value. This method must return a different value each time it is called.
Source§

impl NodeSigner for MyKeysManager

Source§

fn get_node_id(&self, recipient: Recipient) -> Result<PublicKey, ()>

Get node id based on the provided Recipient. Read more
Source§

fn sign_gossip_message( &self, msg: UnsignedGossipMessage<'_>, ) -> Result<Signature, ()>

Sign a gossip message. Read more
Source§

fn ecdh( &self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar>, ) -> Result<SharedSecret, ()>

Gets the ECDH shared secret of our node secret and other_key, multiplying by tweak if one is provided. Note that this tweak can be applied to other_key instead of our node secret, though this is less efficient. Read more
Source§

fn sign_invoice( &self, hrp_bytes: &[u8], invoice_data: &[u5], recipient: Recipient, ) -> Result<RecoverableSignature, ()>

Sign an invoice. Read more
Source§

fn get_inbound_payment_key_material(&self) -> KeyMaterial

Get secret key material as bytes for use in encrypting and decrypting inbound payment data. Read more
Source§

fn sign_bolt12_invoice( &self, _: &UnsignedBolt12Invoice, ) -> Result<Signature, ()>

Signs the TaggedHash of a BOLT 12 invoice. Read more
Source§

fn sign_bolt12_invoice_request( &self, _: &UnsignedInvoiceRequest, ) -> Result<Signature, ()>

Signs the TaggedHash of a BOLT 12 invoice request. Read more
Source§

impl SignerProvider for MyKeysManager

Source§

type Signer = InMemorySigner

A type which implements WriteableEcdsaChannelSigner which will be returned by Self::derive_channel_signer.
Source§

fn get_destination_script(&self) -> Result<Script, ()>

Get a script pubkey which we send funds to when claiming on-chain contestable outputs. Read more
Source§

fn get_shutdown_scriptpubkey(&self) -> Result<ShutdownScript, ()>

Get a script pubkey which we will send funds to when closing a channel. Read more
Source§

fn generate_channel_keys_id( &self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128, ) -> [u8; 32]

Generates a unique channel_keys_id that can be used to obtain a Self::Signer through SignerProvider::derive_channel_signer. The user_channel_id is provided to allow implementations of SignerProvider to maintain a mapping between itself and the generated channel_keys_id. Read more
Source§

fn derive_channel_signer( &self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32], ) -> Self::Signer

Derives the private key material backing a Signer. Read more
Source§

fn read_chan_signer(&self, _reader: &[u8]) -> Result<Self::Signer, DecodeError>

Reads a Signer for this SignerProvider from the given input stream. This is only called during deserialization of other objects which contain WriteableEcdsaChannelSigner-implementing objects (i.e., ChannelMonitors and ChannelManagers). The bytes are exactly those which <Self::Signer as Writeable>::write() writes, and contain no versioning scheme. You may wish to include your own version prefix and ensure you’ve read all of the provided bytes to ensure no corruption occurred. Read more

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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