Просмотр исходного кода

darkfid: more clean up in get_balances() function

ghassmo 4 лет назад
Родитель
Сommit
b8c05892c4
2 измененных файлов с 6 добавлено и 18 удалено
  1. 5 17
      src/bin/darkfid.rs
  2. 1 1
      src/bin/drk.rs

+ 5 - 17
src/bin/darkfid.rs

@@ -135,12 +135,11 @@ impl Darkfid {
     }
     }
 
 
     // --> {"method": "get_balances", "params": []}
     // --> {"method": "get_balances", "params": []}
-    // <-- {"result": "get_balances": "[token: btc, value: 0]"}
+    // <-- {"result": "get_balances": "[ {"btc": (value, network)}, .. ]"}
     async fn get_balances(&self, id: Value, _params: Value) -> JsonResult {
     async fn get_balances(&self, id: Value, _params: Value) -> JsonResult {
-        let result: Result<HashMap<String, Vec<String>>> = async {
+        let result: Result<HashMap<String, (String, String)>> = async {
             let balances = self.client.lock().await.get_balances().await?;
             let balances = self.client.lock().await.get_balances().await?;
-            let mut symbols: Vec<String> = Vec::new();
-            let mut data: Vec<Vec<String>> = Vec::new();
+            let mut symbols: HashMap<String, (String, String)> = HashMap::new();
 
 
             for (id, value) in balances.iter() {
             for (id, value) in balances.iter() {
                 let id: jubjub::Fr = deserialize(&id)?;
                 let id: jubjub::Fr = deserialize(&id)?;
@@ -152,24 +151,13 @@ impl Darkfid {
                 //          network = solana
                 //          network = solana
 
 
                 let network = "solana";
                 let network = "solana";
-                let mut data_vec: Vec<String> = Vec::new();
 
 
                 if let Some(symbol) = self.drk_tokenlist.symbol_from_id(id)? {
                 if let Some(symbol) = self.drk_tokenlist.symbol_from_id(id)? {
                     let amount = encode_base10(*value, 8);
                     let amount = encode_base10(*value, 8);
-                    data_vec.push(amount);
-                    data_vec.push(network.to_string());
-                    data.push(data_vec);
-                    symbols.push(symbol);
+                    symbols.insert(symbol, (amount, network.to_string()));
                 }
                 }
             }
             }
-
-            let new_balances: HashMap<String, Vec<String>> = symbols
-                .into_iter()
-                .zip(data.into_iter())
-                .map(|(key, value)| return (key.clone(), value.clone()))
-                .collect::<HashMap<String, Vec<String>>>();
-
-            Ok(new_balances)
+            Ok(symbols)
         }
         }
         .await;
         .await;
         match result {
         match result {

+ 1 - 1
src/bin/drk.rs

@@ -101,7 +101,7 @@ impl Drk {
     }
     }
 
 
     // --> {"method": "get_balances", "params": []}
     // --> {"method": "get_balances", "params": []}
-    // <-- {"result": "get_balances": "[token: btc, value: 0]"}
+    // <-- {"result": "get_balances": "[ {"btc": (value, network)}, .. ]"}
     async fn get_balances(&self) -> Result<Value> {
     async fn get_balances(&self) -> Result<Value> {
         let req = jsonrpc::request(json!("get_balances"), json!([]));
         let req = jsonrpc::request(json!("get_balances"), json!([]));
         Ok(self.request(req).await?)
         Ok(self.request(req).await?)