Skip to content

Commit 2630fc8

Browse files
committed
f - make signing_pubkey a non-Option again
1 parent 431e3ea commit 2630fc8

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

lightning/src/offers/offer.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ impl OfferBuilder {
122122
/// Use a different pubkey per offer to avoid correlating offers.
123123
pub fn new(description: String, signing_pubkey: SigningPubkey) -> Self {
124124
let (metadata_material, signing_pubkey) = match signing_pubkey {
125-
SigningPubkey::Explicit(pubkey) => (None, Some(pubkey)),
125+
SigningPubkey::Explicit(pubkey) => (None, pubkey),
126126
SigningPubkey::Derived(expanded_key, nonce) => {
127127
let metadata_material = (nonce, expanded_key.hmac_for_offer(nonce));
128128
let signing_pubkey = expanded_key.signing_pubkey_for_offer(nonce);
129-
(Some(metadata_material), Some(signing_pubkey))
129+
(Some(metadata_material), signing_pubkey)
130130
},
131131
};
132132
let offer = OfferContents {
@@ -156,9 +156,10 @@ impl OfferBuilder {
156156
/// Sets the [`Offer::metadata`] to the given bytes.
157157
///
158158
/// Successive calls to this method will override the previous setting. Errors if the builder
159-
/// was constructed with [`SigningPubkey::Derived`].
159+
/// was constructed with [`SigningPubkey::Derived`] or if [`OfferBuilder::metadata_derived`] was
160+
/// called.
160161
pub fn metadata(mut self, metadata: Vec<u8>) -> Result<Self, SemanticError> {
161-
if self.offer.signing_pubkey.is_none() {
162+
if self.metadata_material.is_some() {
162163
return Err(SemanticError::UnexpectedMetadata);
163164
}
164165

@@ -263,10 +264,6 @@ impl OfferBuilder {
263264
self.offer.metadata = Some(metadata);
264265
}
265266

266-
if self.offer.signing_pubkey.is_none() {
267-
return Err(SemanticError::MissingSigningPubkey);
268-
}
269-
270267
let mut bytes = Vec::new();
271268
self.offer.write(&mut bytes).unwrap();
272269

@@ -328,7 +325,7 @@ pub(super) struct OfferContents {
328325
issuer: Option<String>,
329326
paths: Option<Vec<BlindedPath>>,
330327
supported_quantity: Quantity,
331-
signing_pubkey: Option<PublicKey>,
328+
signing_pubkey: PublicKey,
332329
}
333330

334331
impl Offer {
@@ -542,7 +539,7 @@ impl OfferContents {
542539
}
543540

544541
pub(super) fn signing_pubkey(&self) -> PublicKey {
545-
self.signing_pubkey.unwrap()
542+
self.signing_pubkey
546543
}
547544

548545
/// Verifies that the offer metadata was produced from the offer in the TLV stream.
@@ -595,7 +592,7 @@ impl OfferContents {
595592
paths: self.paths.as_ref(),
596593
issuer: self.issuer.as_ref(),
597594
quantity_max: self.supported_quantity.to_tlv_record(),
598-
node_id: self.signing_pubkey.as_ref(),
595+
node_id: Some(&self.signing_pubkey),
599596
}
600597
}
601598
}
@@ -740,7 +737,7 @@ impl TryFrom<OfferTlvStream> for OfferContents {
740737

741738
let signing_pubkey = match node_id {
742739
None => return Err(SemanticError::MissingSigningPubkey),
743-
Some(node_id) => Some(node_id),
740+
Some(node_id) => node_id,
744741
};
745742

746743
Ok(OfferContents {

0 commit comments

Comments
 (0)