@@ -818,30 +818,12 @@ mod tests {
818
818
assert_eq ! ( tlv_stream. payer_note, Some ( & String :: from( "baz" ) ) ) ;
819
819
}
820
820
821
- #[ test]
822
- fn parses_invoice_request_with_metadata ( ) {
823
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
824
- . amount_msats ( 1000 )
825
- . build ( ) . unwrap ( )
826
- . request_invoice ( payer_pubkey ( ) )
827
- . metadata ( vec ! [ 42 ; 32 ] )
828
- . build ( ) . unwrap ( )
829
- . sign ( payer_sign) . unwrap ( ) ;
830
-
831
- let mut buffer = Vec :: new ( ) ;
832
- invoice_request. write ( & mut buffer) . unwrap ( ) ;
833
-
834
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
835
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
836
- }
837
- }
838
-
839
821
#[ test]
840
822
fn parses_invoice_request_with_chain ( ) {
841
823
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
842
824
. amount_msats ( 1000 )
843
825
. build ( ) . unwrap ( )
844
- . request_invoice ( payer_pubkey ( ) )
826
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
845
827
. chain ( Network :: Bitcoin )
846
828
. build ( ) . unwrap ( )
847
829
. sign ( payer_sign) . unwrap ( ) ;
@@ -856,7 +838,7 @@ mod tests {
856
838
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
857
839
. amount_msats ( 1000 )
858
840
. build ( ) . unwrap ( )
859
- . request_invoice ( payer_pubkey ( ) )
841
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
860
842
. chain ( Network :: Testnet )
861
843
. build_unchecked ( )
862
844
. sign ( payer_sign) . unwrap ( ) ;
@@ -875,7 +857,7 @@ mod tests {
875
857
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
876
858
. amount_msats ( 1000 )
877
859
. build ( ) . unwrap ( )
878
- . request_invoice ( payer_pubkey ( ) )
860
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
879
861
. build ( ) . unwrap ( )
880
862
. sign ( payer_sign) . unwrap ( ) ;
881
863
@@ -888,7 +870,7 @@ mod tests {
888
870
889
871
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
890
872
. build ( ) . unwrap ( )
891
- . request_invoice ( payer_pubkey ( ) )
873
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
892
874
. amount_msats ( 1000 )
893
875
. build ( ) . unwrap ( )
894
876
. sign ( payer_sign) . unwrap ( ) ;
@@ -902,7 +884,7 @@ mod tests {
902
884
903
885
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
904
886
. build ( ) . unwrap ( )
905
- . request_invoice ( payer_pubkey ( ) )
887
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
906
888
. build_unchecked ( )
907
889
. sign ( payer_sign) . unwrap ( ) ;
908
890
@@ -917,7 +899,7 @@ mod tests {
917
899
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
918
900
. amount_msats ( 1000 )
919
901
. build ( ) . unwrap ( )
920
- . request_invoice ( payer_pubkey ( ) )
902
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
921
903
. amount_msats ( 999 )
922
904
. build_unchecked ( )
923
905
. sign ( payer_sign) . unwrap ( ) ;
@@ -933,7 +915,7 @@ mod tests {
933
915
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
934
916
. amount ( Amount :: Currency { iso4217_code : * b"USD" , amount : 1000 } )
935
917
. build_unchecked ( )
936
- . request_invoice ( payer_pubkey ( ) )
918
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
937
919
. build_unchecked ( )
938
920
. sign ( payer_sign) . unwrap ( ) ;
939
921
@@ -956,7 +938,7 @@ mod tests {
956
938
. amount_msats ( 1000 )
957
939
. supported_quantity ( Quantity :: one ( ) )
958
940
. build ( ) . unwrap ( )
959
- . request_invoice ( payer_pubkey ( ) )
941
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
960
942
. build ( ) . unwrap ( )
961
943
. sign ( payer_sign) . unwrap ( ) ;
962
944
@@ -971,7 +953,7 @@ mod tests {
971
953
. amount_msats ( 1000 )
972
954
. supported_quantity ( Quantity :: one ( ) )
973
955
. build ( ) . unwrap ( )
974
- . request_invoice ( payer_pubkey ( ) )
956
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
975
957
. amount_msats ( 2_000 )
976
958
. quantity ( 2 )
977
959
. build_unchecked ( )
@@ -991,7 +973,7 @@ mod tests {
991
973
. amount_msats ( 1000 )
992
974
. supported_quantity ( Quantity :: Bounded ( ten) )
993
975
. build ( ) . unwrap ( )
994
- . request_invoice ( payer_pubkey ( ) )
976
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
995
977
. amount_msats ( 10_000 )
996
978
. quantity ( 10 )
997
979
. build ( ) . unwrap ( )
@@ -1008,7 +990,7 @@ mod tests {
1008
990
. amount_msats ( 1000 )
1009
991
. supported_quantity ( Quantity :: Bounded ( ten) )
1010
992
. build ( ) . unwrap ( )
1011
- . request_invoice ( payer_pubkey ( ) )
993
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1012
994
. amount_msats ( 11_000 )
1013
995
. quantity ( 11 )
1014
996
. build_unchecked ( )
@@ -1026,7 +1008,7 @@ mod tests {
1026
1008
. amount_msats ( 1000 )
1027
1009
. supported_quantity ( Quantity :: Unbounded )
1028
1010
. build ( ) . unwrap ( )
1029
- . request_invoice ( payer_pubkey ( ) )
1011
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1030
1012
. amount_msats ( 2_000 )
1031
1013
. quantity ( 2 )
1032
1014
. build ( ) . unwrap ( )
@@ -1043,7 +1025,7 @@ mod tests {
1043
1025
. amount_msats ( 1000 )
1044
1026
. supported_quantity ( Quantity :: Unbounded )
1045
1027
. build ( ) . unwrap ( )
1046
- . request_invoice ( payer_pubkey ( ) )
1028
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1047
1029
. build_unchecked ( )
1048
1030
. sign ( payer_sign) . unwrap ( ) ;
1049
1031
@@ -1057,25 +1039,33 @@ mod tests {
1057
1039
}
1058
1040
1059
1041
#[ test]
1060
- fn parses_invoice_request_with_payer_id ( ) {
1061
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1042
+ fn fails_parsing_invoice_request_without_metadata ( ) {
1043
+ let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1062
1044
. amount_msats ( 1000 )
1063
- . build ( ) . unwrap ( )
1064
- . request_invoice ( payer_pubkey ( ) )
1065
- . build ( ) . unwrap ( )
1066
- . sign ( payer_sign) . unwrap ( ) ;
1045
+ . build ( ) . unwrap ( ) ;
1046
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1047
+ . build ( ) . unwrap ( ) ;
1048
+ let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1049
+ tlv_stream. 0 . metadata = None ;
1067
1050
1068
1051
let mut buffer = Vec :: new ( ) ;
1069
- invoice_request . write ( & mut buffer) . unwrap ( ) ;
1052
+ tlv_stream . write ( & mut buffer) . unwrap ( ) ;
1070
1053
1071
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
1072
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
1054
+ match InvoiceRequest :: try_from ( buffer) {
1055
+ Ok ( _) => panic ! ( "expected error" ) ,
1056
+ Err ( e) => {
1057
+ assert_eq ! ( e, ParseError :: InvalidSemantics ( SemanticError :: MissingPayerMetadata ) ) ;
1058
+ } ,
1073
1059
}
1060
+ }
1074
1061
1062
+ #[ test]
1063
+ fn fails_parsing_invoice_request_without_payer_id ( ) {
1075
1064
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1076
1065
. amount_msats ( 1000 )
1077
1066
. build ( ) . unwrap ( ) ;
1078
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1067
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1068
+ . build ( ) . unwrap ( ) ;
1079
1069
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1080
1070
tlv_stream. 2 . payer_id = None ;
1081
1071
@@ -1089,11 +1079,12 @@ mod tests {
1089
1079
}
1090
1080
1091
1081
#[ test]
1092
- fn fails_parsing_invoice_request_with_missing_node_id ( ) {
1082
+ fn fails_parsing_invoice_request_without_node_id ( ) {
1093
1083
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1094
1084
. amount_msats ( 1000 )
1095
1085
. build ( ) . unwrap ( ) ;
1096
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1086
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1087
+ . build ( ) . unwrap ( ) ;
1097
1088
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1098
1089
tlv_stream. 1 . node_id = None ;
1099
1090
@@ -1113,7 +1104,7 @@ mod tests {
1113
1104
let mut invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1114
1105
. amount_msats ( 1000 )
1115
1106
. build ( ) . unwrap ( )
1116
- . request_invoice ( payer_pubkey ( ) )
1107
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1117
1108
. build ( ) . unwrap ( )
1118
1109
. sign ( payer_sign) . unwrap ( ) ;
1119
1110
let last_signature_byte = invoice_request. bytes . last_mut ( ) . unwrap ( ) ;
0 commit comments