Skip to main content

KeysManagerClient

Struct KeysManagerClient 

Source
pub struct KeysManagerClient { /* private fields */ }

Implementations§

Source§

impl KeysManagerClient

Source

pub fn new( transport: Arc<dyn Transport>, network: String, key_derivation_style: Option<KeyDerivationStyle>, dev_allowlist: Option<Array<WireString>>, receive_auth_key: ReceiveAuthKey, ) -> Self

Create a new VLS client with the given transport.

receive_auth_key is the LDK 0.2 blinded-path MAC key. Its only requirement is to be consistent across invocations, so the caller is responsible for generating it (e.g. on first run) and persisting it in its own state — see NodeSigner::get_receive_auth_key in LDK. The signer does not provide it, since any caller with persistence can.

peer_storage_key and the inbound-payment ExpandedKey seed are in contrast obtained from the signer’s HsmdInit2Reply: LDK requires them to be stable across restarts (state-loss recovery, and receivable invoices respectively) and the signer is the only place that holds the seed they derive from.

Source

pub fn call<T: SerBolt, R: DeBolt>(&self, message: T) -> Result<R, Error>

Source

pub fn sign_onchain_tx( &self, tx: &Transaction, descriptors: &[&SpendableOutputDescriptor], ) -> Vec<Vec<Vec<u8>>>

Trait Implementations§

Source§

impl EntropySource for KeysManagerClient

Source§

fn get_secure_random_bytes(&self) -> [u8; 32]

Gets a unique, cryptographically-secure, random 32-byte value. This method must return a different value each time it is called.
Source§

impl NodeSigner for KeysManagerClient

Source§

fn get_expanded_key(&self) -> ExpandedKey

Get the ExpandedKey which provides cryptographic material for various Lightning Network operations. Read more
Source§

fn get_peer_storage_key(&self) -> PeerStorageKey

Defines a method to derive a 32-byte encryption key for peer storage. Read more
Source§

fn get_receive_auth_key(&self) -> ReceiveAuthKey

Returns the ReceiveAuthKey used to authenticate incoming BlindedMessagePath contexts. Read more
Source§

fn sign_message(&self, msg: &[u8]) -> Result<String, ()>

Sign an arbitrary message with the node’s secret key. Read more
Source§

fn get_node_id(&self, recipient: Recipient) -> Result<PublicKey, ()>

Get node id based on the provided Recipient. 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, invoice: &RawBolt11Invoice, recipient: Recipient, ) -> Result<RecoverableSignature, ()>

Sign an invoice. Read more
Source§

fn sign_bolt12_invoice( &self, invoice: &UnsignedBolt12Invoice, ) -> Result<Signature, ()>

Signs the TaggedHash of a BOLT 12 invoice. Read more
Source§

fn sign_gossip_message( &self, msg: UnsignedGossipMessage<'_>, ) -> Result<Signature, ()>

Sign a gossip message. Read more
Source§

impl OutputSpender for KeysManagerClient

Source§

fn spend_spendable_outputs( &self, descriptors: &[&SpendableOutputDescriptor], outputs: Vec<TxOut>, change_destination_script: ScriptBuf, feerate_sat_per_1000_weight: u32, locktime: Option<LockTime>, _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. Read more
Source§

impl SignerProvider for KeysManagerClient

Source§

type EcdsaSigner = SignerClient

A type which implements EcdsaChannelSigner which will be returned by Self::derive_channel_signer.
Source§

fn generate_channel_keys_id( &self, _inbound: bool, _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 more
Source§

fn derive_channel_signer(&self, channel_keys_id: [u8; 32]) -> Self::EcdsaSigner

Derives the private key material backing a Signer. Read more
Source§

fn get_destination_script(&self, _: [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, ()>

Get a script pubkey which we will send funds to when closing a channel. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: Any,

Source§

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

Source§

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

Source§

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

Gets the type name of self
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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

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

fn downcast_ref<T>(&self) -> Option<&T>
where T: AsAny,

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

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more