From f35c8bbd04aabde4ad6007c75b3cbf97811f12b7 Mon Sep 17 00:00:00 2001 From: Ian Slane Date: Wed, 7 Aug 2024 09:35:47 -0600 Subject: [PATCH] Add `payer_note` argument for `initiate_refund` --- bindings/ldk_node.udl | 2 +- src/payment/bolt12.rs | 7 ++++++- tests/integration_tests_rust.rs | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bindings/ldk_node.udl b/bindings/ldk_node.udl index edf436c31..b8364af80 100644 --- a/bindings/ldk_node.udl +++ b/bindings/ldk_node.udl @@ -130,7 +130,7 @@ interface Bolt12Payment { [Throws=NodeError] Bolt12Invoice request_refund_payment([ByRef]Refund refund); [Throws=NodeError] - Refund initiate_refund(u64 amount_msat, u32 expiry_secs, u64? quantity); + Refund initiate_refund(u64 amount_msat, u32 expiry_secs, string? payer_note, u64? quantity); }; interface SpontaneousPayment { diff --git a/src/payment/bolt12.rs b/src/payment/bolt12.rs index df18b42f7..cbb69e6c3 100644 --- a/src/payment/bolt12.rs +++ b/src/payment/bolt12.rs @@ -314,7 +314,8 @@ impl Bolt12Payment { /// Returns a [`Refund`] object that can be used to offer a refund payment of the amount given. pub fn initiate_refund( - &self, amount_msat: u64, expiry_secs: u32, quantity: Option, + &self, amount_msat: u64, expiry_secs: u32, payer_note: Option, + quantity: Option, ) -> Result { let mut random_bytes = [0u8; 32]; rand::thread_rng().fill_bytes(&mut random_bytes); @@ -344,6 +345,10 @@ impl Bolt12Payment { refund_builder = refund_builder.quantity(qty); } + if let Some(note) = payer_note { + refund_builder = refund_builder.payer_note(note); + } + let refund = refund_builder.build().map_err(|e| { log_error!(self.logger, "Failed to create refund: {:?}", e); Error::RefundCreationFailed diff --git a/tests/integration_tests_rust.rs b/tests/integration_tests_rust.rs index 091c3ae01..e77804e6b 100644 --- a/tests/integration_tests_rust.rs +++ b/tests/integration_tests_rust.rs @@ -511,7 +511,8 @@ fn simple_bolt12_send_receive() { // Now node_b refunds the amount node_a just overpaid. let overpaid_amount = expected_amount_msat - offer_amount_msat; - let refund = node_b.bolt12_payment().initiate_refund(overpaid_amount, 3600, None).unwrap(); + let refund = + node_b.bolt12_payment().initiate_refund(overpaid_amount, 3600, None, None).unwrap(); let invoice = node_a.bolt12_payment().request_refund_payment(&refund).unwrap(); expect_payment_received_event!(node_a, overpaid_amount);