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}