pub struct InvoiceBuilder<'a, S>where
    S: SigningPubkeyStrategy,{ /* private fields */ }
Expand description

Builds an Invoice from either:

  • an InvoiceRequest for the “offer to be paid” flow or
  • a Refund for the “offer for money” flow.

See module-level documentation for usage.

Implementations§

source§

impl<'a, S> InvoiceBuilder<'a, S>where S: SigningPubkeyStrategy,

source

pub fn relative_expiry(self, relative_expiry_secs: u32) -> InvoiceBuilder<'a, S>

Sets the Invoice::relative_expiry as seconds since Invoice::created_at. Any expiry that has already passed is valid and can be checked for using Invoice::is_expired.

Successive calls to this method will override the previous setting.

source

pub fn fallback_v0_p2wsh( self, script_hash: &WScriptHash ) -> InvoiceBuilder<'a, S>

Adds a P2WSH address to Invoice::fallbacks.

Successive calls to this method will add another address. Caller is responsible for not adding duplicate addresses and only calling if capable of receiving to P2WSH addresses.

source

pub fn fallback_v0_p2wpkh( self, pubkey_hash: &WPubkeyHash ) -> InvoiceBuilder<'a, S>

Adds a P2WPKH address to Invoice::fallbacks.

Successive calls to this method will add another address. Caller is responsible for not adding duplicate addresses and only calling if capable of receiving to P2WPKH addresses.

source

pub fn fallback_v1_p2tr_tweaked( self, output_key: &TweakedPublicKey ) -> InvoiceBuilder<'a, S>

Adds a P2TR address to Invoice::fallbacks.

Successive calls to this method will add another address. Caller is responsible for not adding duplicate addresses and only calling if capable of receiving to P2TR addresses.

source

pub fn allow_mpp(self) -> InvoiceBuilder<'a, S>

Sets Invoice::features to indicate MPP may be used. Otherwise, MPP is disallowed.

source§

impl<'a> InvoiceBuilder<'a, ExplicitSigningPubkey>

source

pub fn build(self) -> Result<UnsignedInvoice<'a>, SemanticError>

Builds an unsigned Invoice after checking for valid semantics. It can be signed by UnsignedInvoice::sign.

source§

impl<'a> InvoiceBuilder<'a, DerivedSigningPubkey>

source

pub fn build_and_sign<T>( self, secp_ctx: &Secp256k1<T> ) -> Result<Invoice, SemanticError>where T: Signing,

Builds a signed Invoice after checking for valid semantics.

Auto Trait Implementations§

§

impl<'a, S> RefUnwindSafe for InvoiceBuilder<'a, S>where S: RefUnwindSafe,

§

impl<'a, S> Send for InvoiceBuilder<'a, S>where S: Send,

§

impl<'a, S> Sync for InvoiceBuilder<'a, S>where S: Sync,

§

impl<'a, S> Unpin for InvoiceBuilder<'a, S>where S: Unpin,

§

impl<'a, S> UnwindSafe for InvoiceBuilder<'a, S>where S: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

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