Bolt12Payment

Struct Bolt12Payment 

Source
pub struct Bolt12Payment { /* private fields */ }
Expand description

A payment handler allowing to create and pay BOLT 12 offers and refunds.

Should be retrieved by calling Node::bolt12_payment.

Implementations§

Source§

impl Bolt12Payment

Source

pub fn send( &self, offer: &Offer, quantity: Option<u64>, payer_note: Option<String>, route_parameters: Option<RouteParametersConfig>, ) -> Result<PaymentId, Error>

Send a payment given an offer.

If payer_note is Some it will be seen by the recipient and reflected back in the invoice response.

If quantity is Some it represents the number of items requested.

If route_parameters are provided they will override the default as well as the node-wide parameters configured via Config::route_parameters on a per-field basis.

Source

pub fn send_using_amount( &self, offer: &Offer, amount_msat: u64, quantity: Option<u64>, payer_note: Option<String>, route_parameters: Option<RouteParametersConfig>, ) -> Result<PaymentId, Error>

Send a payment given an offer and an amount in millisatoshi.

This will fail if the amount given is less than the value required by the given offer.

This can be used to pay a so-called “zero-amount” offers, i.e., an offer that leaves the amount paid to be determined by the user.

If payer_note is Some it will be seen by the recipient and reflected back in the invoice response.

If route_parameters are provided they will override the default as well as the node-wide parameters configured via Config::route_parameters on a per-field basis.

Source

pub fn receive( &self, amount_msat: u64, description: &str, expiry_secs: Option<u32>, quantity: Option<u64>, ) -> Result<Offer, Error>

Returns a payable offer that can be used to request and receive a payment of the amount given.

Source

pub fn receive_variable_amount( &self, description: &str, expiry_secs: Option<u32>, ) -> Result<Offer, Error>

Returns a payable offer that can be used to request and receive a payment for which the amount is to be determined by the user, also known as a “zero-amount” offer.

Source

pub fn request_refund_payment( &self, refund: &Refund, ) -> Result<Bolt12Invoice, Error>

Requests a refund payment for the given Refund.

The returned Bolt12Invoice is for informational purposes only (i.e., isn’t needed to retrieve the refund).

Source

pub fn initiate_refund( &self, amount_msat: u64, expiry_secs: u32, quantity: Option<u64>, payer_note: Option<String>, route_parameters: Option<RouteParametersConfig>, ) -> Result<Refund, Error>

Returns a Refund object that can be used to offer a refund payment of the amount given.

If route_parameters are provided they will override the default as well as the node-wide parameters configured via Config::route_parameters on a per-field basis.

Source

pub fn receive_async(&self) -> Result<Offer, Error>

Retrieve an Offer for receiving async payments as an often-offline recipient.

Will only return an offer if Bolt12Payment::set_paths_to_static_invoice_server was called and we succeeded in interactively building a StaticInvoice with the static invoice server.

Useful for posting offers to receive payments later, such as posting an offer on a website.

Caution: Async payments support is considered experimental.

Source

pub fn set_paths_to_static_invoice_server( &self, paths: Vec<BlindedMessagePath>, ) -> Result<(), Error>

Available on non-crate feature uniffi only.

Sets the BlindedMessagePaths that we will use as an async recipient to interactively build Offers with a static invoice server, so the server can serve StaticInvoices to payers on our behalf when we’re offline.

Caution: Async payments support is considered experimental.

Source

pub fn blinded_paths_for_async_recipient( &self, recipient_id: Vec<u8>, ) -> Result<Vec<BlindedMessagePath>, Error>

Available on non-crate feature uniffi only.

BlindedMessagePaths for an async recipient to communicate with this node and interactively build Offers and StaticInvoices for receiving async payments.

Caution: Async payments support is considered experimental.

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> 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 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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

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