From 736238a661664557d66e5ac7ec0b6d29b51621f7 Mon Sep 17 00:00:00 2001
From: "oljas.jarasbaev" <oljas.jarasbaev@demlabs.net>
Date: Thu, 3 Oct 2024 06:56:08 +0000
Subject: [PATCH] [*] fix wal activation

---
 modules/net/dap_chain_node_cli_cmd.c | 8 ++++++--
 modules/wallet/dap_chain_wallet.c    | 6 ++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 89046097c6..2aa446bd15 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -2083,11 +2083,15 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE;
                         break;
                     case -EBUSY:
                         dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_TX_WALLET_ALREADY_ERR,
-                                               "Error: wallet %s is already %sactivated\n", l_wallet_name, l_prefix);
+                                               "Wallet %s is already %sactivated\n", l_wallet_name, l_prefix);
                         break;
                     case -EAGAIN:
                         dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_TX_WALLET_PASS_ERR,
-                                "Error: wrong password for wallet %s\n", l_wallet_name);
+                                "Wrong password for wallet %s\n", l_wallet_name);
+                        break;
+                    case -101:
+                        dap_json_rpc_error_add(DAP_CHAIN_NODE_CLI_COM_TX_WALLET_PASS_ERR,
+                                "Can't activate unprotected wallet %s\n", l_wallet_name);
                         break;
                     default: {
                         char l_buf[512] = { '\0' };
diff --git a/modules/wallet/dap_chain_wallet.c b/modules/wallet/dap_chain_wallet.c
index 3898692229..0797c8b6f1 100644
--- a/modules/wallet/dap_chain_wallet.c
+++ b/modules/wallet/dap_chain_wallet.c
@@ -169,6 +169,12 @@ char *c_wallets_path;
         memset(l_prec->pass, 0, l_prec->pass_len), l_prec->pass_len = 0;    /* Say <what> again ?! */
         return  log_it(L_ERROR, "Wallet's password is invalid, say <password> again"), -EAGAIN;
     }
+    if(!(l_wallet->flags & DAP_WALLET$M_FL_ACTIVE)) {
+        HASH_FIND_STR(s_wallet_n_pass, a_name, l_prec);
+        HASH_DEL(s_wallet_n_pass, l_prec);
+        log_it(L_ERROR, "Can't activate unprotected wallet");
+        l_rc = -101;
+    }
 
     dap_chain_wallet_close( l_wallet);
 
-- 
GitLab