@@ -798,30 +798,12 @@ mod tests {
798
798
assert_eq ! ( tlv_stream. payer_note, Some ( & String :: from( "baz" ) ) ) ;
799
799
}
800
800
801
- #[ test]
802
- fn parses_invoice_request_with_metadata ( ) {
803
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
804
- . amount_msats ( 1000 )
805
- . build ( ) . unwrap ( )
806
- . request_invoice ( payer_pubkey ( ) )
807
- . metadata ( vec ! [ 42 ; 32 ] )
808
- . build ( ) . unwrap ( )
809
- . sign ( payer_sign) . unwrap ( ) ;
810
-
811
- let mut buffer = Vec :: new ( ) ;
812
- invoice_request. write ( & mut buffer) . unwrap ( ) ;
813
-
814
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
815
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
816
- }
817
- }
818
-
819
801
#[ test]
820
802
fn parses_invoice_request_with_chain ( ) {
821
803
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
822
804
. amount_msats ( 1000 )
823
805
. build ( ) . unwrap ( )
824
- . request_invoice ( payer_pubkey ( ) )
806
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
825
807
. chain ( Network :: Bitcoin )
826
808
. build ( ) . unwrap ( )
827
809
. sign ( payer_sign) . unwrap ( ) ;
@@ -836,7 +818,7 @@ mod tests {
836
818
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
837
819
. amount_msats ( 1000 )
838
820
. build ( ) . unwrap ( )
839
- . request_invoice ( payer_pubkey ( ) )
821
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
840
822
. chain ( Network :: Testnet )
841
823
. build_unchecked ( )
842
824
. sign ( payer_sign) . unwrap ( ) ;
@@ -855,7 +837,7 @@ mod tests {
855
837
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
856
838
. amount_msats ( 1000 )
857
839
. build ( ) . unwrap ( )
858
- . request_invoice ( payer_pubkey ( ) )
840
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
859
841
. build ( ) . unwrap ( )
860
842
. sign ( payer_sign) . unwrap ( ) ;
861
843
@@ -868,7 +850,7 @@ mod tests {
868
850
869
851
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
870
852
. build ( ) . unwrap ( )
871
- . request_invoice ( payer_pubkey ( ) )
853
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
872
854
. amount_msats ( 1000 )
873
855
. build ( ) . unwrap ( )
874
856
. sign ( payer_sign) . unwrap ( ) ;
@@ -882,7 +864,7 @@ mod tests {
882
864
883
865
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
884
866
. build ( ) . unwrap ( )
885
- . request_invoice ( payer_pubkey ( ) )
867
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
886
868
. build_unchecked ( )
887
869
. sign ( payer_sign) . unwrap ( ) ;
888
870
@@ -897,7 +879,7 @@ mod tests {
897
879
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
898
880
. amount_msats ( 1000 )
899
881
. build ( ) . unwrap ( )
900
- . request_invoice ( payer_pubkey ( ) )
882
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
901
883
. amount_msats ( 999 )
902
884
. build_unchecked ( )
903
885
. sign ( payer_sign) . unwrap ( ) ;
@@ -913,7 +895,7 @@ mod tests {
913
895
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
914
896
. amount ( Amount :: Currency { iso4217_code : * b"USD" , amount : 1000 } )
915
897
. build_unchecked ( )
916
- . request_invoice ( payer_pubkey ( ) )
898
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
917
899
. build_unchecked ( )
918
900
. sign ( payer_sign) . unwrap ( ) ;
919
901
@@ -936,7 +918,7 @@ mod tests {
936
918
. amount_msats ( 1000 )
937
919
. supported_quantity ( Quantity :: one ( ) )
938
920
. build ( ) . unwrap ( )
939
- . request_invoice ( payer_pubkey ( ) )
921
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
940
922
. build ( ) . unwrap ( )
941
923
. sign ( payer_sign) . unwrap ( ) ;
942
924
@@ -951,7 +933,7 @@ mod tests {
951
933
. amount_msats ( 1000 )
952
934
. supported_quantity ( Quantity :: one ( ) )
953
935
. build ( ) . unwrap ( )
954
- . request_invoice ( payer_pubkey ( ) )
936
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
955
937
. amount_msats ( 2_000 )
956
938
. quantity ( 2 )
957
939
. build_unchecked ( )
@@ -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 ( 10_000 )
976
958
. quantity ( 10 )
977
959
. build ( ) . unwrap ( )
@@ -988,7 +970,7 @@ mod tests {
988
970
. amount_msats ( 1000 )
989
971
. supported_quantity ( Quantity :: Bounded ( ten) )
990
972
. build ( ) . unwrap ( )
991
- . request_invoice ( payer_pubkey ( ) )
973
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
992
974
. amount_msats ( 11_000 )
993
975
. quantity ( 11 )
994
976
. build_unchecked ( )
@@ -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
. amount_msats ( 2_000 )
1011
993
. quantity ( 2 )
1012
994
. build ( ) . unwrap ( )
@@ -1023,7 +1005,7 @@ mod tests {
1023
1005
. amount_msats ( 1000 )
1024
1006
. supported_quantity ( Quantity :: Unbounded )
1025
1007
. build ( ) . unwrap ( )
1026
- . request_invoice ( payer_pubkey ( ) )
1008
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1027
1009
. build_unchecked ( )
1028
1010
. sign ( payer_sign) . unwrap ( ) ;
1029
1011
@@ -1037,25 +1019,33 @@ mod tests {
1037
1019
}
1038
1020
1039
1021
#[ test]
1040
- fn parses_invoice_request_with_payer_id ( ) {
1041
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1022
+ fn fails_parsing_invoice_request_without_metadata ( ) {
1023
+ let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1042
1024
. amount_msats ( 1000 )
1043
- . build ( ) . unwrap ( )
1044
- . request_invoice ( payer_pubkey ( ) )
1045
- . build ( ) . unwrap ( )
1046
- . sign ( payer_sign) . unwrap ( ) ;
1025
+ . build ( ) . unwrap ( ) ;
1026
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1027
+ . build ( ) . unwrap ( ) ;
1028
+ let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1029
+ tlv_stream. 0 . metadata = None ;
1047
1030
1048
1031
let mut buffer = Vec :: new ( ) ;
1049
- invoice_request . write ( & mut buffer) . unwrap ( ) ;
1032
+ tlv_stream . write ( & mut buffer) . unwrap ( ) ;
1050
1033
1051
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
1052
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
1034
+ match InvoiceRequest :: try_from ( buffer) {
1035
+ Ok ( _) => panic ! ( "expected error" ) ,
1036
+ Err ( e) => {
1037
+ assert_eq ! ( e, ParseError :: InvalidSemantics ( SemanticError :: MissingPayerMetadata ) ) ;
1038
+ } ,
1053
1039
}
1040
+ }
1054
1041
1042
+ #[ test]
1043
+ fn fails_parsing_invoice_request_without_payer_id ( ) {
1055
1044
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1056
1045
. amount_msats ( 1000 )
1057
1046
. build ( ) . unwrap ( ) ;
1058
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1047
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1048
+ . build ( ) . unwrap ( ) ;
1059
1049
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1060
1050
tlv_stream. 2 . payer_id = None ;
1061
1051
@@ -1069,11 +1059,12 @@ mod tests {
1069
1059
}
1070
1060
1071
1061
#[ test]
1072
- fn fails_parsing_invoice_request_with_missing_node_id ( ) {
1062
+ fn fails_parsing_invoice_request_without_node_id ( ) {
1073
1063
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1074
1064
. amount_msats ( 1000 )
1075
1065
. build ( ) . unwrap ( ) ;
1076
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1066
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1067
+ . build ( ) . unwrap ( ) ;
1077
1068
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1078
1069
tlv_stream. 1 . node_id = None ;
1079
1070
@@ -1093,7 +1084,7 @@ mod tests {
1093
1084
let mut invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1094
1085
. amount_msats ( 1000 )
1095
1086
. build ( ) . unwrap ( )
1096
- . request_invoice ( payer_pubkey ( ) )
1087
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1097
1088
. build ( ) . unwrap ( )
1098
1089
. sign ( payer_sign) . unwrap ( ) ;
1099
1090
let last_signature_byte = invoice_request. bytes . last_mut ( ) . unwrap ( ) ;
0 commit comments