Skip to content

Commit 707b036

Browse files
committed
f - require payer metadata
1 parent 0e15083 commit 707b036

File tree

1 file changed

+35
-44
lines changed

1 file changed

+35
-44
lines changed

lightning/src/offers/invoice_request.rs

Lines changed: 35 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -818,30 +818,12 @@ mod tests {
818818
assert_eq!(tlv_stream.payer_note, Some(&String::from("baz")));
819819
}
820820

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-
839821
#[test]
840822
fn parses_invoice_request_with_chain() {
841823
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
842824
.amount_msats(1000)
843825
.build().unwrap()
844-
.request_invoice(payer_pubkey())
826+
.request_invoice(vec![1; 32], payer_pubkey())
845827
.chain(Network::Bitcoin)
846828
.build().unwrap()
847829
.sign(payer_sign).unwrap();
@@ -856,7 +838,7 @@ mod tests {
856838
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
857839
.amount_msats(1000)
858840
.build().unwrap()
859-
.request_invoice(payer_pubkey())
841+
.request_invoice(vec![1; 32], payer_pubkey())
860842
.chain(Network::Testnet)
861843
.build_unchecked()
862844
.sign(payer_sign).unwrap();
@@ -875,7 +857,7 @@ mod tests {
875857
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
876858
.amount_msats(1000)
877859
.build().unwrap()
878-
.request_invoice(payer_pubkey())
860+
.request_invoice(vec![1; 32], payer_pubkey())
879861
.build().unwrap()
880862
.sign(payer_sign).unwrap();
881863

@@ -888,7 +870,7 @@ mod tests {
888870

889871
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
890872
.build().unwrap()
891-
.request_invoice(payer_pubkey())
873+
.request_invoice(vec![1; 32], payer_pubkey())
892874
.amount_msats(1000)
893875
.build().unwrap()
894876
.sign(payer_sign).unwrap();
@@ -902,7 +884,7 @@ mod tests {
902884

903885
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
904886
.build().unwrap()
905-
.request_invoice(payer_pubkey())
887+
.request_invoice(vec![1; 32], payer_pubkey())
906888
.build_unchecked()
907889
.sign(payer_sign).unwrap();
908890

@@ -917,7 +899,7 @@ mod tests {
917899
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
918900
.amount_msats(1000)
919901
.build().unwrap()
920-
.request_invoice(payer_pubkey())
902+
.request_invoice(vec![1; 32], payer_pubkey())
921903
.amount_msats(999)
922904
.build_unchecked()
923905
.sign(payer_sign).unwrap();
@@ -933,7 +915,7 @@ mod tests {
933915
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
934916
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 1000 })
935917
.build_unchecked()
936-
.request_invoice(payer_pubkey())
918+
.request_invoice(vec![1; 32], payer_pubkey())
937919
.build_unchecked()
938920
.sign(payer_sign).unwrap();
939921

@@ -956,7 +938,7 @@ mod tests {
956938
.amount_msats(1000)
957939
.supported_quantity(Quantity::one())
958940
.build().unwrap()
959-
.request_invoice(payer_pubkey())
941+
.request_invoice(vec![1; 32], payer_pubkey())
960942
.build().unwrap()
961943
.sign(payer_sign).unwrap();
962944

@@ -971,7 +953,7 @@ mod tests {
971953
.amount_msats(1000)
972954
.supported_quantity(Quantity::one())
973955
.build().unwrap()
974-
.request_invoice(payer_pubkey())
956+
.request_invoice(vec![1; 32], payer_pubkey())
975957
.amount_msats(2_000)
976958
.quantity(2)
977959
.build_unchecked()
@@ -991,7 +973,7 @@ mod tests {
991973
.amount_msats(1000)
992974
.supported_quantity(Quantity::Bounded(ten))
993975
.build().unwrap()
994-
.request_invoice(payer_pubkey())
976+
.request_invoice(vec![1; 32], payer_pubkey())
995977
.amount_msats(10_000)
996978
.quantity(10)
997979
.build().unwrap()
@@ -1008,7 +990,7 @@ mod tests {
1008990
.amount_msats(1000)
1009991
.supported_quantity(Quantity::Bounded(ten))
1010992
.build().unwrap()
1011-
.request_invoice(payer_pubkey())
993+
.request_invoice(vec![1; 32], payer_pubkey())
1012994
.amount_msats(11_000)
1013995
.quantity(11)
1014996
.build_unchecked()
@@ -1026,7 +1008,7 @@ mod tests {
10261008
.amount_msats(1000)
10271009
.supported_quantity(Quantity::Unbounded)
10281010
.build().unwrap()
1029-
.request_invoice(payer_pubkey())
1011+
.request_invoice(vec![1; 32], payer_pubkey())
10301012
.amount_msats(2_000)
10311013
.quantity(2)
10321014
.build().unwrap()
@@ -1043,7 +1025,7 @@ mod tests {
10431025
.amount_msats(1000)
10441026
.supported_quantity(Quantity::Unbounded)
10451027
.build().unwrap()
1046-
.request_invoice(payer_pubkey())
1028+
.request_invoice(vec![1; 32], payer_pubkey())
10471029
.build_unchecked()
10481030
.sign(payer_sign).unwrap();
10491031

@@ -1057,25 +1039,33 @@ mod tests {
10571039
}
10581040

10591041
#[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())
10621044
.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;
10671050

10681051
let mut buffer = Vec::new();
1069-
invoice_request.write(&mut buffer).unwrap();
1052+
tlv_stream.write(&mut buffer).unwrap();
10701053

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+
},
10731059
}
1060+
}
10741061

1062+
#[test]
1063+
fn fails_parsing_invoice_request_without_payer_id() {
10751064
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10761065
.amount_msats(1000)
10771066
.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();
10791069
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10801070
tlv_stream.2.payer_id = None;
10811071

@@ -1089,11 +1079,12 @@ mod tests {
10891079
}
10901080

10911081
#[test]
1092-
fn fails_parsing_invoice_request_with_missing_node_id() {
1082+
fn fails_parsing_invoice_request_without_node_id() {
10931083
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10941084
.amount_msats(1000)
10951085
.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();
10971088
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10981089
tlv_stream.1.node_id = None;
10991090

@@ -1113,7 +1104,7 @@ mod tests {
11131104
let mut invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
11141105
.amount_msats(1000)
11151106
.build().unwrap()
1116-
.request_invoice(payer_pubkey())
1107+
.request_invoice(vec![1; 32], payer_pubkey())
11171108
.build().unwrap()
11181109
.sign(payer_sign).unwrap();
11191110
let last_signature_byte = invoice_request.bytes.last_mut().unwrap();

0 commit comments

Comments
 (0)