|
|
@@ -135,12 +135,11 @@ impl Darkfid {
|
|
|
}
|
|
|
|
|
|
// --> {"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 {
|
|
|
- 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 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() {
|
|
|
let id: jubjub::Fr = deserialize(&id)?;
|
|
|
@@ -152,24 +151,13 @@ impl Darkfid {
|
|
|
// network = solana
|
|
|
|
|
|
let network = "solana";
|
|
|
- let mut data_vec: Vec<String> = Vec::new();
|
|
|
|
|
|
if let Some(symbol) = self.drk_tokenlist.symbol_from_id(id)? {
|
|
|
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;
|
|
|
match result {
|