Skip to main content

LnurlAuthToJwtProvider

Struct LnurlAuthToJwtProvider 

Source
pub struct LnurlAuthToJwtProvider { /* private fields */ }
Expand description

Provides a JWT token based on LNURL Auth.

Implementations§

Source§

impl LnurlAuthToJwtProvider

Source

pub fn new( parent_key: Xpriv, url: String, default_headers: HashMap<String, String>, ) -> LnurlAuthToJwtProvider

Creates a new JWT provider based on LNURL Auth.

The LNURL Auth keys are derived as children from a hardened parent key, following LUD-05. The hardened parent extended key is given here as an argument, and is suggested to be the m/138' derivation from the wallet master key as in the specification. However, users are free to choose a consistent hardened derivation path.

The LNURL with the challenge will be retrieved by making a request to the given URL. The JWT token will be returned in response to the signed LNURL request under a token field. The given set of headers will be used for LNURL requests, and will also be returned together with the JWT authorization header for VSS requests.

Trait Implementations§

Source§

impl VssHeaderProvider for LnurlAuthToJwtProvider

Source§

fn get_headers<'life0, 'life1, 'async_trait>( &'life0 self, _request: &'life1 [u8], ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, VssHeaderProviderError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Returns the HTTP headers to be used for a VSS request. This method is called on each request, and should likely perform some form of caching. 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> 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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

Source§

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