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::{MeltBolt11Request, MeltQuoteBolt11Response};
6use crate::Amount;
7
8impl<Q> MeltBolt11Request<Q> {
9    /// Total output [`Amount`]
10    pub fn output_amount(&self) -> Option<Amount> {
11        self.outputs()
12            .as_ref()
13            .and_then(|o| Amount::try_sum(o.iter().map(|proof| proof.amount)).ok())
14    }
15}
16
17impl<Q> MeltQuoteBolt11Response<Q> {
18    /// Total change [`Amount`]
19    pub fn change_amount(&self) -> Option<Amount> {
20        self.change
21            .as_ref()
22            .and_then(|o| Amount::try_sum(o.iter().map(|proof| proof.amount)).ok())
23    }
24}