Skip to content

Commit 6974cb8

Browse files
committed
f - require payer metadata
1 parent 5a27d68 commit 6974cb8

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
@@ -781,30 +781,12 @@ mod tests {
781781
assert_eq!(tlv_stream.payer_note, Some(&String::from("baz")));
782782
}
783783

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-
802784
#[test]
803785
fn parses_invoice_request_with_chain() {
804786
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
805787
.amount_msats(1000)
806788
.build().unwrap()
807-
.request_invoice(payer_pubkey())
789+
.request_invoice(vec![1; 32], payer_pubkey())
808790
.chain(Network::Bitcoin)
809791
.build().unwrap()
810792
.sign(payer_sign).unwrap();
@@ -819,7 +801,7 @@ mod tests {
819801
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
820802
.amount_msats(1000)
821803
.build().unwrap()
822-
.request_invoice(payer_pubkey())
804+
.request_invoice(vec![1; 32], payer_pubkey())
823805
.chain(Network::Testnet)
824806
.build_unchecked()
825807
.sign(payer_sign).unwrap();
@@ -838,7 +820,7 @@ mod tests {
838820
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
839821
.amount_msats(1000)
840822
.build().unwrap()
841-
.request_invoice(payer_pubkey())
823+
.request_invoice(vec![1; 32], payer_pubkey())
842824
.build().unwrap()
843825
.sign(payer_sign).unwrap();
844826

@@ -851,7 +833,7 @@ mod tests {
851833

852834
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
853835
.build().unwrap()
854-
.request_invoice(payer_pubkey())
836+
.request_invoice(vec![1; 32], payer_pubkey())
855837
.amount_msats(1000)
856838
.build().unwrap()
857839
.sign(payer_sign).unwrap();
@@ -865,7 +847,7 @@ mod tests {
865847

866848
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
867849
.build().unwrap()
868-
.request_invoice(payer_pubkey())
850+
.request_invoice(vec![1; 32], payer_pubkey())
869851
.build_unchecked()
870852
.sign(payer_sign).unwrap();
871853

@@ -880,7 +862,7 @@ mod tests {
880862
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
881863
.amount_msats(1000)
882864
.build().unwrap()
883-
.request_invoice(payer_pubkey())
865+
.request_invoice(vec![1; 32], payer_pubkey())
884866
.amount_msats(999)
885867
.build_unchecked()
886868
.sign(payer_sign).unwrap();
@@ -896,7 +878,7 @@ mod tests {
896878
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
897879
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 1000 })
898880
.build_unchecked()
899-
.request_invoice(payer_pubkey())
881+
.request_invoice(vec![1; 32], payer_pubkey())
900882
.build_unchecked()
901883
.sign(payer_sign).unwrap();
902884

@@ -919,7 +901,7 @@ mod tests {
919901
.amount_msats(1000)
920902
.supported_quantity(Quantity::one())
921903
.build().unwrap()
922-
.request_invoice(payer_pubkey())
904+
.request_invoice(vec![1; 32], payer_pubkey())
923905
.build().unwrap()
924906
.sign(payer_sign).unwrap();
925907

@@ -934,7 +916,7 @@ mod tests {
934916
.amount_msats(1000)
935917
.supported_quantity(Quantity::one())
936918
.build().unwrap()
937-
.request_invoice(payer_pubkey())
919+
.request_invoice(vec![1; 32], payer_pubkey())
938920
.amount_msats(2_000)
939921
.quantity(2)
940922
.build_unchecked()
@@ -954,7 +936,7 @@ mod tests {
954936
.amount_msats(1000)
955937
.supported_quantity(Quantity::Bounded(ten))
956938
.build().unwrap()
957-
.request_invoice(payer_pubkey())
939+
.request_invoice(vec![1; 32], payer_pubkey())
958940
.amount_msats(10_000)
959941
.quantity(10)
960942
.build().unwrap()
@@ -971,7 +953,7 @@ mod tests {
971953
.amount_msats(1000)
972954
.supported_quantity(Quantity::Bounded(ten))
973955
.build().unwrap()
974-
.request_invoice(payer_pubkey())
956+
.request_invoice(vec![1; 32], payer_pubkey())
975957
.amount_msats(11_000)
976958
.quantity(11)
977959
.build_unchecked()
@@ -989,7 +971,7 @@ mod tests {
989971
.amount_msats(1000)
990972
.supported_quantity(Quantity::Unbounded)
991973
.build().unwrap()
992-
.request_invoice(payer_pubkey())
974+
.request_invoice(vec![1; 32], payer_pubkey())
993975
.amount_msats(2_000)
994976
.quantity(2)
995977
.build().unwrap()
@@ -1006,7 +988,7 @@ mod tests {
1006988
.amount_msats(1000)
1007989
.supported_quantity(Quantity::Unbounded)
1008990
.build().unwrap()
1009-
.request_invoice(payer_pubkey())
991+
.request_invoice(vec![1; 32], payer_pubkey())
1010992
.build_unchecked()
1011993
.sign(payer_sign).unwrap();
1012994

@@ -1020,25 +1002,33 @@ mod tests {
10201002
}
10211003

10221004
#[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())
10251007
.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;
10301013

10311014
let mut buffer = Vec::new();
1032-
invoice_request.write(&mut buffer).unwrap();
1015+
tlv_stream.write(&mut buffer).unwrap();
10331016

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+
},
10361022
}
1023+
}
10371024

1025+
#[test]
1026+
fn fails_parsing_invoice_request_without_payer_id() {
10381027
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10391028
.amount_msats(1000)
10401029
.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();
10421032
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10431033
tlv_stream.2.payer_id = None;
10441034

@@ -1052,11 +1042,12 @@ mod tests {
10521042
}
10531043

10541044
#[test]
1055-
fn fails_parsing_invoice_request_with_missing_node_id() {
1045+
fn fails_parsing_invoice_request_without_node_id() {
10561046
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10571047
.amount_msats(1000)
10581048
.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();
10601051
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10611052
tlv_stream.1.node_id = None;
10621053

@@ -1076,7 +1067,7 @@ mod tests {
10761067
let mut invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
10771068
.amount_msats(1000)
10781069
.build().unwrap()
1079-
.request_invoice(payer_pubkey())
1070+
.request_invoice(vec![1; 32], payer_pubkey())
10801071
.build().unwrap()
10811072
.sign(payer_sign).unwrap();
10821073
let last_signature_byte = invoice_request.bytes.last_mut().unwrap();

0 commit comments

Comments
 (0)