Skip to content

Commit ca33f81

Browse files
Add methods to set invoice features in Features objects.
1 parent 2cb655b commit ca33f81

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

lightning/src/ln/features.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,16 @@ impl<T: sealed::VariableLengthOnion> Features<T> {
508508
pub(crate) fn supports_variable_length_onion(&self) -> bool {
509509
<T as sealed::VariableLengthOnion>::supports_feature(&self.flags)
510510
}
511+
512+
/// Set these features as requiring the var_onion_optin feature.
513+
pub fn set_supports_var_onion_optin(&mut self) {
514+
<T as sealed::VariableLengthOnion>::set_optional_bit(&mut self.flags);
515+
}
516+
517+
/// Set these features as supporting the var_onion_optin feature.
518+
pub fn set_requires_var_onion_optin(&mut self) {
519+
<T as sealed::VariableLengthOnion>::set_required_bit(&mut self.flags);
520+
}
511521
}
512522

513523
impl<T: sealed::StaticRemoteKey> Features<T> {
@@ -545,6 +555,16 @@ impl<T: sealed::PaymentSecret> Features<T> {
545555
pub(crate) fn supports_payment_secret(&self) -> bool {
546556
<T as sealed::PaymentSecret>::supports_feature(&self.flags)
547557
}
558+
559+
/// Set these features as supporting the payment_secret feature.
560+
pub fn set_supports_payment_secret(&mut self) {
561+
<T as sealed::PaymentSecret>::set_optional_bit(&mut self.flags);
562+
}
563+
564+
/// Set these features as requiring the payment_secret feature.
565+
pub fn set_requires_payment_secret(&mut self) {
566+
<T as sealed::PaymentSecret>::set_required_bit(&mut self.flags);
567+
}
548568
}
549569

550570
impl<T: sealed::BasicMPP> Features<T> {
@@ -557,6 +577,16 @@ impl<T: sealed::BasicMPP> Features<T> {
557577
pub(crate) fn supports_basic_mpp(&self) -> bool {
558578
<T as sealed::BasicMPP>::supports_feature(&self.flags)
559579
}
580+
581+
/// Set these features as supporting the basic_mpp feature.
582+
pub fn set_supports_basic_mpp(&mut self) {
583+
<T as sealed::BasicMPP>::set_optional_bit(&mut self.flags);
584+
}
585+
586+
/// Set these features as requiring the basic_mpp feature.
587+
pub fn set_requires_basic_mpp(&mut self) {
588+
<T as sealed::BasicMPP>::set_required_bit(&mut self.flags);
589+
}
560590
}
561591

562592
impl<T: sealed::ShutdownAnySegwit> Features<T> {

0 commit comments

Comments
 (0)