Skip to content

Commit c4d005c

Browse files
committed
Allow to set payer_note on pay_for_offer_from_human_readable_name
1 parent 5688166 commit c4d005c

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

lightning-dns-resolver/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,9 @@ mod test {
405405
let params = RouteParametersConfig::default();
406406
nodes[0]
407407
.node
408-
.pay_for_offer_from_human_readable_name(name, amt, payment_id, retry, params, resolvers)
408+
.pay_for_offer_from_human_readable_name(
409+
name, amt, None, payment_id, retry, params, resolvers,
410+
)
409411
.unwrap();
410412

411413
let query = nodes[0].onion_messenger.next_onion_message_for_peer(resolver_id).unwrap();

lightning/src/ln/channelmanager.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10746,15 +10746,15 @@ where
1074610746
/// [Avoiding Duplicate Payments]: #avoiding-duplicate-payments
1074710747
#[cfg(feature = "dnssec")]
1074810748
pub fn pay_for_offer_from_human_readable_name(
10749-
&self, name: HumanReadableName, amount_msats: u64, payment_id: PaymentId,
10749+
&self, name: HumanReadableName, amount_msats: u64, payer_note: Option<String>, payment_id: PaymentId,
1075010750
retry_strategy: Retry, route_params_config: RouteParametersConfig,
1075110751
dns_resolvers: Vec<Destination>,
1075210752
) -> Result<(), ()> {
1075310753
let (onion_message, context) =
1075410754
self.hrn_resolver.resolve_name(payment_id, name, &*self.entropy_source)?;
1075510755
let reply_paths = self.create_blinded_paths(MessageContext::DNSResolver(context))?;
1075610756
let expiration = StaleExpiration::TimerTicks(1);
10757-
self.pending_outbound_payments.add_new_awaiting_offer(payment_id, expiration, retry_strategy, route_params_config, amount_msats)?;
10757+
self.pending_outbound_payments.add_new_awaiting_offer(payment_id, expiration, retry_strategy, route_params_config, amount_msats, payer_note)?;
1075810758
let message_params = dns_resolvers
1075910759
.iter()
1076010760
.flat_map(|destination| reply_paths.iter().map(move |path| (path, destination)))
@@ -12811,9 +12811,9 @@ where
1281112811
// offer, but tests can deal with that.
1281212812
offer = replacement_offer;
1281312813
}
12814-
if let Ok(amt_msats) = self.pending_outbound_payments.amt_msats_for_payment_awaiting_offer(payment_id) {
12814+
if let Ok((amt_msats, payer_note)) = self.pending_outbound_payments.params_for_payment_awaiting_offer(payment_id) {
1281512815
let offer_pay_res =
12816-
self.pay_for_offer_intern(&offer, None, Some(amt_msats), None, payment_id, Some(name),
12816+
self.pay_for_offer_intern(&offer, None, Some(amt_msats), payer_note, payment_id, Some(name),
1281712817
|invoice_request, nonce| {
1281812818
let retryable_invoice_request = RetryableInvoiceRequest {
1281912819
invoice_request: invoice_request.clone(),

lightning/src/ln/outbound_payment.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ pub(crate) enum PendingOutboundPayment {
6767
/// Human Readable Names-originated payments should always specify an explicit amount to
6868
/// send up-front, which we track here and enforce once we receive the offer.
6969
amount_msats: u64,
70+
payer_note: Option<String>
7071
},
7172
AwaitingInvoice {
7273
expiration: StaleExpiration,
@@ -1775,7 +1776,7 @@ impl OutboundPayments {
17751776
#[cfg(feature = "dnssec")]
17761777
pub(super) fn add_new_awaiting_offer(
17771778
&self, payment_id: PaymentId, expiration: StaleExpiration, retry_strategy: Retry,
1778-
route_params_config: RouteParametersConfig, amount_msats: u64,
1779+
route_params_config: RouteParametersConfig, amount_msats: u64, payer_note: Option<String>
17791780
) -> Result<(), ()> {
17801781
let mut pending_outbounds = self.pending_outbound_payments.lock().unwrap();
17811782
match pending_outbounds.entry(payment_id) {
@@ -1786,6 +1787,7 @@ impl OutboundPayments {
17861787
retry_strategy,
17871788
route_params_config,
17881789
amount_msats,
1790+
payer_note,
17891791
});
17901792

17911793
Ok(())
@@ -1794,10 +1796,10 @@ impl OutboundPayments {
17941796
}
17951797

17961798
#[cfg(feature = "dnssec")]
1797-
pub(super) fn amt_msats_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<u64, ()> {
1799+
pub(super) fn params_for_payment_awaiting_offer(&self, payment_id: PaymentId) -> Result<(u64, Option<String>), ()> {
17981800
match self.pending_outbound_payments.lock().unwrap().entry(payment_id) {
17991801
hash_map::Entry::Occupied(entry) => match entry.get() {
1800-
PendingOutboundPayment::AwaitingOffer { amount_msats, .. } => Ok(*amount_msats),
1802+
PendingOutboundPayment::AwaitingOffer { amount_msats, payer_note, .. } => Ok((*amount_msats, payer_note.clone())),
18011803
_ => Err(()),
18021804
},
18031805
_ => Err(()),
@@ -2583,6 +2585,7 @@ impl_writeable_tlv_based_enum_upgradable!(PendingOutboundPayment,
25832585
)
25842586
))),
25852587
(6, amount_msats, required),
2588+
(7, payer_note, option),
25862589
},
25872590
);
25882591

0 commit comments

Comments
 (0)