pub struct DynKeysInterface {
    pub inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>,
}

Fields§

§inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>

Implementations§

source§

impl DynKeysInterface

source

pub fn new(inner: Box<dyn SpendableKeysInterface<Signer = DynSigner>>) -> Self

Trait Implementations§

source§

impl NodeSigner for DynKeysInterface

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§

impl SignerProvider for DynKeysInterface

§

type Signer = DynSigner

A type which implements [WriteableEcdsaChannelSigner] which will be returned by [Self::derive_channel_signer].
source§

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

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
source§

impl SpendableKeysInterface for DynKeysInterface

source§

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

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

Sign for the layer-1 wallet TODO can we use the derivation path in the psbt?

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsAny for Twhere T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

§

fn type_name(&self) -> &'static str

Gets the type name of self
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for Twhere T: AsAny + ?Sized,

§

fn is<T>(&self) -> boolwhere T: AsAny,

Returns true if the boxed type is the same as T. Read more
§

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,

Forward to the method defined on the type Any.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V