@@ -485,7 +485,13 @@ macro_rules! invoice_request_accessors { ($self: ident, $contents: expr) => {
485
485
}
486
486
} }
487
487
488
+ impl UnsignedInvoiceRequest {
489
+ offer_accessors ! ( self , self . contents. inner. offer) ;
490
+ invoice_request_accessors ! ( self , self . contents) ;
491
+ }
492
+
488
493
impl InvoiceRequest {
494
+ offer_accessors ! ( self , self . contents. inner. offer) ;
489
495
invoice_request_accessors ! ( self , self . contents) ;
490
496
491
497
/// Signature of the invoice request using [`payer_id`].
@@ -854,7 +860,7 @@ mod tests {
854
860
#[ cfg( feature = "std" ) ]
855
861
use core:: time:: Duration ;
856
862
use crate :: sign:: KeyMaterial ;
857
- use crate :: ln:: features:: InvoiceRequestFeatures ;
863
+ use crate :: ln:: features:: { InvoiceRequestFeatures , OfferFeatures } ;
858
864
use crate :: ln:: inbound_payment:: ExpandedKey ;
859
865
use crate :: ln:: msgs:: { DecodeError , MAX_VALUE_MSAT } ;
860
866
use crate :: offers:: invoice:: { Bolt12Invoice , SIGNATURE_TAG as INVOICE_SIGNATURE_TAG } ;
@@ -877,6 +883,25 @@ mod tests {
877
883
let mut buffer = Vec :: new ( ) ;
878
884
unsigned_invoice_request. write ( & mut buffer) . unwrap ( ) ;
879
885
886
+ assert_eq ! ( unsigned_invoice_request. bytes, buffer. as_slice( ) ) ;
887
+ assert_eq ! ( unsigned_invoice_request. payer_metadata( ) , & [ 1 ; 32 ] ) ;
888
+ assert_eq ! ( unsigned_invoice_request. chains( ) , vec![ ChainHash :: using_genesis_block( Network :: Bitcoin ) ] ) ;
889
+ assert_eq ! ( unsigned_invoice_request. metadata( ) , None ) ;
890
+ assert_eq ! ( unsigned_invoice_request. amount( ) , Some ( & Amount :: Bitcoin { amount_msats: 1000 } ) ) ;
891
+ assert_eq ! ( unsigned_invoice_request. description( ) , PrintableString ( "foo" ) ) ;
892
+ assert_eq ! ( unsigned_invoice_request. offer_features( ) , & OfferFeatures :: empty( ) ) ;
893
+ assert_eq ! ( unsigned_invoice_request. absolute_expiry( ) , None ) ;
894
+ assert_eq ! ( unsigned_invoice_request. paths( ) , & [ ] ) ;
895
+ assert_eq ! ( unsigned_invoice_request. issuer( ) , None ) ;
896
+ assert_eq ! ( unsigned_invoice_request. supported_quantity( ) , Quantity :: One ) ;
897
+ assert_eq ! ( unsigned_invoice_request. signing_pubkey( ) , recipient_pubkey( ) ) ;
898
+ assert_eq ! ( unsigned_invoice_request. chain( ) , ChainHash :: using_genesis_block( Network :: Bitcoin ) ) ;
899
+ assert_eq ! ( unsigned_invoice_request. amount_msats( ) , None ) ;
900
+ assert_eq ! ( unsigned_invoice_request. invoice_request_features( ) , & InvoiceRequestFeatures :: empty( ) ) ;
901
+ assert_eq ! ( unsigned_invoice_request. quantity( ) , None ) ;
902
+ assert_eq ! ( unsigned_invoice_request. payer_id( ) , payer_pubkey( ) ) ;
903
+ assert_eq ! ( unsigned_invoice_request. payer_note( ) , None ) ;
904
+
880
905
match UnsignedInvoiceRequest :: try_from ( buffer) {
881
906
Err ( e) => panic ! ( "error parsing unsigned invoice request: {:?}" , e) ,
882
907
Ok ( parsed) => {
@@ -892,6 +917,16 @@ mod tests {
892
917
893
918
assert_eq ! ( invoice_request. bytes, buffer. as_slice( ) ) ;
894
919
assert_eq ! ( invoice_request. payer_metadata( ) , & [ 1 ; 32 ] ) ;
920
+ assert_eq ! ( invoice_request. chains( ) , vec![ ChainHash :: using_genesis_block( Network :: Bitcoin ) ] ) ;
921
+ assert_eq ! ( invoice_request. metadata( ) , None ) ;
922
+ assert_eq ! ( invoice_request. amount( ) , Some ( & Amount :: Bitcoin { amount_msats: 1000 } ) ) ;
923
+ assert_eq ! ( invoice_request. description( ) , PrintableString ( "foo" ) ) ;
924
+ assert_eq ! ( invoice_request. offer_features( ) , & OfferFeatures :: empty( ) ) ;
925
+ assert_eq ! ( invoice_request. absolute_expiry( ) , None ) ;
926
+ assert_eq ! ( invoice_request. paths( ) , & [ ] ) ;
927
+ assert_eq ! ( invoice_request. issuer( ) , None ) ;
928
+ assert_eq ! ( invoice_request. supported_quantity( ) , Quantity :: One ) ;
929
+ assert_eq ! ( invoice_request. signing_pubkey( ) , recipient_pubkey( ) ) ;
895
930
assert_eq ! ( invoice_request. chain( ) , ChainHash :: using_genesis_block( Network :: Bitcoin ) ) ;
896
931
assert_eq ! ( invoice_request. amount_msats( ) , None ) ;
897
932
assert_eq ! ( invoice_request. invoice_request_features( ) , & InvoiceRequestFeatures :: empty( ) ) ;
0 commit comments