pub enum SuccessAction {
Message {
message: String,
},
Url {
description: String,
url: String,
},
Aes {
description: String,
ciphertext: String,
iv: String,
},
}Expand description
Raw success action from an LNURL-pay callback response (LUD-09/10).
Deserialized directly from the service’s JSON. For the AES variant,
the ciphertext has not yet been decrypted – use
[process_success_action] with the payment preimage to produce a
ProcessedSuccessAction.
Variants§
Implementations§
Source§impl SuccessAction
impl SuccessAction
Sourcepub fn process(self, preimage: &[u8]) -> Result<ProcessedSuccessAction>
pub fn process(self, preimage: &[u8]) -> Result<ProcessedSuccessAction>
Process this success action, decrypting AES content if needed.
preimage is the 32-byte payment preimage from the PayResponse.
For Message and Url variants this is a simple conversion; for Aes
it decrypts the ciphertext using the preimage as the AES-256 key.
All payload-shape checks here are required by the LNURL specs:
- Message.message ≤ 144 chars (LUD-09)
- Url.description ≤ 144 chars (LUD-09)
- Aes.description ≤ 144 chars (LUD-10)
- Aes.ciphertext ≤ 4096 chars (LUD-10)
- Aes.iv == exactly 24 base64 chars / 16 bytes (LUD-10)
Trait Implementations§
Source§impl Clone for SuccessAction
impl Clone for SuccessAction
Source§fn clone(&self) -> SuccessAction
fn clone(&self) -> SuccessAction
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SuccessAction
impl Debug for SuccessAction
Source§impl<'de> Deserialize<'de> for SuccessAction
impl<'de> Deserialize<'de> for SuccessAction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SuccessAction
impl RefUnwindSafe for SuccessAction
impl Send for SuccessAction
impl Sync for SuccessAction
impl Unpin for SuccessAction
impl UnsafeUnpin for SuccessAction
impl UnwindSafe for SuccessAction
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for T
impl<T> Downcast for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request