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 get_persistence_pubkey(&self) -> PublicKey
pub fn get_persistence_pubkey(&self) -> PublicKey
Persistence pubkey
Persistence shared secret
Sourcepub fn get_persistence_auth_token(&self, server_pubkey: &PublicKey) -> [u8; 32]
pub fn get_persistence_auth_token(&self, server_pubkey: &PublicKey) -> [u8; 32]
Persistence auth token
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§fn sign_bolt12_invoice(
&self,
_: &UnsignedBolt12Invoice,
) -> Result<Signature, ()>
fn sign_bolt12_invoice( &self, _: &UnsignedBolt12Invoice, ) -> Result<Signature, ()>
TaggedHash
of a BOLT 12 invoice. Read moreSource§fn sign_bolt12_invoice_request(
&self,
_: &UnsignedInvoiceRequest,
) -> Result<Signature, ()>
fn sign_bolt12_invoice_request( &self, _: &UnsignedInvoiceRequest, ) -> Result<Signature, ()>
TaggedHash
of a BOLT 12 invoice request. Read moreSource§impl SignerProvider for MyKeysManager
impl SignerProvider for MyKeysManager
Source§type Signer = InMemorySigner
type Signer = InMemorySigner
WriteableEcdsaChannelSigner
which will be returned by Self::derive_channel_signer
.Source§fn get_destination_script(&self) -> Result<Script, ()>
fn get_destination_script(&self) -> Result<Script, ()>
Source§fn get_shutdown_scriptpubkey(&self) -> Result<ShutdownScript, ()>
fn get_shutdown_scriptpubkey(&self) -> Result<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 moreAuto Trait Implementations§
impl !Freeze for MyKeysManager
impl RefUnwindSafe for MyKeysManager
impl Send for MyKeysManager
impl Sync for MyKeysManager
impl Unpin for MyKeysManager
impl UnwindSafe for MyKeysManager
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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