From 8b60b0f8d1b3b6ce9ccc838d813dbe4c46cbfedb Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Wed, 29 Apr 2020 20:29:32 +0700
Subject: [PATCH] [*] Fix. Now the function of receiving the balance takes as
 an argument the name of the currency, the number of which on the wallet needs
 to be returned.

---
 dap_chain_wallet.c | 15 +++------------
 dap_chain_wallet.h |  2 +-
 2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/dap_chain_wallet.c b/dap_chain_wallet.c
index bb0164f..0b30adb 100755
--- a/dap_chain_wallet.c
+++ b/dap_chain_wallet.c
@@ -412,7 +412,7 @@ dap_chain_wallet_t * dap_chain_wallet_open(const char * a_wallet_name, const cha
  * @param a_net_id
  * @return
  */
-uint64_t dap_chain_wallet_get_balance(dap_chain_wallet_t *a_wallet, dap_chain_net_id_t a_net_id)
+uint64_t dap_chain_wallet_get_balance(dap_chain_wallet_t *a_wallet, dap_chain_net_id_t a_net_id, char *a_token_ticker)
 {
     dap_chain_net_t *l_net = dap_chain_net_by_id(a_net_id);
     dap_chain_addr_t *l_addr =dap_chain_wallet_get_addr(a_wallet, a_net_id);
@@ -420,16 +420,7 @@ uint64_t dap_chain_wallet_get_balance(dap_chain_wallet_t *a_wallet, dap_chain_ne
     if (l_net)
     {
         dap_ledger_t *l_ledger = l_net->pub.ledger;
-        size_t l_addr_tokens_size = 0;
-        char **l_addr_tokens = NULL;
-        dap_chain_ledger_addr_get_token_ticker_all_fast(l_ledger, l_addr, &l_addr_tokens, &l_addr_tokens_size);
-        for(size_t i = 0; i < l_addr_tokens_size; i++) {
-                if(l_addr_tokens[i]) {
-                     l_balance = l_balance + dap_chain_ledger_calc_balance(l_ledger, l_addr, l_addr_tokens[i]);
-                }
-                DAP_DELETE(l_addr_tokens[i]);
-            }
-        DAP_DELETE(l_addr_tokens);
-        }
+        l_balance = dap_chain_ledger_calc_balance(l_ledger, l_addr, a_token_ticker);
+    }
     return l_balance;
 }
diff --git a/dap_chain_wallet.h b/dap_chain_wallet.h
index b4cc933..c58ca63 100755
--- a/dap_chain_wallet.h
+++ b/dap_chain_wallet.h
@@ -58,6 +58,6 @@ size_t dap_chain_wallet_get_certs_number( dap_chain_wallet_t * a_wallet);
 dap_pkey_t * dap_chain_wallet_get_pkey( dap_chain_wallet_t * a_wallet,uint32_t a_key_idx);
 dap_enc_key_t * dap_chain_wallet_get_key( dap_chain_wallet_t * a_wallet,uint32_t a_key_idx);
 
-uint64_t dap_chain_wallet_get_balance(dap_chain_wallet_t *a_wallet, dap_chain_net_id_t a_net_id);
+uint64_t dap_chain_wallet_get_balance(dap_chain_wallet_t *a_wallet, dap_chain_net_id_t a_net_id, char *a_token_ticker);
 
 int dap_chain_wallet_save_file( dap_chain_wallet_t * a_wallet);
-- 
GitLab