Procházet zdrojové kódy

cashierd: clean up

ghassmo před 4 roky
rodič
revize
27a4434fb1
1 změnil soubory, kde provedl 46 přidání a 56 odebrání
  1. 46 56
      src/bin/cashierd.rs

+ 46 - 56
src/bin/cashierd.rs

@@ -208,35 +208,30 @@ impl Cashierd {
             return JsonResult::Err(jsonerr(InvalidParams, None, id));
         }
 
-        let network = &args[0];
-        let mint_address = &args[1];
-        let drk_pub_key = &args[2];
-
-        if network.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
-        }
-
-        let network = network.as_str().unwrap();
-
-        let network = match NetworkName::from_str(network) {
-            Ok(d) => d,
-            Err(e) => {
-                return JsonResult::Err(jsonerr(InvalidNetworkParam, Some(e.to_string()), id));
+        let network: NetworkName;
+        let mut mint_address: &str;
+        let drk_pub_key: &str;
+
+        match (args[0].as_str(), args[1].as_str(), args[2].as_str()) {
+            (Some(n), Some(m), Some(d)) => {
+                if NetworkName::from_str(n).is_err() {
+                    return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
+                }
+                network = NetworkName::from_str(n).unwrap();
+                mint_address = m;
+                drk_pub_key = d;
+            }
+            (None, _, _) => {
+                return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
+            }
+            (_, None, _) => {
+                return JsonResult::Err(jsonerr(InvalidTokenIdParam, None, id));
+            }
+            (_, _, None) => {
+                return JsonResult::Err(jsonerr(InvalidAddressParam, None, id));
             }
-        };
-
-        if mint_address.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidTokenIdParam, None, id));
-        }
-
-        let mut mint_address = mint_address.as_str().unwrap().to_string();
-
-        if drk_pub_key.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidAddressParam, None, id));
         }
 
-        let drk_pub_key = drk_pub_key.as_str().unwrap();
-
         // Check if the features list contains this network
         if self
             .networks
@@ -257,7 +252,7 @@ impl Cashierd {
             let mint_address_opt = Self::check_token_id(&network, &mint_address)?;
 
             if mint_address_opt.is_none() {
-                mint_address = String::new();
+                mint_address = "";
             }
             let drk_pub_key = bs58::decode(&drk_pub_key).into_vec()?;
             let drk_pub_key: jubjub::SubgroupPoint = deserialize(&drk_pub_key)?;
@@ -319,7 +314,7 @@ impl Cashierd {
                         &serialize(&token_key.public_key),
                         &network,
                         &token_id,
-                        mint_address,
+                        mint_address.into(),
                     )?;
 
                     return Ok(token_key.public_key);
@@ -349,35 +344,30 @@ impl Cashierd {
             return JsonResult::Err(jsonerr(InvalidParams, None, id));
         }
 
-        let network = &args[0];
-        let mint_address = &args[1];
-        let address = &args[2];
-        let amount = &args[3];
+        let network: NetworkName;
+        let mut mint_address: &str;
+        let address: &str;
 
-        if network.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
-        }
-
-        let network = NetworkName::from_str(args[0].as_str().unwrap()).unwrap();
-
-        if mint_address.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidTokenIdParam, None, id));
-        }
-
-        let mut mint_address = mint_address.as_str().unwrap().to_string();
-
-        if address.as_str().is_none() {
-            return JsonResult::Err(jsonerr(InvalidAddressParam, None, id));
-        }
-
-        let address = address.as_str().unwrap();
-
-        if amount.as_u64().is_none() {
-            return JsonResult::Err(jsonerr(InvalidAmountParam, None, id));
+        match (args[0].as_str(), args[1].as_str(), args[2].as_str()) {
+            (Some(n), Some(m), Some(a)) => {
+                if NetworkName::from_str(n).is_err() {
+                    return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
+                }
+                network = NetworkName::from_str(n).unwrap();
+                mint_address = m;
+                address = a;
+            }
+            (None, _, _) => {
+                return JsonResult::Err(jsonerr(InvalidNetworkParam, None, id));
+            }
+            (_, None, _) => {
+                return JsonResult::Err(jsonerr(InvalidTokenIdParam, None, id));
+            }
+            (_, _, None) => {
+                return JsonResult::Err(jsonerr(InvalidAddressParam, None, id));
+            }
         }
 
-        let _amount = amount.as_u64().unwrap();
-
         // Check if the features list contains this network
         if self
             .networks
@@ -399,7 +389,7 @@ impl Cashierd {
 
             if mint_address_opt.is_none() {
                 // empty string
-                mint_address = String::new();
+                mint_address = "";
             }
 
             let address = serialize(&address.to_string());
@@ -422,7 +412,7 @@ impl Cashierd {
                     &cashier_secret,
                     &network,
                     &token_id,
-                    mint_address,
+                    mint_address.into(),
                 )?;
             }