1. Introduced reply_path in BOLT12Invoices to address a gap in error handling.
Previously, if a BOLT12Invoice sent in the offers flow generated an Invoice Error,
the payer had no way to send this error back to the payee.
2. By adding a reply_path to the Invoice Message, the payer can now communicate
any errors back to the payee, ensuring better error handling and communication
within the offers flow.
};
match response {
- Ok(invoice) => Some((OffersMessage::Invoice(invoice), responder.respond())),
+ Ok(invoice) => {
+ let nonce = Nonce::from_entropy_source(&*self.entropy_source);
+ let hmac = payment_hash.hmac_for_offer_payment(nonce, expanded_key);
+ let context = MessageContext::Offers(OffersContext::InboundPayment { payment_hash, nonce, hmac });
+ Some((OffersMessage::Invoice(invoice), responder.respond_with_reply_path(context)))
+ },
Err(error) => Some((OffersMessage::InvoiceError(error.into()), responder.respond())),
}
},