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
Available on crate feature std
only.
pub fn is_expired(&self) -> bool
std
only.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) -> &[BlindedPath]
pub fn paths(&self) -> &[BlindedPath]
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_id
.
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_id(&self) -> PublicKey
pub fn payer_id(&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<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
signing_pubkey: PublicKey
) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
Available on non-c_bindings
and crate feature std
only.
pub fn respond_with( &self, payment_paths: Vec<(BlindedPayInfo, BlindedPath)>, payment_hash: PaymentHash, signing_pubkey: PublicKey ) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
c_bindings
and crate feature std
only.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<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
signing_pubkey: PublicKey,
created_at: Duration
) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
Available on non-c_bindings
only.
pub fn respond_with_no_std( &self, payment_paths: Vec<(BlindedPayInfo, BlindedPath)>, payment_hash: PaymentHash, signing_pubkey: PublicKey, created_at: Duration ) -> Result<InvoiceBuilder<'_, ExplicitSigningPubkey>, Bolt12SemanticError>
c_bindings
only.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 no-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<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
expanded_key: &ExpandedKey,
entropy_source: ES
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
Available on non-c_bindings
and crate feature std
only.
pub fn respond_using_derived_keys<ES: Deref>(
&self,
payment_paths: Vec<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
expanded_key: &ExpandedKey,
entropy_source: ES
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
c_bindings
and crate feature std
only.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<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
created_at: Duration,
expanded_key: &ExpandedKey,
entropy_source: ES
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
Available on non-c_bindings
only.
pub fn respond_using_derived_keys_no_std<ES: Deref>(
&self,
payment_paths: Vec<(BlindedPayInfo, BlindedPath)>,
payment_hash: PaymentHash,
created_at: Duration,
expanded_key: &ExpandedKey,
entropy_source: ES
) -> Result<InvoiceBuilder<'_, DerivedSigningPubkey>, Bolt12SemanticError>where
ES::Target: EntropySource,
c_bindings
only.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.