Skip to content

Commit 378385a

Browse files
committed
f - require payer metadata
1 parent d562ee8 commit 378385a

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

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-
819801
#[test]
820802
fn parses_invoice_request_with_chain() {
821803
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
822804
.amount_msats(1000)
823805
.build().unwrap()
824-
.request_invoice(payer_pubkey())
806+
.request_invoice(vec![1; 32], payer_pubkey())
825807
.chain(Network::Bitcoin)
826808
.build().unwrap()
827809
.sign(payer_sign).unwrap();
@@ -836,7 +818,7 @@ mod tests {
836818
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
837819
.amount_msats(1000)
838820
.build().unwrap()
839-
.request_invoice(payer_pubkey())
821+
.request_invoice(vec![1; 32], payer_pubkey())
840822
.chain(Network::Testnet)
841823
.build_unchecked()
842824
.sign(payer_sign).unwrap();
@@ -855,7 +837,7 @@ mod tests {
855837
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
856838
.amount_msats(1000)
857839
.build().unwrap()
858-
.request_invoice(payer_pubkey())
840+
.request_invoice(vec![1; 32], payer_pubkey())
859841
.build().unwrap()
860842
.sign(payer_sign).unwrap();
861843

@@ -868,7 +850,7 @@ mod tests {
868850

869851
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
870852
.build().unwrap()
871-
.request_invoice(payer_pubkey())
853+
.request_invoice(vec![1; 32], payer_pubkey())
872854
.amount_msats(1000)
873855
.build().unwrap()
874856
.sign(payer_sign).unwrap();
@@ -882,7 +864,7 @@ mod tests {
882864

883865
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
884866
.build().unwrap()
885-
.request_invoice(payer_pubkey())
867+
.request_invoice(vec![1; 32], payer_pubkey())
886868
.build_unchecked()
887869
.sign(payer_sign).unwrap();
888870

@@ -897,7 +879,7 @@ mod tests {
897879
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
898880
.amount_msats(1000)
899881
.build().unwrap()
900-
.request_invoice(payer_pubkey())
882+
.request_invoice(vec![1; 32], payer_pubkey())
901883
.amount_msats(999)
902884
.build_unchecked()
903885
.sign(payer_sign).unwrap();
@@ -913,7 +895,7 @@ mod tests {
913895
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
914896
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 1000 })
915897
.build_unchecked()
916-
.request_invoice(payer_pubkey())
898+
.request_invoice(vec![1; 32], payer_pubkey())
917899
.build_unchecked()
918900
.sign(payer_sign).unwrap();
919901

@@ -936,7 +918,7 @@ mod tests {
936918
.amount_msats(1000)
937919
.supported_quantity(Quantity::one())
938920
.build().unwrap()
939-
.request_invoice(payer_pubkey())
921+
.request_invoice(vec![1; 32], payer_pubkey())
940922
.build().unwrap()
941923
.sign(payer_sign).unwrap();
942924

@@ -951,7 +933,7 @@ mod tests {
951933
.amount_msats(1000)
952934
.supported_quantity(Quantity::one())
953935
.build().unwrap()
954-
.request_invoice(payer_pubkey())
936+
.request_invoice(vec![1; 32], payer_pubkey())
955937
.amount_msats(2_000)
956938
.quantity(2)
957939
.build_unchecked()
@@ -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(10_000)
976958
.quantity(10)
977959
.build().unwrap()
@@ -988,7 +970,7 @@ mod tests {
988970
.amount_msats(1000)
989971
.supported_quantity(Quantity::Bounded(ten))
990972
.build().unwrap()
991-
.request_invoice(payer_pubkey())
973+
.request_invoice(vec![1; 32], payer_pubkey())
992974
.amount_msats(11_000)
993975
.quantity(11)
994976
.build_unchecked()
@@ -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
.amount_msats(2_000)
1011993
.quantity(2)
1012994
.build().unwrap()
@@ -1023,7 +1005,7 @@ mod tests {
10231005
.amount_msats(1000)
10241006
.supported_quantity(Quantity::Unbounded)
10251007
.build().unwrap()
1026-
.request_invoice(payer_pubkey())
1008+
.request_invoice(vec![1; 32], payer_pubkey())
10271009
.build_unchecked()
10281010
.sign(payer_sign).unwrap();
10291011

@@ -1037,25 +1019,33 @@ mod tests {
10371019
}
10381020

10391021
#[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())
10421024
.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;
10471030

10481031
let mut buffer = Vec::new();
1049-
invoice_request.write(&mut buffer).unwrap();
1032+
tlv_stream.write(&mut buffer).unwrap();
10501033

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+
},
10531039
}
1040+
}
10541041

1042+
#[test]
1043+
fn fails_parsing_invoice_request_without_payer_id() {
10551044
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10561045
.amount_msats(1000)
10571046
.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();
10591049
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10601050
tlv_stream.2.payer_id = None;
10611051

@@ -1069,11 +1059,12 @@ mod tests {
10691059
}
10701060

10711061
#[test]
1072-
fn fails_parsing_invoice_request_with_missing_node_id() {
1062+
fn fails_parsing_invoice_request_without_node_id() {
10731063
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
10741064
.amount_msats(1000)
10751065
.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();
10771068
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
10781069
tlv_stream.1.node_id = None;
10791070

@@ -1093,7 +1084,7 @@ mod tests {
10931084
let mut invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
10941085
.amount_msats(1000)
10951086
.build().unwrap()
1096-
.request_invoice(payer_pubkey())
1087+
.request_invoice(vec![1; 32], payer_pubkey())
10971088
.build().unwrap()
10981089
.sign(payer_sign).unwrap();
10991090
let last_signature_byte = invoice_request.bytes.last_mut().unwrap();

0 commit comments

Comments
 (0)