Skip to content

Commit dcf20dd

Browse files
committed
f - require payer metadata
1 parent 4d4af16 commit dcf20dd

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

lightning/src/offers/invoice_request.rs

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -883,8 +883,7 @@ mod tests {
883883
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
884884
.amount_msats(1000)
885885
.build().unwrap()
886-
.request_invoice(payer_pubkey())
887-
.metadata(vec![42; 32])
886+
.request_invoice(vec![42; 32], payer_pubkey())
888887
.build().unwrap()
889888
.sign(payer_sign).unwrap();
890889

@@ -901,7 +900,7 @@ mod tests {
901900
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
902901
.amount_msats(1000)
903902
.build().unwrap()
904-
.request_invoice(payer_pubkey())
903+
.request_invoice(vec![1; 32], payer_pubkey())
905904
.chain(Network::Bitcoin)
906905
.build().unwrap()
907906
.sign(payer_sign).unwrap();
@@ -916,7 +915,7 @@ mod tests {
916915
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
917916
.amount_msats(1000)
918917
.build().unwrap()
919-
.request_invoice(payer_pubkey())
918+
.request_invoice(vec![1; 32], payer_pubkey())
920919
.chain(Network::Testnet)
921920
.build_unchecked()
922921
.sign(payer_sign).unwrap();
@@ -935,7 +934,7 @@ mod tests {
935934
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
936935
.amount_msats(1000)
937936
.build().unwrap()
938-
.request_invoice(payer_pubkey())
937+
.request_invoice(vec![1; 32], payer_pubkey())
939938
.build().unwrap()
940939
.sign(payer_sign).unwrap();
941940

@@ -948,7 +947,7 @@ mod tests {
948947

949948
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
950949
.build().unwrap()
951-
.request_invoice(payer_pubkey())
950+
.request_invoice(vec![1; 32], payer_pubkey())
952951
.amount_msats(1000)
953952
.build().unwrap()
954953
.sign(payer_sign).unwrap();
@@ -962,7 +961,7 @@ mod tests {
962961

963962
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
964963
.build().unwrap()
965-
.request_invoice(payer_pubkey())
964+
.request_invoice(vec![1; 32], payer_pubkey())
966965
.build_unchecked()
967966
.sign(payer_sign).unwrap();
968967

@@ -977,7 +976,7 @@ mod tests {
977976
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
978977
.amount_msats(1000)
979978
.build().unwrap()
980-
.request_invoice(payer_pubkey())
979+
.request_invoice(vec![1; 32], payer_pubkey())
981980
.amount_msats(999)
982981
.build_unchecked()
983982
.sign(payer_sign).unwrap();
@@ -993,7 +992,7 @@ mod tests {
993992
let invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
994993
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 1000 })
995994
.build_unchecked()
996-
.request_invoice(payer_pubkey())
995+
.request_invoice(vec![1; 32], payer_pubkey())
997996
.build_unchecked()
998997
.sign(payer_sign).unwrap();
999998

@@ -1016,7 +1015,7 @@ mod tests {
10161015
.amount_msats(1000)
10171016
.supported_quantity(Quantity::one())
10181017
.build().unwrap()
1019-
.request_invoice(payer_pubkey())
1018+
.request_invoice(vec![1; 32], payer_pubkey())
10201019
.build().unwrap()
10211020
.sign(payer_sign).unwrap();
10221021

@@ -1031,7 +1030,7 @@ mod tests {
10311030
.amount_msats(1000)
10321031
.supported_quantity(Quantity::one())
10331032
.build().unwrap()
1034-
.request_invoice(payer_pubkey())
1033+
.request_invoice(vec![1; 32], payer_pubkey())
10351034
.amount_msats(2_000)
10361035
.quantity(2)
10371036
.build_unchecked()
@@ -1051,7 +1050,7 @@ mod tests {
10511050
.amount_msats(1000)
10521051
.supported_quantity(Quantity::Bounded(ten))
10531052
.build().unwrap()
1054-
.request_invoice(payer_pubkey())
1053+
.request_invoice(vec![1; 32], payer_pubkey())
10551054
.amount_msats(10_000)
10561055
.quantity(10)
10571056
.build().unwrap()
@@ -1068,7 +1067,7 @@ mod tests {
10681067
.amount_msats(1000)
10691068
.supported_quantity(Quantity::Bounded(ten))
10701069
.build().unwrap()
1071-
.request_invoice(payer_pubkey())
1070+
.request_invoice(vec![1; 32], payer_pubkey())
10721071
.amount_msats(11_000)
10731072
.quantity(11)
10741073
.build_unchecked()
@@ -1086,7 +1085,7 @@ mod tests {
10861085
.amount_msats(1000)
10871086
.supported_quantity(Quantity::Unbounded)
10881087
.build().unwrap()
1089-
.request_invoice(payer_pubkey())
1088+
.request_invoice(vec![1; 32], payer_pubkey())
10901089
.amount_msats(2_000)
10911090
.quantity(2)
10921091
.build().unwrap()
@@ -1103,7 +1102,7 @@ mod tests {
11031102
.amount_msats(1000)
11041103
.supported_quantity(Quantity::Unbounded)
11051104
.build().unwrap()
1106-
.request_invoice(payer_pubkey())
1105+
.request_invoice(vec![1; 32], payer_pubkey())
11071106
.build_unchecked()
11081107
.sign(payer_sign).unwrap();
11091108

@@ -1117,25 +1116,33 @@ mod tests {
11171116
}
11181117

11191118
#[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())
11221121
.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;
11271127

11281128
let mut buffer = Vec::new();
1129-
invoice_request.write(&mut buffer).unwrap();
1129+
tlv_stream.write(&mut buffer).unwrap();
11301130

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+
},
11331136
}
1137+
}
11341138

1139+
#[test]
1140+
fn fails_parsing_invoice_request_without_payer_id() {
11351141
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
11361142
.amount_msats(1000)
11371143
.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();
11391146
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
11401147
tlv_stream.2.payer_id = None;
11411148

@@ -1149,11 +1156,12 @@ mod tests {
11491156
}
11501157

11511158
#[test]
1152-
fn fails_parsing_invoice_request_with_missing_node_id() {
1159+
fn fails_parsing_invoice_request_without_node_id() {
11531160
let offer = OfferBuilder::new("foo".into(), recipient_pubkey())
11541161
.amount_msats(1000)
11551162
.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();
11571165
let mut tlv_stream = unsigned_invoice_request.invoice_request.as_tlv_stream();
11581166
tlv_stream.1.node_id = None;
11591167

@@ -1173,7 +1181,7 @@ mod tests {
11731181
let mut invoice_request = OfferBuilder::new("foo".into(), recipient_pubkey())
11741182
.amount_msats(1000)
11751183
.build().unwrap()
1176-
.request_invoice(payer_pubkey())
1184+
.request_invoice(vec![1; 32], payer_pubkey())
11771185
.build().unwrap()
11781186
.sign(payer_sign).unwrap();
11791187
let last_signature_byte = invoice_request.bytes.last_mut().unwrap();

0 commit comments

Comments
 (0)