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

Builds a Bolt12Invoice 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.

This is not exported to bindings users as builder patterns don’t map outside of move semantics.

Implementations§

source§

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

source

pub fn relative_expiry(self, relative_expiry_secs: u32) -> Self

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

Successive calls to this method will override the previous setting.

source

pub fn fallback_v0_p2wsh(self, script_hash: &WScriptHash) -> Self

Adds a P2WSH address to Bolt12Invoice::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) -> Self

Adds a P2WPKH address to Bolt12Invoice::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) -> Self

Adds a P2TR address to Bolt12Invoice::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) -> Self

Sets Bolt12Invoice::invoice_features to indicate MPP may be used. Otherwise, MPP is disallowed.

source§

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

source

pub fn build(self) -> Result<UnsignedBolt12Invoice, Bolt12SemanticError>

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

source§

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

source

pub fn build_and_sign<T: Signing>( self, secp_ctx: &Secp256k1<T> ) -> Result<Bolt12Invoice, Bolt12SemanticError>

Builds a signed Bolt12Invoice after checking for valid semantics.

Auto Trait Implementations§

§

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

§

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

§

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

§

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.