@@ -15,7 +15,7 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
1515
1616use lightning:: blinded_path:: message:: BlindedMessagePath ;
1717use lightning:: ln:: channelmanager:: { OptionalOfferPaymentParams , PaymentId , Retry } ;
18- use lightning:: offers:: offer:: { Amount , Offer as LdkOffer , Quantity } ;
18+ use lightning:: offers:: offer:: { Amount , Offer as LdkOffer , OfferFromHrn , Quantity } ;
1919use lightning:: offers:: parse:: Bolt12SemanticError ;
2020use lightning:: routing:: router:: RouteParametersConfig ;
2121#[ cfg( feature = "uniffi" ) ]
@@ -45,6 +45,11 @@ type Refund = lightning::offers::refund::Refund;
4545#[ cfg( feature = "uniffi" ) ]
4646type Refund = Arc < crate :: ffi:: Refund > ;
4747
48+ #[ cfg( not( feature = "uniffi" ) ) ]
49+ type HumanReadableName = lightning:: onion_message:: dns_resolution:: HumanReadableName ;
50+ #[ cfg( feature = "uniffi" ) ]
51+ type HumanReadableName = Arc < crate :: ffi:: HumanReadableName > ;
52+
4853/// A payment handler allowing to create and pay [BOLT 12] offers and refunds.
4954///
5055/// Should be retrieved by calling [`Node::bolt12_payment`].
@@ -183,6 +188,7 @@ impl Bolt12Payment {
183188 /// response.
184189 pub fn send_using_amount (
185190 & self , offer : & Offer , amount_msat : u64 , quantity : Option < u64 > , payer_note : Option < String > ,
191+ hrn : Option < HumanReadableName > ,
186192 ) -> Result < PaymentId , Error > {
187193 if !* self . is_running . read ( ) . unwrap ( ) {
188194 return Err ( Error :: NotRunning ) ;
@@ -217,7 +223,11 @@ impl Bolt12Payment {
217223 retry_strategy,
218224 route_params_config,
219225 } ;
220- let res = if let Some ( quantity) = quantity {
226+ let res = if let Some ( hrn) = hrn {
227+ let hrn = maybe_deref ( & hrn) ;
228+ let offer = OfferFromHrn { offer : offer. clone ( ) , hrn : * hrn } ;
229+ self . channel_manager . pay_for_offer_from_hrn ( & offer, amount_msat, payment_id, params)
230+ } else if let Some ( quantity) = quantity {
221231 self . channel_manager . pay_for_offer_with_quantity (
222232 & offer,
223233 Some ( amount_msat) ,
0 commit comments