pub enum PaymentInstructions {
ConfigurableAmount(ConfigurableAmountPaymentInstructions),
FixedAmount(FixedAmountPaymentInstructions),
}Expand description
Parsed payment instructions representing a set of possible ways to pay, as well as some associated metadata.
Currently we can resolve the following strings into payment instructions:
- BIP 321 bitcoin: URIs
- Lightning BOLT 11 invoices (optionally with the lightning: URI prefix)
- Lightning BOLT 12 offers
- On-chain addresses
- BIP 353 human-readable names in the name@domain format.
- LN-Address human-readable names in the name@domain format.
Variants§
ConfigurableAmount(ConfigurableAmountPaymentInstructions)
The payment instructions support a variable amount which must be selected prior to payment.
In general, you should first check that you support some of the payment methods by calling
PossiblyResolvedPaymentMethod::method_type on each method in
ConfigurableAmountPaymentInstructions::methods, then request the intended amount from
the wallet owner and build the final instructions using
ConfigurableAmountPaymentInstructions::set_amount.
FixedAmount(FixedAmountPaymentInstructions)
The payment instructions support only payment for specific amount(s) given by
FixedAmountPaymentInstructions::ln_payment_amount and
FixedAmountPaymentInstructions::onchain_payment_amount (which are within
MAX_AMOUNT_DIFFERENCE of each other).
Implementations§
Source§impl PaymentInstructions
impl PaymentInstructions
Sourcepub fn recipient_description(&self) -> Option<&str>
pub fn recipient_description(&self) -> Option<&str>
A recipient-provided description of the payment instructions.
This may be:
- the
labelormessageparameter in a BIP 321 bitcoin: URI - the
descriptionfield in a lightning BOLT 11 invoice - the
descriptionfield in a lightning BOLT 12 offer
Sourcepub fn pop_callback(&self) -> Option<&str>
pub fn pop_callback(&self) -> Option<&str>
Fetches the proof-of-payment callback URI.
Once a payment has been completed, the proof-of-payment (hex-encoded payment preimage for a lightning BOLT 11 invoice, raw transaction serialized in hex for on-chain payments, not-yet-defined for lightning BOLT 12 invoices) must be appended to this URI and the URI opened with the default system URI handler.
Sourcepub fn human_readable_name(&self) -> &Option<HumanReadableName>
pub fn human_readable_name(&self) -> &Option<HumanReadableName>
Fetches the HumanReadableName which was resolved, if the resolved payment instructions
were for a Human Readable Name.
Sourcepub fn bip_353_dnssec_proof(&self) -> &Option<Vec<u8>>
pub fn bip_353_dnssec_proof(&self) -> &Option<Vec<u8>>
Fetches the BIP 353 DNSSEC proof which was used to resolve these payment instructions, if they were resolved from a HumanReadable Name using BIP 353.
This proof should be included in any PSBT output (as type PSBT_OUT_DNSSEC_PROOF)
generated using these payment instructions.
It should also be stored to allow us to later prove that this payment was made to
Self::human_readable_name.
Source§impl PaymentInstructions
impl PaymentInstructions
Sourcepub async fn parse<H: HrnResolver>(
instructions: &str,
network: Network,
hrn_resolver: &H,
supports_proof_of_payment_callbacks: bool,
) -> Result<PaymentInstructions, ParseError>
pub async fn parse<H: HrnResolver>( instructions: &str, network: Network, hrn_resolver: &H, supports_proof_of_payment_callbacks: bool, ) -> Result<PaymentInstructions, ParseError>
Resolves a string into PaymentInstructions.
Trait Implementations§
Source§impl Clone for PaymentInstructions
impl Clone for PaymentInstructions
Source§fn clone(&self) -> PaymentInstructions
fn clone(&self) -> PaymentInstructions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PaymentInstructions
impl Debug for PaymentInstructions
Source§impl PartialEq for PaymentInstructions
impl PartialEq for PaymentInstructions
impl Eq for PaymentInstructions
impl StructuralPartialEq for PaymentInstructions
Auto Trait Implementations§
impl Freeze for PaymentInstructions
impl RefUnwindSafe for PaymentInstructions
impl Send for PaymentInstructions
impl Sync for PaymentInstructions
impl Unpin for PaymentInstructions
impl UnwindSafe for PaymentInstructions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.