@@ -490,6 +490,40 @@ where
490
490
invoice_expiry_delta_secs, payment_hash, payment_secret, min_final_cltv_expiry_delta)
491
491
}
492
492
493
+ /// See [`create_invoice_from_channelmanager_and_duration_since_epoch`]
494
+ /// This version allows for providing custom [`PaymentHash`] and description hash for the invoice.
495
+ ///
496
+ /// This may be useful if you're building an on-chain swap or involving another protocol where
497
+ /// the payment hash is also involved outside the scope of lightning and want to set the
498
+ /// description hash.
499
+ pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch_with_payment_hash < M : Deref , T : Deref , ES : Deref , NS : Deref , SP : Deref , F : Deref , R : Deref , MR : Deref , L : Deref > (
500
+ channelmanager : & ChannelManager < M , T , ES , NS , SP , F , R , MR , L > , node_signer : NS , logger : L ,
501
+ network : Currency , amt_msat : Option < u64 > , description_hash : Sha256 , duration_since_epoch : Duration ,
502
+ invoice_expiry_delta_secs : u32 , payment_hash : PaymentHash , min_final_cltv_expiry_delta : Option < u16 > ,
503
+ ) -> Result < Bolt11Invoice , SignOrCreationError < ( ) > >
504
+ where
505
+ M :: Target : chain:: Watch < <SP :: Target as SignerProvider >:: EcdsaSigner > ,
506
+ T :: Target : BroadcasterInterface ,
507
+ ES :: Target : EntropySource ,
508
+ NS :: Target : NodeSigner ,
509
+ SP :: Target : SignerProvider ,
510
+ F :: Target : FeeEstimator ,
511
+ R :: Target : Router ,
512
+ MR :: Target : MessageRouter ,
513
+ L :: Target : Logger ,
514
+ {
515
+ let payment_secret = channelmanager
516
+ . create_inbound_payment_for_hash ( payment_hash, amt_msat, invoice_expiry_delta_secs,
517
+ min_final_cltv_expiry_delta)
518
+ . map_err ( |( ) | SignOrCreationError :: CreationError ( CreationError :: InvalidAmount ) ) ?;
519
+ _create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash (
520
+ channelmanager, node_signer, logger, network, amt_msat,
521
+ Bolt11InvoiceDescription :: Hash ( & description_hash) ,
522
+ duration_since_epoch, invoice_expiry_delta_secs, payment_hash, payment_secret,
523
+ min_final_cltv_expiry_delta,
524
+ )
525
+ }
526
+
493
527
/// See [`create_invoice_from_channelmanager_and_duration_since_epoch`]
494
528
/// This version allows for providing a custom [`PaymentHash`] for the invoice.
495
529
/// This may be useful if you're building an on-chain swap or involving another protocol where
0 commit comments