pub fn create_invoice_from_channelmanager<M: Deref, T: Deref, ES: Deref, NS: Deref, SP: Deref, F: Deref, R: Deref, L: Deref>(
channelmanager: &ChannelManager<M, T, ES, NS, SP, F, R, L>,
node_signer: NS,
logger: L,
network: Currency,
amt_msat: Option<u64>,
description: String,
invoice_expiry_delta_secs: u32,
min_final_cltv_expiry_delta: Option<u16>
) -> Result<Invoice, SignOrCreationError<()>>where
M::Target: Watch<<SP::Target as SignerProvider>::Signer>,
T::Target: BroadcasterInterface,
ES::Target: EntropySource,
NS::Target: NodeSigner,
SP::Target: SignerProvider,
F::Target: FeeEstimator,
R::Target: Router,
L::Target: Logger,
std
only.Expand description
Utility to construct an invoice. Generally, unless you want to do something like a custom
cltv_expiry, this is what you should be using to create an invoice. The reason being, this
method stores the invoice’s payment secret and preimage in ChannelManager
, so (a) the user
doesn’t have to store preimage/payment secret information and (b) ChannelManager
can verify
that the payment secret is valid when the invoice is paid.
invoice_expiry_delta_secs
describes the number of seconds that the invoice is valid for
in excess of the current time.
You can specify a custom min_final_cltv_expiry_delta
, or let LDK default it to
MIN_FINAL_CLTV_EXPIRY_DELTA
. The provided expiry must be at least MIN_FINAL_CLTV_EXPIRY_DELTA
.
Note that LDK will add a buffer of 3 blocks to the delta to allow for up to a few new block
confirmations during routing.