pub struct Refund { /* private fields */ }Expand description
A Refund is a request to send an Bolt12Invoice without a preceding Offer.
Typically, after an invoice is paid, the recipient may publish a refund allowing the sender to recoup their funds. A refund may be used more generally as an “offer for money”, such as with a bitcoin ATM.
Implementations§
Source§impl Refund
impl Refund
Sourcepub fn description(&self) -> PrintableString<'_>
pub fn description(&self) -> PrintableString<'_>
A complete description of the purpose of the refund. Intended to be displayed to the user but with the caveat that it has not been verified in any way.
Sourcepub fn absolute_expiry(&self) -> Option<Duration>
pub fn absolute_expiry(&self) -> Option<Duration>
Duration since the Unix epoch when an invoice should no longer be sent.
If None, the refund does not expire.
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Whether the refund has expired.
Sourcepub fn is_expired_no_std(&self, duration_since_epoch: Duration) -> bool
pub fn is_expired_no_std(&self, duration_since_epoch: Duration) -> bool
Whether the refund has expired given the duration since the Unix epoch.
Sourcepub fn issuer(&self) -> Option<PrintableString<'_>>
pub fn issuer(&self) -> Option<PrintableString<'_>>
The issuer of the refund, possibly beginning with user@domain or domain. Intended to be
displayed to the user but with the caveat that it has not been verified in any way.
Sourcepub fn paths(&self) -> &[BlindedMessagePath]
pub fn paths(&self) -> &[BlindedMessagePath]
Paths to the sender originating from publicly reachable nodes. Blinded paths provide sender privacy by obfuscating its node id.
Sourcepub fn payer_metadata(&self) -> &[u8] ⓘ
pub fn payer_metadata(&self) -> &[u8] ⓘ
An unpredictable series of bytes, typically containing information about the derivation of
payer_signing_pubkey.
Sourcepub fn amount_msats(&self) -> u64
pub fn amount_msats(&self) -> u64
The amount to refund in msats (i.e., the minimum lightning-payable unit for chain).
Sourcepub fn features(&self) -> &InvoiceRequestFeatures
pub fn features(&self) -> &InvoiceRequestFeatures
Features pertaining to requesting an invoice.
Sourcepub fn payer_signing_pubkey(&self) -> PublicKey
pub fn payer_signing_pubkey(&self) -> PublicKey
A public node id to send to in the case where there are no paths. Otherwise, a possibly
transient pubkey.
Sourcepub fn payer_note(&self) -> Option<PrintableString<'_>>
pub fn payer_note(&self) -> Option<PrintableString<'_>>
Payer provided note to include in the invoice.
Source§impl Refund
impl Refund
Sourcepub fn respond_with(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
signing_pubkey: PublicKey,
) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
pub fn respond_with( &self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash, signing_pubkey: PublicKey, ) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
Creates an InvoiceBuilder for the refund with the given required fields and using the
Duration since std::time::SystemTime::UNIX_EPOCH as the creation time.
See Refund::respond_with_no_std for further details where the aforementioned creation
time is used for the created_at parameter.
This is not exported to bindings users as builder patterns don’t map outside of move semantics.
Sourcepub fn respond_with_no_std(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
signing_pubkey: PublicKey,
created_at: Duration,
) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
pub fn respond_with_no_std( &self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash, signing_pubkey: PublicKey, created_at: Duration, ) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
Creates an InvoiceBuilder for the refund with the given required fields.
Unless InvoiceBuilder::relative_expiry is set, the invoice will expire two hours after
created_at, which is used to set Bolt12Invoice::created_at.
Useful for non-std builds where std::time::SystemTime is not available.
The caller is expected to remember the preimage of payment_hash in order to
claim a payment for the invoice.
The signing_pubkey is required to sign the invoice since refunds are not in response to an
offer, which does have a signing_pubkey.
The payment_paths parameter is useful for maintaining the payment recipient’s privacy. It
must contain one or more elements ordered from most-preferred to least-preferred, if there’s
a preference. Note, however, that any privacy is lost if a public node id is used for
signing_pubkey.
Errors if the request contains unknown required features.
This is not exported to bindings users as builder patterns don’t map outside of move semantics.
Sourcepub fn respond_using_derived_keys<ES: Deref>(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
expanded_key: &ExpandedKey,
entropy_source: ES,
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
pub fn respond_using_derived_keys<ES: Deref>(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
expanded_key: &ExpandedKey,
entropy_source: ES,
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
Creates an InvoiceBuilder for the refund using the given required fields and that uses
derived signing keys to sign the Bolt12Invoice.
See Refund::respond_with for further details.
This is not exported to bindings users as builder patterns don’t map outside of move semantics.
Sourcepub fn respond_using_derived_keys_no_std<ES: Deref>(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
created_at: Duration,
expanded_key: &ExpandedKey,
entropy_source: ES,
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
pub fn respond_using_derived_keys_no_std<ES: Deref>(
&self,
payment_paths: Vec<BlindedPaymentPath>,
payment_hash: PaymentHash,
created_at: Duration,
expanded_key: &ExpandedKey,
entropy_source: ES,
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
Creates an InvoiceBuilder for the refund using the given required fields and that uses
derived signing keys to sign the Bolt12Invoice.
See Refund::respond_with_no_std for further details.
This is not exported to bindings users as builder patterns don’t map outside of move semantics.