Struct vls_protocol_client::DynKeysInterface
source · pub struct DynKeysInterface {
pub inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>,
}
Fields§
§inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>
Implementations§
source§impl DynKeysInterface
impl DynKeysInterface
pub fn new(inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>) -> Self
Trait Implementations§
source§impl NodeSigner for DynKeysInterface
impl NodeSigner for DynKeysInterface
source§fn get_node_id(&self, recipient: Recipient) -> Result<PublicKey, ()>
fn get_node_id(&self, recipient: Recipient) -> Result<PublicKey, ()>
Get node id based on the provided [
Recipient
]. Read moresource§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 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
§type Signer = DynSigner
type Signer = DynSigner
A type which implements [
WriteableEcdsaChannelSigner
] which will be returned by [Self::derive_channel_signer
].source§fn get_destination_script(&self) -> Script
fn get_destination_script(&self) -> Script
Get a script pubkey which we send funds to when claiming on-chain contestable outputs. Read more
source§fn get_shutdown_scriptpubkey(&self) -> ShutdownScript
fn get_shutdown_scriptpubkey(&self) -> 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::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
Derives the private key material backing a
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>
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: Script, 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.
source§fn sign_from_wallet(
&self,
psbt: &PartiallySignedTransaction,
derivations: Vec<u32>
) -> PartiallySignedTransaction
fn sign_from_wallet( &self, psbt: &PartiallySignedTransaction, derivations: Vec<u32> ) -> PartiallySignedTransaction
Sign for the layer-1 wallet
TODO can we use the derivation path in the psbt?
Auto Trait Implementations§
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
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where T: AsAny,
Forward to the method defined on the type
Any
.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where T: AsAny,
Forward to the method defined on the type
Any
.