Struct lightning_signer::signer::my_keys_manager::MyKeysManager
source · pub struct MyKeysManager { /* private fields */ }
Expand description
An implementation of NodeSigner
Implementations§
source§impl MyKeysManager
impl MyKeysManager
sourcepub fn new(
key_derivation_style: KeyDerivationStyle,
seed: &[u8],
network: Network,
starting_time_factory: &dyn StartingTimeFactory
) -> MyKeysManager
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 …
sourcepub fn get_onion_reply_secret(&self) -> [u8; 32]
pub fn get_onion_reply_secret(&self) -> [u8; 32]
onion reply secret
sourcepub fn get_bolt12_pubkey(&self) -> PublicKey
pub fn get_bolt12_pubkey(&self) -> PublicKey
BOLT 12 x-only pubkey
sourcepub fn sign_bolt12(
&self,
messagename: &[u8],
fieldname: &[u8],
merkleroot: &[u8; 32],
publictweak_opt: Option<&[u8]>
) -> Result<Signature, ()>
pub fn sign_bolt12( &self, messagename: &[u8], fieldname: &[u8], merkleroot: &[u8; 32], publictweak_opt: Option<&[u8]> ) -> Result<Signature, ()>
BOLT 12 sign
sourcepub fn derive_secret(&self, info: &[u8]) -> SecretKey
pub fn derive_secret(&self, info: &[u8]) -> SecretKey
Derive pseudorandom secret from a derived key
sourcepub fn get_account_extended_key(&self) -> &ExtendedPrivKey
pub fn get_account_extended_key(&self) -> &ExtendedPrivKey
Get the layer-1 xpub
sourcepub fn per_commitment_point<X: Signing>(
secp_ctx: &Secp256k1<X>,
commitment_secret: &[u8; 32]
) -> PublicKey
pub fn per_commitment_point<X: Signing>( secp_ctx: &Secp256k1<X>, commitment_secret: &[u8; 32] ) -> PublicKey
Convert a commitment secret to a commitment point
sourcepub 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, ()>
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 SpendableOutputDescriptor
s were not generated by Channels which used
this KeysManager or one of the InMemorySigner
created by this KeysManager.
sourcepub fn sign_heartbeat(&self, ser_heartbeat: &[u8]) -> Signature
pub fn sign_heartbeat(&self, ser_heartbeat: &[u8]) -> Signature
Sign a heartbeat object
Trait Implementations§
source§impl EntropySource for MyKeysManager
impl EntropySource for MyKeysManager
source§fn get_secure_random_bytes(&self) -> [u8; 32]
fn get_secure_random_bytes(&self) -> [u8; 32]
source§impl NodeSigner for MyKeysManager
impl NodeSigner for MyKeysManager
source§fn sign_gossip_message(
&self,
msg: UnsignedGossipMessage<'_>
) -> Result<Signature, ()>
fn sign_gossip_message( &self, msg: UnsignedGossipMessage<'_> ) -> Result<Signature, ()>
source§fn ecdh(
&self,
recipient: Recipient,
other_key: &PublicKey,
tweak: Option<&Scalar>
) -> Result<SharedSecret, ()>
fn ecdh( &self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar> ) -> Result<SharedSecret, ()>
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 moresource§fn sign_invoice(
&self,
hrp_bytes: &[u8],
invoice_data: &[u5],
recipient: Recipient
) -> Result<RecoverableSignature, ()>
fn sign_invoice( &self, hrp_bytes: &[u8], invoice_data: &[u5], recipient: Recipient ) -> Result<RecoverableSignature, ()>
source§fn get_inbound_payment_key_material(&self) -> KeyMaterial
fn get_inbound_payment_key_material(&self) -> KeyMaterial
source§impl SignerProvider for MyKeysManager
impl SignerProvider for MyKeysManager
§type Signer = InMemorySigner
type Signer = InMemorySigner
WriteableEcdsaChannelSigner
which will be returned by Self::derive_channel_signer
.source§fn get_destination_script(&self) -> Script
fn get_destination_script(&self) -> Script
source§fn get_shutdown_scriptpubkey(&self) -> ShutdownScript
fn get_shutdown_scriptpubkey(&self) -> ShutdownScript
source§fn generate_channel_keys_id(
&self,
_inbound: bool,
_channel_value_satoshis: u64,
_user_channel_id: u128
) -> [u8; 32]
fn generate_channel_keys_id( &self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128 ) -> [u8; 32]
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 moresource§fn derive_channel_signer(
&self,
_channel_value_satoshis: u64,
_channel_keys_id: [u8; 32]
) -> Self::Signer
fn derive_channel_signer( &self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32] ) -> Self::Signer
Signer
. Read moresource§fn read_chan_signer(&self, _reader: &[u8]) -> Result<Self::Signer, DecodeError>
fn read_chan_signer(&self, _reader: &[u8]) -> Result<Self::Signer, DecodeError>
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., ChannelMonitor
s and ChannelManager
s).
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