@@ -479,7 +479,13 @@ macro_rules! invoice_request_accessors { ($self: ident, $contents: expr) => {
479
479
}
480
480
} }
481
481
482
+ impl UnsignedInvoiceRequest {
483
+ offer_accessors ! ( self , self . contents. inner. offer) ;
484
+ invoice_request_accessors ! ( self , self . contents) ;
485
+ }
486
+
482
487
impl InvoiceRequest {
488
+ offer_accessors ! ( self , self . contents. inner. offer) ;
483
489
invoice_request_accessors ! ( self , self . contents) ;
484
490
485
491
/// Signature of the invoice request using [`payer_id`].
@@ -848,7 +854,7 @@ mod tests {
848
854
#[ cfg( feature = "std" ) ]
849
855
use core:: time:: Duration ;
850
856
use crate :: sign:: KeyMaterial ;
851
- use crate :: ln:: features:: InvoiceRequestFeatures ;
857
+ use crate :: ln:: features:: { InvoiceRequestFeatures , OfferFeatures } ;
852
858
use crate :: ln:: inbound_payment:: ExpandedKey ;
853
859
use crate :: ln:: msgs:: { DecodeError , MAX_VALUE_MSAT } ;
854
860
use crate :: offers:: invoice:: { Bolt12Invoice , SIGNATURE_TAG as INVOICE_SIGNATURE_TAG } ;
@@ -871,6 +877,25 @@ mod tests {
871
877
let mut buffer = Vec :: new ( ) ;
872
878
unsigned_invoice_request. write ( & mut buffer) . unwrap ( ) ;
873
879
880
+ assert_eq ! ( unsigned_invoice_request. bytes, buffer. as_slice( ) ) ;
881
+ assert_eq ! ( unsigned_invoice_request. payer_metadata( ) , & [ 1 ; 32 ] ) ;
882
+ assert_eq ! ( unsigned_invoice_request. chains( ) , vec![ ChainHash :: using_genesis_block( Network :: Bitcoin ) ] ) ;
883
+ assert_eq ! ( unsigned_invoice_request. metadata( ) , None ) ;
884
+ assert_eq ! ( unsigned_invoice_request. amount( ) , Some ( & Amount :: Bitcoin { amount_msats: 1000 } ) ) ;
885
+ assert_eq ! ( unsigned_invoice_request. description( ) , PrintableString ( "foo" ) ) ;
886
+ assert_eq ! ( unsigned_invoice_request. offer_features( ) , & OfferFeatures :: empty( ) ) ;
887
+ assert_eq ! ( unsigned_invoice_request. absolute_expiry( ) , None ) ;
888
+ assert_eq ! ( unsigned_invoice_request. paths( ) , & [ ] ) ;
889
+ assert_eq ! ( unsigned_invoice_request. issuer( ) , None ) ;
890
+ assert_eq ! ( unsigned_invoice_request. supported_quantity( ) , Quantity :: One ) ;
891
+ assert_eq ! ( unsigned_invoice_request. signing_pubkey( ) , recipient_pubkey( ) ) ;
892
+ assert_eq ! ( unsigned_invoice_request. chain( ) , ChainHash :: using_genesis_block( Network :: Bitcoin ) ) ;
893
+ assert_eq ! ( unsigned_invoice_request. amount_msats( ) , None ) ;
894
+ assert_eq ! ( unsigned_invoice_request. invoice_request_features( ) , & InvoiceRequestFeatures :: empty( ) ) ;
895
+ assert_eq ! ( unsigned_invoice_request. quantity( ) , None ) ;
896
+ assert_eq ! ( unsigned_invoice_request. payer_id( ) , payer_pubkey( ) ) ;
897
+ assert_eq ! ( unsigned_invoice_request. payer_note( ) , None ) ;
898
+
874
899
match UnsignedInvoiceRequest :: try_from ( buffer) {
875
900
Err ( e) => panic ! ( "error parsing unsigned invoice request: {:?}" , e) ,
876
901
Ok ( parsed) => {
@@ -886,6 +911,16 @@ mod tests {
886
911
887
912
assert_eq ! ( invoice_request. bytes, buffer. as_slice( ) ) ;
888
913
assert_eq ! ( invoice_request. payer_metadata( ) , & [ 1 ; 32 ] ) ;
914
+ assert_eq ! ( invoice_request. chains( ) , vec![ ChainHash :: using_genesis_block( Network :: Bitcoin ) ] ) ;
915
+ assert_eq ! ( invoice_request. metadata( ) , None ) ;
916
+ assert_eq ! ( invoice_request. amount( ) , Some ( & Amount :: Bitcoin { amount_msats: 1000 } ) ) ;
917
+ assert_eq ! ( invoice_request. description( ) , PrintableString ( "foo" ) ) ;
918
+ assert_eq ! ( invoice_request. offer_features( ) , & OfferFeatures :: empty( ) ) ;
919
+ assert_eq ! ( invoice_request. absolute_expiry( ) , None ) ;
920
+ assert_eq ! ( invoice_request. paths( ) , & [ ] ) ;
921
+ assert_eq ! ( invoice_request. issuer( ) , None ) ;
922
+ assert_eq ! ( invoice_request. supported_quantity( ) , Quantity :: One ) ;
923
+ assert_eq ! ( invoice_request. signing_pubkey( ) , recipient_pubkey( ) ) ;
889
924
assert_eq ! ( invoice_request. chain( ) , ChainHash :: using_genesis_block( Network :: Bitcoin ) ) ;
890
925
assert_eq ! ( invoice_request. amount_msats( ) , None ) ;
891
926
assert_eq ! ( invoice_request. invoice_request_features( ) , & InvoiceRequestFeatures :: empty( ) ) ;
0 commit comments