Browse Source

Minor rewrites for clarity in melt.rs

ok300 4 months ago
parent
commit
c91297aac6
1 changed files with 18 additions and 40 deletions
  1. 18 40
      crates/cdk/src/mint/melt.rs

+ 18 - 40
crates/cdk/src/mint/melt.rs

@@ -34,36 +34,20 @@ impl Mint {
             return Err(Error::MeltingDisabled);
         }
 
-        match nut05.get_settings(&unit, &method) {
-            Some(settings) => {
-                if settings
-                    .max_amount
-                    .map_or(false, |max_amount| amount > max_amount)
-                {
-                    return Err(Error::AmountOutofLimitRange(
-                        settings.min_amount.unwrap_or_default(),
-                        settings.max_amount.unwrap_or_default(),
-                        amount,
-                    ));
-                }
-
-                if settings
-                    .min_amount
-                    .map_or(false, |min_amount| amount < min_amount)
-                {
-                    return Err(Error::AmountOutofLimitRange(
-                        settings.min_amount.unwrap_or_default(),
-                        settings.max_amount.unwrap_or_default(),
-                        amount,
-                    ));
-                }
-            }
-            None => {
-                return Err(Error::UnitUnsupported);
-            }
+        let settings = nut05
+            .get_settings(&unit, &method)
+            .ok_or(Error::UnitUnsupported)?;
+
+        let is_above_max = matches!(settings.max_amount, Some(max) if amount > max);
+        let is_below_min = matches!(settings.min_amount, Some(min) if amount < min);
+        match is_above_max || is_below_min {
+            true => Err(Error::AmountOutofLimitRange(
+                settings.min_amount.unwrap_or_default(),
+                settings.max_amount.unwrap_or_default(),
+                amount,
+            )),
+            false => Ok(()),
         }
-
-        Ok(())
     }
 
     /// Get melt bolt11 quote
@@ -252,17 +236,11 @@ impl Mint {
             .await?;
 
         match state {
-            MeltQuoteState::Unpaid | MeltQuoteState::Failed => (),
-            MeltQuoteState::Pending => {
-                return Err(Error::PendingQuote);
-            }
-            MeltQuoteState::Paid => {
-                return Err(Error::PaidQuote);
-            }
-            MeltQuoteState::Unknown => {
-                return Err(Error::UnknownPaymentState);
-            }
-        }
+            MeltQuoteState::Unpaid | MeltQuoteState::Failed => Ok(()),
+            MeltQuoteState::Pending => Err(Error::PendingQuote),
+            MeltQuoteState::Paid => Err(Error::PaidQuote),
+            MeltQuoteState::Unknown => Err(Error::UnknownPaymentState),
+        }?;
 
         let ys = melt_request.inputs.ys()?;