Struct lightning_invoice::SignedRawInvoice
source · [−]pub struct SignedRawInvoice { /* private fields */ }
Expand description
Represents a signed RawInvoice
with cached hash. The signature is not checked and may be
invalid.
Invariants
The hash has to be either from the deserialized invoice or from the serialized raw_invoice
.
Implementations
sourceimpl SignedRawInvoice
impl SignedRawInvoice
sourcepub fn into_parts(self) -> (RawInvoice, [u8; 32], InvoiceSignature)
pub fn into_parts(self) -> (RawInvoice, [u8; 32], InvoiceSignature)
Disassembles the SignedRawInvoice
into its three parts:
- raw invoice
- hash of the raw invoice
- signature
sourcepub fn raw_invoice(&self) -> &RawInvoice
pub fn raw_invoice(&self) -> &RawInvoice
The RawInvoice
which was signed.
sourcepub fn signature(&self) -> &InvoiceSignature
pub fn signature(&self) -> &InvoiceSignature
InvoiceSignature for the invoice.
sourcepub fn recover_payee_pub_key(&self) -> Result<PayeePubKey, Error>
pub fn recover_payee_pub_key(&self) -> Result<PayeePubKey, Error>
Recovers the public key used for signing the invoice from the recoverable signature.
sourcepub fn check_signature(&self) -> bool
pub fn check_signature(&self) -> bool
Checks if the signature is valid for the included payee public key or if none exists if it’s valid for the recovered signature (which should always be true?).
Methods from Deref<Target = RawInvoice>
sourcepub fn known_tagged_fields(
&self
) -> FilterMap<Iter<'_, RawTaggedField>, fn(_: &RawTaggedField) -> Option<&TaggedField>>
pub fn known_tagged_fields(
&self
) -> FilterMap<Iter<'_, RawTaggedField>, fn(_: &RawTaggedField) -> Option<&TaggedField>>
Returns an iterator over all tagged fields with known semantics.
(C-not exported) As there is not yet a manual mapping for a FilterMap
pub fn payment_hash(&self) -> Option<&Sha256>
pub fn description(&self) -> Option<&Description>
pub fn payee_pub_key(&self) -> Option<&PayeePubKey>
pub fn description_hash(&self) -> Option<&Sha256>
pub fn expiry_time(&self) -> Option<&ExpiryTime>
pub fn min_final_cltv_expiry(&self) -> Option<&MinFinalCltvExpiry>
pub fn payment_secret(&self) -> Option<&PaymentSecret>
pub fn features(&self) -> Option<&InvoiceFeatures>
sourcepub fn fallbacks(&self) -> Vec<&Fallback>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn fallbacks(&self) -> Vec<&Fallback>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
(C-not exported) as we don’t support Vec<&NonOpaqueType>
pub fn private_routes(&self) -> Vec<&PrivateRoute>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn amount_pico_btc(&self) -> Option<u64>
pub fn currency(&self) -> Currency
Trait Implementations
sourceimpl Clone for SignedRawInvoice
impl Clone for SignedRawInvoice
sourcefn clone(&self) -> SignedRawInvoice
fn clone(&self) -> SignedRawInvoice
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SignedRawInvoice
impl Debug for SignedRawInvoice
sourceimpl Deref for SignedRawInvoice
impl Deref for SignedRawInvoice
type Target = RawInvoice
type Target = RawInvoice
The resulting type after dereferencing.
sourcefn deref(&self) -> &RawInvoice
fn deref(&self) -> &RawInvoice
Dereferences the value.
sourceimpl Display for SignedRawInvoice
impl Display for SignedRawInvoice
sourceimpl FromStr for SignedRawInvoice
impl FromStr for SignedRawInvoice
use lightning_invoice::*;
let invoice = "lnbc100p1psj9jhxdqud3jxktt5w46x7unfv9kz6mn0v3jsnp4q0d3p2sfluzdx45tqcs\
h2pu5qc7lgq0xs578ngs6s0s68ua4h7cvspp5q6rmq35js88zp5dvwrv9m459tnk2zunwj5jalqtyxqulh0l\
5gflssp5nf55ny5gcrfl30xuhzj3nphgj27rstekmr9fw3ny5989s300gyus9qyysgqcqpcrzjqw2sxwe993\
h5pcm4dxzpvttgza8zhkqxpgffcrf5v25nwpr3cmfg7z54kuqq8rgqqqqqqqq2qqqqq9qq9qrzjqd0ylaqcl\
j9424x9m8h2vcukcgnm6s56xfgu3j78zyqzhgs4hlpzvznlugqq9vsqqqqqqqlgqqqqqeqq9qrzjqwldmj9d\
ha74df76zhx6l9we0vjdquygcdt3kssupehe64g6yyp5yz5rhuqqwccqqyqqqqlgqqqqjcqq9qrzjqf9e58a\
guqr0rcun0ajlvmzq3ek63cw2w282gv3z5uupmuwvgjtq2z55qsqqg6qqqyqqqrtnqqqzq3cqygrzjqvphms\
ywntrrhqjcraumvc4y6r8v4z5v593trte429v4hredj7ms5z52usqq9ngqqqqqqqlgqqqqqqgq9qrzjq2v0v\
p62g49p7569ev48cmulecsxe59lvaw3wlxm7r982zxa9zzj7z5l0cqqxusqqyqqqqlgqqqqqzsqygarl9fh3\
8s0gyuxjjgux34w75dnc6xp2l35j7es3jd4ugt3lu0xzre26yg5m7ke54n2d5sym4xcmxtl8238xxvw5h5h5\
j5r6drg6k6zcqj0fcwg";
let parsed_1 = invoice.parse::<Invoice>();
let parsed_2 = match invoice.parse::<SignedRawInvoice>() {
Ok(signed) => match Invoice::from_signed(signed) {
Ok(invoice) => Ok(invoice),
Err(e) => Err(ParseOrSemanticError::SemanticError(e)),
},
Err(e) => Err(ParseOrSemanticError::ParseError(e)),
};
assert!(parsed_1.is_ok());
assert_eq!(parsed_1, parsed_2);
sourceimpl PartialEq<SignedRawInvoice> for SignedRawInvoice
impl PartialEq<SignedRawInvoice> for SignedRawInvoice
sourcefn eq(&self, other: &SignedRawInvoice) -> bool
fn eq(&self, other: &SignedRawInvoice) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &SignedRawInvoice) -> bool
fn ne(&self, other: &SignedRawInvoice) -> bool
This method tests for !=
.
impl Eq for SignedRawInvoice
impl StructuralEq for SignedRawInvoice
impl StructuralPartialEq for SignedRawInvoice
Auto Trait Implementations
impl RefUnwindSafe for SignedRawInvoice
impl Send for SignedRawInvoice
impl Sync for SignedRawInvoice
impl Unpin for SignedRawInvoice
impl UnwindSafe for SignedRawInvoice
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more