nut08.rs 689 B

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