@@ -781,30 +781,12 @@ mod tests {
781
781
assert_eq ! ( tlv_stream. payer_note, Some ( & String :: from( "baz" ) ) ) ;
782
782
}
783
783
784
- #[ test]
785
- fn parses_invoice_request_with_metadata ( ) {
786
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
787
- . amount_msats ( 1000 )
788
- . build ( ) . unwrap ( )
789
- . request_invoice ( payer_pubkey ( ) )
790
- . metadata ( vec ! [ 42 ; 32 ] )
791
- . build ( ) . unwrap ( )
792
- . sign ( payer_sign) . unwrap ( ) ;
793
-
794
- let mut buffer = Vec :: new ( ) ;
795
- invoice_request. write ( & mut buffer) . unwrap ( ) ;
796
-
797
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
798
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
799
- }
800
- }
801
-
802
784
#[ test]
803
785
fn parses_invoice_request_with_chain ( ) {
804
786
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
805
787
. amount_msats ( 1000 )
806
788
. build ( ) . unwrap ( )
807
- . request_invoice ( payer_pubkey ( ) )
789
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
808
790
. chain ( Network :: Bitcoin )
809
791
. build ( ) . unwrap ( )
810
792
. sign ( payer_sign) . unwrap ( ) ;
@@ -819,7 +801,7 @@ mod tests {
819
801
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
820
802
. amount_msats ( 1000 )
821
803
. build ( ) . unwrap ( )
822
- . request_invoice ( payer_pubkey ( ) )
804
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
823
805
. chain ( Network :: Testnet )
824
806
. build_unchecked ( )
825
807
. sign ( payer_sign) . unwrap ( ) ;
@@ -838,7 +820,7 @@ mod tests {
838
820
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
839
821
. amount_msats ( 1000 )
840
822
. build ( ) . unwrap ( )
841
- . request_invoice ( payer_pubkey ( ) )
823
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
842
824
. build ( ) . unwrap ( )
843
825
. sign ( payer_sign) . unwrap ( ) ;
844
826
@@ -851,7 +833,7 @@ mod tests {
851
833
852
834
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
853
835
. build ( ) . unwrap ( )
854
- . request_invoice ( payer_pubkey ( ) )
836
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
855
837
. amount_msats ( 1000 )
856
838
. build ( ) . unwrap ( )
857
839
. sign ( payer_sign) . unwrap ( ) ;
@@ -865,7 +847,7 @@ mod tests {
865
847
866
848
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
867
849
. build ( ) . unwrap ( )
868
- . request_invoice ( payer_pubkey ( ) )
850
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
869
851
. build_unchecked ( )
870
852
. sign ( payer_sign) . unwrap ( ) ;
871
853
@@ -880,7 +862,7 @@ mod tests {
880
862
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
881
863
. amount_msats ( 1000 )
882
864
. build ( ) . unwrap ( )
883
- . request_invoice ( payer_pubkey ( ) )
865
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
884
866
. amount_msats ( 999 )
885
867
. build_unchecked ( )
886
868
. sign ( payer_sign) . unwrap ( ) ;
@@ -896,7 +878,7 @@ mod tests {
896
878
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
897
879
. amount ( Amount :: Currency { iso4217_code : * b"USD" , amount : 1000 } )
898
880
. build_unchecked ( )
899
- . request_invoice ( payer_pubkey ( ) )
881
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
900
882
. build_unchecked ( )
901
883
. sign ( payer_sign) . unwrap ( ) ;
902
884
@@ -919,7 +901,7 @@ mod tests {
919
901
. amount_msats ( 1000 )
920
902
. supported_quantity ( Quantity :: one ( ) )
921
903
. build ( ) . unwrap ( )
922
- . request_invoice ( payer_pubkey ( ) )
904
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
923
905
. build ( ) . unwrap ( )
924
906
. sign ( payer_sign) . unwrap ( ) ;
925
907
@@ -934,7 +916,7 @@ mod tests {
934
916
. amount_msats ( 1000 )
935
917
. supported_quantity ( Quantity :: one ( ) )
936
918
. build ( ) . unwrap ( )
937
- . request_invoice ( payer_pubkey ( ) )
919
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
938
920
. amount_msats ( 2_000 )
939
921
. quantity ( 2 )
940
922
. build_unchecked ( )
@@ -954,7 +936,7 @@ mod tests {
954
936
. amount_msats ( 1000 )
955
937
. supported_quantity ( Quantity :: Bounded ( ten) )
956
938
. build ( ) . unwrap ( )
957
- . request_invoice ( payer_pubkey ( ) )
939
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
958
940
. amount_msats ( 10_000 )
959
941
. quantity ( 10 )
960
942
. build ( ) . unwrap ( )
@@ -971,7 +953,7 @@ mod tests {
971
953
. amount_msats ( 1000 )
972
954
. supported_quantity ( Quantity :: Bounded ( ten) )
973
955
. build ( ) . unwrap ( )
974
- . request_invoice ( payer_pubkey ( ) )
956
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
975
957
. amount_msats ( 11_000 )
976
958
. quantity ( 11 )
977
959
. build_unchecked ( )
@@ -989,7 +971,7 @@ mod tests {
989
971
. amount_msats ( 1000 )
990
972
. supported_quantity ( Quantity :: Unbounded )
991
973
. build ( ) . unwrap ( )
992
- . request_invoice ( payer_pubkey ( ) )
974
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
993
975
. amount_msats ( 2_000 )
994
976
. quantity ( 2 )
995
977
. build ( ) . unwrap ( )
@@ -1006,7 +988,7 @@ mod tests {
1006
988
. amount_msats ( 1000 )
1007
989
. supported_quantity ( Quantity :: Unbounded )
1008
990
. build ( ) . unwrap ( )
1009
- . request_invoice ( payer_pubkey ( ) )
991
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1010
992
. build_unchecked ( )
1011
993
. sign ( payer_sign) . unwrap ( ) ;
1012
994
@@ -1020,25 +1002,33 @@ mod tests {
1020
1002
}
1021
1003
1022
1004
#[ test]
1023
- fn parses_invoice_request_with_payer_id ( ) {
1024
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1005
+ fn fails_parsing_invoice_request_without_metadata ( ) {
1006
+ let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1025
1007
. amount_msats ( 1000 )
1026
- . build ( ) . unwrap ( )
1027
- . request_invoice ( payer_pubkey ( ) )
1028
- . build ( ) . unwrap ( )
1029
- . sign ( payer_sign) . unwrap ( ) ;
1008
+ . build ( ) . unwrap ( ) ;
1009
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1010
+ . build ( ) . unwrap ( ) ;
1011
+ let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1012
+ tlv_stream. 0 . metadata = None ;
1030
1013
1031
1014
let mut buffer = Vec :: new ( ) ;
1032
- invoice_request . write ( & mut buffer) . unwrap ( ) ;
1015
+ tlv_stream . write ( & mut buffer) . unwrap ( ) ;
1033
1016
1034
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
1035
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
1017
+ match InvoiceRequest :: try_from ( buffer) {
1018
+ Ok ( _) => panic ! ( "expected error" ) ,
1019
+ Err ( e) => {
1020
+ assert_eq ! ( e, ParseError :: InvalidSemantics ( SemanticError :: MissingPayerMetadata ) ) ;
1021
+ } ,
1036
1022
}
1023
+ }
1037
1024
1025
+ #[ test]
1026
+ fn fails_parsing_invoice_request_without_payer_id ( ) {
1038
1027
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1039
1028
. amount_msats ( 1000 )
1040
1029
. build ( ) . unwrap ( ) ;
1041
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1030
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1031
+ . build ( ) . unwrap ( ) ;
1042
1032
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1043
1033
tlv_stream. 2 . payer_id = None ;
1044
1034
@@ -1052,11 +1042,12 @@ mod tests {
1052
1042
}
1053
1043
1054
1044
#[ test]
1055
- fn fails_parsing_invoice_request_with_missing_node_id ( ) {
1045
+ fn fails_parsing_invoice_request_without_node_id ( ) {
1056
1046
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1057
1047
. amount_msats ( 1000 )
1058
1048
. build ( ) . unwrap ( ) ;
1059
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1049
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1050
+ . build ( ) . unwrap ( ) ;
1060
1051
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1061
1052
tlv_stream. 1 . node_id = None ;
1062
1053
@@ -1076,7 +1067,7 @@ mod tests {
1076
1067
let mut invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1077
1068
. amount_msats ( 1000 )
1078
1069
. build ( ) . unwrap ( )
1079
- . request_invoice ( payer_pubkey ( ) )
1070
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1080
1071
. build ( ) . unwrap ( )
1081
1072
. sign ( payer_sign) . unwrap ( ) ;
1082
1073
let last_signature_byte = invoice_request. bytes . last_mut ( ) . unwrap ( ) ;
0 commit comments