Struct ServeStaticInvoice

Source
pub struct ServeStaticInvoice {
    pub invoice: StaticInvoice,
    pub forward_invoice_request_path: BlindedMessagePath,
}
Expand description

A request from an async recipient to a static invoice server that a StaticInvoice be provided in response to InvoiceRequests from payers.

Fields§

§invoice: StaticInvoice

The invoice that should be served by the static invoice server. Once this invoice has been persisted, the Responder accompanying this message should be used to send StaticInvoicePersisted to the recipient to confirm that the offer corresponding to the invoice is ready to receive async payments.

§forward_invoice_request_path: BlindedMessagePath

If a static invoice server receives an InvoiceRequest for a StaticInvoice, they should also forward the InvoiceRequest to the async recipient so they can respond with a fresh Bolt12Invoice if the recipient is online at the time. Use this path to forward the InvoiceRequest to the async recipient.

This path’s BlindedMessagePath::introduction_node MUST be set to the static invoice server node or one of its peers. This is because, for DoS protection, invoice requests forwarded over this path are treated by the server node like any other onion message forward and the server will not directly connect to the introduction node if they are not already peers.

Trait Implementations§

Source§

impl Clone for ServeStaticInvoice

Source§

fn clone(&self) -> ServeStaticInvoice

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ServeStaticInvoice

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl OnionMessageContents for ServeStaticInvoice

Source§

fn tlv_type(&self) -> u64

Returns the TLV type identifying the message contents. MUST be >= 64.
Source§

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

Returns the message type
Source§

impl Readable for ServeStaticInvoice

Source§

fn read<R: Read>(reader: &mut R) -> Result<Self, DecodeError>

Reads a Self in from the given Read.
Source§

impl Writeable for ServeStaticInvoice

Source§

fn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>

Writes self out to the given Writer.
Source§

fn serialized_length(&self) -> usize

Gets the length of this object after it has been serialized. This can be overridden to optimize cases where we prepend an object with its length.
Source§

fn encode(&self) -> Vec<u8>

Writes self out to a Vec<u8>.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> LengthReadable for T
where T: Readable,

Source§

fn read_from_fixed_length_buffer<R>(reader: &mut R) -> Result<T, DecodeError>

Reads a Self in from the given LengthLimitedRead.
Source§

impl<T> MaybeReadable for T
where T: Readable,

Source§

fn read<R>(reader: &mut R) -> Result<Option<T>, DecodeError>
where R: Read,

Reads a Self in from the given Read.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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