@@ -883,8 +883,7 @@ mod tests {
883
883
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
884
884
. amount_msats ( 1000 )
885
885
. build ( ) . unwrap ( )
886
- . request_invoice ( payer_pubkey ( ) )
887
- . metadata ( vec ! [ 42 ; 32 ] )
886
+ . request_invoice ( vec ! [ 42 ; 32 ] , payer_pubkey ( ) )
888
887
. build ( ) . unwrap ( )
889
888
. sign ( payer_sign) . unwrap ( ) ;
890
889
@@ -901,7 +900,7 @@ mod tests {
901
900
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
902
901
. amount_msats ( 1000 )
903
902
. build ( ) . unwrap ( )
904
- . request_invoice ( payer_pubkey ( ) )
903
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
905
904
. chain ( Network :: Bitcoin )
906
905
. build ( ) . unwrap ( )
907
906
. sign ( payer_sign) . unwrap ( ) ;
@@ -916,7 +915,7 @@ mod tests {
916
915
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
917
916
. amount_msats ( 1000 )
918
917
. build ( ) . unwrap ( )
919
- . request_invoice ( payer_pubkey ( ) )
918
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
920
919
. chain ( Network :: Testnet )
921
920
. build_unchecked ( )
922
921
. sign ( payer_sign) . unwrap ( ) ;
@@ -935,7 +934,7 @@ mod tests {
935
934
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
936
935
. amount_msats ( 1000 )
937
936
. build ( ) . unwrap ( )
938
- . request_invoice ( payer_pubkey ( ) )
937
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
939
938
. build ( ) . unwrap ( )
940
939
. sign ( payer_sign) . unwrap ( ) ;
941
940
@@ -948,7 +947,7 @@ mod tests {
948
947
949
948
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
950
949
. build ( ) . unwrap ( )
951
- . request_invoice ( payer_pubkey ( ) )
950
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
952
951
. amount_msats ( 1000 )
953
952
. build ( ) . unwrap ( )
954
953
. sign ( payer_sign) . unwrap ( ) ;
@@ -962,7 +961,7 @@ mod tests {
962
961
963
962
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
964
963
. build ( ) . unwrap ( )
965
- . request_invoice ( payer_pubkey ( ) )
964
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
966
965
. build_unchecked ( )
967
966
. sign ( payer_sign) . unwrap ( ) ;
968
967
@@ -977,7 +976,7 @@ mod tests {
977
976
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
978
977
. amount_msats ( 1000 )
979
978
. build ( ) . unwrap ( )
980
- . request_invoice ( payer_pubkey ( ) )
979
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
981
980
. amount_msats ( 999 )
982
981
. build_unchecked ( )
983
982
. sign ( payer_sign) . unwrap ( ) ;
@@ -993,7 +992,7 @@ mod tests {
993
992
let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
994
993
. amount ( Amount :: Currency { iso4217_code : * b"USD" , amount : 1000 } )
995
994
. build_unchecked ( )
996
- . request_invoice ( payer_pubkey ( ) )
995
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
997
996
. build_unchecked ( )
998
997
. sign ( payer_sign) . unwrap ( ) ;
999
998
@@ -1016,7 +1015,7 @@ mod tests {
1016
1015
. amount_msats ( 1000 )
1017
1016
. supported_quantity ( Quantity :: one ( ) )
1018
1017
. build ( ) . unwrap ( )
1019
- . request_invoice ( payer_pubkey ( ) )
1018
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1020
1019
. build ( ) . unwrap ( )
1021
1020
. sign ( payer_sign) . unwrap ( ) ;
1022
1021
@@ -1031,7 +1030,7 @@ mod tests {
1031
1030
. amount_msats ( 1000 )
1032
1031
. supported_quantity ( Quantity :: one ( ) )
1033
1032
. build ( ) . unwrap ( )
1034
- . request_invoice ( payer_pubkey ( ) )
1033
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1035
1034
. amount_msats ( 2_000 )
1036
1035
. quantity ( 2 )
1037
1036
. build_unchecked ( )
@@ -1051,7 +1050,7 @@ mod tests {
1051
1050
. amount_msats ( 1000 )
1052
1051
. supported_quantity ( Quantity :: Bounded ( ten) )
1053
1052
. build ( ) . unwrap ( )
1054
- . request_invoice ( payer_pubkey ( ) )
1053
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1055
1054
. amount_msats ( 10_000 )
1056
1055
. quantity ( 10 )
1057
1056
. build ( ) . unwrap ( )
@@ -1068,7 +1067,7 @@ mod tests {
1068
1067
. amount_msats ( 1000 )
1069
1068
. supported_quantity ( Quantity :: Bounded ( ten) )
1070
1069
. build ( ) . unwrap ( )
1071
- . request_invoice ( payer_pubkey ( ) )
1070
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1072
1071
. amount_msats ( 11_000 )
1073
1072
. quantity ( 11 )
1074
1073
. build_unchecked ( )
@@ -1086,7 +1085,7 @@ mod tests {
1086
1085
. amount_msats ( 1000 )
1087
1086
. supported_quantity ( Quantity :: Unbounded )
1088
1087
. build ( ) . unwrap ( )
1089
- . request_invoice ( payer_pubkey ( ) )
1088
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1090
1089
. amount_msats ( 2_000 )
1091
1090
. quantity ( 2 )
1092
1091
. build ( ) . unwrap ( )
@@ -1103,7 +1102,7 @@ mod tests {
1103
1102
. amount_msats ( 1000 )
1104
1103
. supported_quantity ( Quantity :: Unbounded )
1105
1104
. build ( ) . unwrap ( )
1106
- . request_invoice ( payer_pubkey ( ) )
1105
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1107
1106
. build_unchecked ( )
1108
1107
. sign ( payer_sign) . unwrap ( ) ;
1109
1108
@@ -1117,25 +1116,33 @@ mod tests {
1117
1116
}
1118
1117
1119
1118
#[ test]
1120
- fn parses_invoice_request_with_payer_id ( ) {
1121
- let invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1119
+ fn fails_parsing_invoice_request_without_metadata ( ) {
1120
+ let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1122
1121
. amount_msats ( 1000 )
1123
- . build ( ) . unwrap ( )
1124
- . request_invoice ( payer_pubkey ( ) )
1125
- . build ( ) . unwrap ( )
1126
- . sign ( payer_sign) . unwrap ( ) ;
1122
+ . build ( ) . unwrap ( ) ;
1123
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1124
+ . build ( ) . unwrap ( ) ;
1125
+ let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1126
+ tlv_stream. 0 . metadata = None ;
1127
1127
1128
1128
let mut buffer = Vec :: new ( ) ;
1129
- invoice_request . write ( & mut buffer) . unwrap ( ) ;
1129
+ tlv_stream . write ( & mut buffer) . unwrap ( ) ;
1130
1130
1131
- if let Err ( e) = InvoiceRequest :: try_from ( buffer) {
1132
- panic ! ( "error parsing invoice_request: {:?}" , e) ;
1131
+ match InvoiceRequest :: try_from ( buffer) {
1132
+ Ok ( _) => panic ! ( "expected error" ) ,
1133
+ Err ( e) => {
1134
+ assert_eq ! ( e, ParseError :: InvalidSemantics ( SemanticError :: MissingPayerMetadata ) ) ;
1135
+ } ,
1133
1136
}
1137
+ }
1134
1138
1139
+ #[ test]
1140
+ fn fails_parsing_invoice_request_without_payer_id ( ) {
1135
1141
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1136
1142
. amount_msats ( 1000 )
1137
1143
. build ( ) . unwrap ( ) ;
1138
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1144
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1145
+ . build ( ) . unwrap ( ) ;
1139
1146
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1140
1147
tlv_stream. 2 . payer_id = None ;
1141
1148
@@ -1149,11 +1156,12 @@ mod tests {
1149
1156
}
1150
1157
1151
1158
#[ test]
1152
- fn fails_parsing_invoice_request_with_missing_node_id ( ) {
1159
+ fn fails_parsing_invoice_request_without_node_id ( ) {
1153
1160
let offer = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1154
1161
. amount_msats ( 1000 )
1155
1162
. build ( ) . unwrap ( ) ;
1156
- let mut unsigned_invoice_request = offer. request_invoice ( payer_pubkey ( ) ) . build ( ) . unwrap ( ) ;
1163
+ let mut unsigned_invoice_request = offer. request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1164
+ . build ( ) . unwrap ( ) ;
1157
1165
let mut tlv_stream = unsigned_invoice_request. invoice_request . as_tlv_stream ( ) ;
1158
1166
tlv_stream. 1 . node_id = None ;
1159
1167
@@ -1173,7 +1181,7 @@ mod tests {
1173
1181
let mut invoice_request = OfferBuilder :: new ( "foo" . into ( ) , recipient_pubkey ( ) )
1174
1182
. amount_msats ( 1000 )
1175
1183
. build ( ) . unwrap ( )
1176
- . request_invoice ( payer_pubkey ( ) )
1184
+ . request_invoice ( vec ! [ 1 ; 32 ] , payer_pubkey ( ) )
1177
1185
. build ( ) . unwrap ( )
1178
1186
. sign ( payer_sign) . unwrap ( ) ;
1179
1187
let last_signature_byte = invoice_request. bytes . last_mut ( ) . unwrap ( ) ;
0 commit comments