pub struct DynKeysInterface {
pub inner: Box<dyn SpendableKeysInterface<EcdsaSigner = DynSigner>>,
}
Fields§
§inner: Box<dyn SpendableKeysInterface<EcdsaSigner = DynSigner>>
Implementations§
Source§impl DynKeysInterface
impl DynKeysInterface
pub fn new( inner: Box<dyn SpendableKeysInterface<EcdsaSigner = DynSigner>>, ) -> Self
Trait Implementations§
Source§impl NodeSigner for DynKeysInterface
impl NodeSigner for DynKeysInterface
Source§fn sign_gossip_message(
&self,
msg: UnsignedGossipMessage<'_>,
) -> Result<Signature, ()>
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, ()>
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 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, ()>
Sign an invoice. Read more
Source§fn sign_bolt12_invoice(
&self,
invoice: &UnsignedBolt12Invoice,
) -> Result<Signature, ()>
fn sign_bolt12_invoice( &self, invoice: &UnsignedBolt12Invoice, ) -> Result<Signature, ()>
Signs the
TaggedHash
of a BOLT 12 invoice. Read moreSource§fn sign_bolt12_invoice_request(
&self,
invoice_request: &UnsignedInvoiceRequest,
) -> Result<Signature, ()>
fn sign_bolt12_invoice_request( &self, invoice_request: &UnsignedInvoiceRequest, ) -> Result<Signature, ()>
Signs the
TaggedHash
of a BOLT 12 invoice request. Read moreSource§fn get_inbound_payment_key_material(&self) -> KeyMaterial
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§impl SignerProvider for DynKeysInterface
impl SignerProvider for DynKeysInterface
Source§type EcdsaSigner = DynSigner
type EcdsaSigner = DynSigner
A type which implements
WriteableEcdsaChannelSigner
which will be returned by Self::derive_channel_signer
.Source§fn get_destination_script(&self, buf: [u8; 32]) -> Result<ScriptBuf, ()>
fn get_destination_script(&self, buf: [u8; 32]) -> Result<ScriptBuf, ()>
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, ()>
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]
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::EcdsaSigner
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::EcdsaSigner
fn derive_channel_signer( &self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32], ) -> Self::EcdsaSigner
Derives the private key material backing a
Signer
. Read moreSource§fn read_chan_signer(
&self,
reader: &[u8],
) -> Result<Self::EcdsaSigner, DecodeError>
fn read_chan_signer( &self, reader: &[u8], ) -> Result<Self::EcdsaSigner, 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., 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 moreSource§impl SpendableKeysInterface for DynKeysInterface
impl SpendableKeysInterface for DynKeysInterface
fn spend_spendable_outputs( &self, descriptors: &[&SpendableOutputDescriptor], outputs: Vec<TxOut>, change_destination_script: ScriptBuf, feerate_sat_per_1000_weight: u32, secp_ctx: &Secp256k1<All>, ) -> Result<Transaction>
Source§fn get_sweep_address(&self) -> Address
fn get_sweep_address(&self) -> Address
Swept funds from closed channels are sent here
This is implemented by setting the change destination to spend_spendable_outputs to this address.
Auto Trait Implementations§
impl Freeze for DynKeysInterface
impl !RefUnwindSafe for DynKeysInterface
impl Send for DynKeysInterface
impl Sync for DynKeysInterface
impl Unpin for DynKeysInterface
impl !UnwindSafe for DynKeysInterface
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for T
impl<T> Downcast for 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>
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 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>
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