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>, ) -> Result<LnurlAuthToJwtProvider, VssHeaderProviderError>

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

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

impl<T> ErasedDestructor for T
where T: 'static,