Skip to content

Commit a016cc9

Browse files
valentinewallaceTheBlueMatt
authored andcommitted
Fix build for cfg(async_payments)
Static invoices don't have an amount_msats field.
1 parent be1a3ab commit a016cc9

File tree

3 files changed

+26
-16
lines changed

3 files changed

+26
-16
lines changed

lightning/src/offers/invoice.rs

+22-4
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ use crate::ln::inbound_payment::{ExpandedKey, IV_LEN};
120120
use crate::ln::msgs::DecodeError;
121121
use crate::offers::invoice_macros::{invoice_accessors_common, invoice_builder_methods_common};
122122
#[cfg(test)]
123-
use crate::offers::invoice_macros::invoice_builder_methods_test;
123+
use crate::offers::invoice_macros::invoice_builder_methods_test_common;
124124
use crate::offers::invoice_request::{EXPERIMENTAL_INVOICE_REQUEST_TYPES, ExperimentalInvoiceRequestTlvStream, ExperimentalInvoiceRequestTlvStreamRef, INVOICE_REQUEST_PAYER_ID_TYPE, INVOICE_REQUEST_TYPES, IV_BYTES as INVOICE_REQUEST_IV_BYTES, InvoiceRequest, InvoiceRequestContents, InvoiceRequestTlvStream, InvoiceRequestTlvStreamRef};
125125
use crate::offers::merkle::{SignError, SignFn, SignatureTlvStream, SignatureTlvStreamRef, TaggedHash, TlvStream, self, SIGNATURE_TLV_RECORD_SIZE};
126126
use crate::offers::nonce::Nonce;
@@ -380,6 +380,20 @@ macro_rules! invoice_builder_methods { (
380380
}
381381
} }
382382

383+
#[cfg(test)]
384+
macro_rules! invoice_builder_methods_test { (
385+
$self: ident, $self_type: ty, $return_type: ty, $return_value: expr
386+
$(, $self_mut: tt)?
387+
) => {
388+
#[cfg_attr(c_bindings, allow(dead_code))]
389+
pub(crate) fn amount_msats_unchecked(
390+
$($self_mut)* $self: $self_type, amount_msats: u64,
391+
) -> $return_type {
392+
$self.invoice.fields_mut().amount_msats = amount_msats;
393+
$return_value
394+
}
395+
} }
396+
383397
impl<'a> InvoiceBuilder<'a, ExplicitSigningPubkey> {
384398
invoice_explicit_signing_pubkey_builder_methods!(self, Self);
385399
}
@@ -393,7 +407,9 @@ impl<'a, S: SigningPubkeyStrategy> InvoiceBuilder<'a, S> {
393407
invoice_builder_methods_common!(self, Self, self.invoice.fields_mut(), Self, self, Bolt12Invoice, mut);
394408

395409
#[cfg(test)]
396-
invoice_builder_methods_test!(self, Self, self.invoice.fields_mut(), Self, self, mut);
410+
invoice_builder_methods_test!(self, Self, Self, self, mut);
411+
#[cfg(test)]
412+
invoice_builder_methods_test_common!(self, Self, self.invoice.fields_mut(), Self, self, mut);
397413
}
398414

399415
#[cfg(all(c_bindings, not(test)))]
@@ -408,7 +424,8 @@ impl<'a> InvoiceWithExplicitSigningPubkeyBuilder<'a> {
408424
invoice_explicit_signing_pubkey_builder_methods!(self, &mut Self);
409425
invoice_builder_methods!(self, &mut Self, &mut Self, self, ExplicitSigningPubkey);
410426
invoice_builder_methods_common!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self, Bolt12Invoice);
411-
invoice_builder_methods_test!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self);
427+
invoice_builder_methods_test!(self, &mut Self, &mut Self, self);
428+
invoice_builder_methods_test_common!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self);
412429
}
413430

414431
#[cfg(all(c_bindings, not(test)))]
@@ -423,7 +440,8 @@ impl<'a> InvoiceWithDerivedSigningPubkeyBuilder<'a> {
423440
invoice_derived_signing_pubkey_builder_methods!(self, &mut Self);
424441
invoice_builder_methods!(self, &mut Self, &mut Self, self, DerivedSigningPubkey);
425442
invoice_builder_methods_common!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self, Bolt12Invoice);
426-
invoice_builder_methods_test!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self);
443+
invoice_builder_methods_test!(self, &mut Self, &mut Self, self);
444+
invoice_builder_methods_test_common!(self, &mut Self, self.invoice.fields_mut(), &mut Self, self);
427445
}
428446

429447
#[cfg(c_bindings)]

lightning/src/offers/invoice_macros.rs

+2-10
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,10 @@ macro_rules! invoice_builder_methods_common { (
8383
} }
8484

8585
#[cfg(test)]
86-
macro_rules! invoice_builder_methods_test { (
86+
macro_rules! invoice_builder_methods_test_common { (
8787
$self: ident, $self_type: ty, $invoice_fields: expr, $return_type: ty, $return_value: expr
8888
$(, $self_mut: tt)?
8989
) => {
90-
#[cfg_attr(c_bindings, allow(dead_code))]
91-
pub(crate) fn amount_msats_unchecked(
92-
$($self_mut)* $self: $self_type, amount_msats: u64,
93-
) -> $return_type {
94-
$invoice_fields.amount_msats = amount_msats;
95-
$return_value
96-
}
97-
9890
#[cfg_attr(c_bindings, allow(dead_code))]
9991
pub(crate) fn features_unchecked(
10092
$($self_mut)* $self: $self_type, features: Bolt12InvoiceFeatures
@@ -154,4 +146,4 @@ macro_rules! invoice_accessors_common { ($self: ident, $contents: expr, $invoice
154146
pub(super) use invoice_accessors_common;
155147
pub(super) use invoice_builder_methods_common;
156148
#[cfg(test)]
157-
pub(super) use invoice_builder_methods_test;
149+
pub(super) use invoice_builder_methods_test_common;

lightning/src/offers/static_invoice.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::offers::invoice::{
2020
InvoiceTlvStream, InvoiceTlvStreamRef,
2121
};
2222
#[cfg(test)]
23-
use crate::offers::invoice_macros::invoice_builder_methods_test;
23+
use crate::offers::invoice_macros::invoice_builder_methods_test_common;
2424
use crate::offers::invoice_macros::{invoice_accessors_common, invoice_builder_methods_common};
2525
use crate::offers::invoice_request::InvoiceRequest;
2626
use crate::offers::merkle::{
@@ -174,7 +174,7 @@ impl<'a> StaticInvoiceBuilder<'a> {
174174
invoice_builder_methods_common!(self, Self, self.invoice, Self, self, StaticInvoice, mut);
175175

176176
#[cfg(test)]
177-
invoice_builder_methods_test!(self, Self, self.invoice, Self, self, mut);
177+
invoice_builder_methods_test_common!(self, Self, self.invoice, Self, self, mut);
178178
}
179179

180180
/// A semantically valid [`StaticInvoice`] that hasn't been signed.

0 commit comments

Comments
 (0)