cashu/nuts/nut08.rs
1//! NUT-08: Lightning fee return
2//!
3//! <https://github.com/cashubtc/nuts/blob/main/08.md>
4
5use super::nut05::MeltRequest;
6use super::nut23::MeltQuoteBolt11Response;
7use crate::Amount;
8
9impl<Q> MeltRequest<Q> {
10 /// Total output [`Amount`]
11 pub fn output_amount(&self) -> Option<Amount> {
12 self.outputs()
13 .as_ref()
14 .and_then(|o| Amount::try_sum(o.iter().map(|proof| proof.amount)).ok())
15 }
16}
17
18impl<Q> MeltQuoteBolt11Response<Q> {
19 /// Total change [`Amount`]
20 pub fn change_amount(&self) -> Option<Amount> {
21 self.change
22 .as_ref()
23 .and_then(|o| Amount::try_sum(o.iter().map(|proof| proof.amount)).ok())
24 }
25}