Struct lightning_invoice::payment::InvoicePayer [−][src]
pub struct InvoicePayer<P: Deref, R, S: Deref, L: Deref, E> where
P::Target: Payer,
R: for<'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
S::Target: for<'a> LockableScore<'a>,
L::Target: Logger,
E: EventHandler, { /* fields omitted */ }
Expand description
A utility for paying Invoice
s and sending spontaneous payments.
See module-level documentation for details.
Implementations
impl<P: Deref, R, S: Deref, L: Deref, E> InvoicePayer<P, R, S, L, E> where
P::Target: Payer,
R: for<'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
S::Target: for<'a> LockableScore<'a>,
L::Target: Logger,
E: EventHandler,
impl<P: Deref, R, S: Deref, L: Deref, E> InvoicePayer<P, R, S, L, E> where
P::Target: Payer,
R: for<'a> Router<<<S as Deref>::Target as LockableScore<'a>>::Locked>,
S::Target: for<'a> LockableScore<'a>,
L::Target: Logger,
E: EventHandler,
pub fn new(
payer: P,
router: R,
scorer: S,
logger: L,
event_handler: E,
retry_attempts: RetryAttempts
) -> Self
pub fn new(
payer: P,
router: R,
scorer: S,
logger: L,
event_handler: E,
retry_attempts: RetryAttempts
) -> Self
Creates an invoice payer that retries failed payment paths.
Will forward any Event::PaymentPathFailed
events to the decorated event_handler
once
retry_attempts
has been exceeded for a given Invoice
.
Pays the given Invoice
, caching it for later use in case a retry is needed.
You should ensure that the invoice.payment_hash()
is unique and the same payment_hash has
never been paid before. Because InvoicePayer
is stateless no effort is made to do so
for you.
pub fn pay_zero_value_invoice(
&self,
invoice: &Invoice,
amount_msats: u64
) -> Result<PaymentId, PaymentError>
pub fn pay_zero_value_invoice(
&self,
invoice: &Invoice,
amount_msats: u64
) -> Result<PaymentId, PaymentError>
Pays the given zero-value Invoice
using the given amount, caching it for later use in
case a retry is needed.
You should ensure that the invoice.payment_hash()
is unique and the same payment_hash has
never been paid before. Because InvoicePayer
is stateless no effort is made to do so
for you.
pub fn pay_pubkey(
&self,
pubkey: PublicKey,
payment_preimage: PaymentPreimage,
amount_msats: u64,
final_cltv_expiry_delta: u32
) -> Result<PaymentId, PaymentError>
pub fn pay_pubkey(
&self,
pubkey: PublicKey,
payment_preimage: PaymentPreimage,
amount_msats: u64,
final_cltv_expiry_delta: u32
) -> Result<PaymentId, PaymentError>
Pays pubkey
an amount using the hash of the given preimage, caching it for later use in
case a retry is needed.
You should ensure that payment_preimage
is unique and that its payment_hash
has never
been paid before. Because InvoicePayer
is stateless no effort is made to do so for you.
Removes the payment cached by the given payment hash.
Should be called once a payment has failed or succeeded if not using InvoicePayer
as an
EventHandler
. Otherwise, calling this method is unnecessary.