pub fn pay_zero_value_invoice<M, T, ES, NS, SP, F, R, L>(
    invoice: &Bolt11Invoice,
    amount_msats: u64,
    retry_strategy: Retry,
    channelmanager: &ChannelManager<M, T, ES, NS, SP, F, R, L>,
) -> Result<PaymentId, PaymentError>
where M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref, <M as Deref>::Target: Watch<<<SP as Deref>::Target as SignerProvider>::Signer>, <T as Deref>::Target: BroadcasterInterface, <ES as Deref>::Target: EntropySource, <NS as Deref>::Target: NodeSigner, <SP as Deref>::Target: SignerProvider, <F as Deref>::Target: FeeEstimator, <R as Deref>::Target: Router, <L as Deref>::Target: Logger,
Expand description

Pays the given zero-value Bolt11Invoice using the given amount, retrying if needed based on Retry.

Bolt11Invoice::payment_hash is used as the PaymentId, which ensures idempotency as long as the payment is still pending. If the payment succeeds, you must ensure that a second payment with the same PaymentHash is never sent.

If you wish to use a different payment idempotency token, see pay_zero_value_invoice_with_id.