diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c index c3993601de00e817056771c2d64245acc110f486..401368f0ef9f664e157490eaa195098ff62314f9 100644 --- a/modules/net/dap_chain_node_cli.c +++ b/modules/net/dap_chain_node_cli.c @@ -126,7 +126,7 @@ int dap_chain_node_cli_init(dap_config_t * g_config) ); dap_cli_server_cmd_add ("wallet", com_tx_wallet, "Wallet operations", "wallet list\n" - "wallet new -w <wallet_name> [-sign <sign_type>] [-restore <hex_value>] [-net <net_name>] [-force] [-password <password>] [-restore <hash>]\n" + "wallet new -w <wallet_name> [-sign <sign_type>] [-restore <hex_value> | -restore_legacy <restore_string>] [-net <net_name>] [-force] [-password <password>]\n" "wallet info {-addr <addr> | -w <wallet_name>} -net <net_name>\n" "wallet activate -w <wallet_name> -password <password> [-ttl <password_ttl_in_minutes>]\n" "wallet deactivate -w <wallet_name> -password <password>\n" diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index a1b363302d85d4679845bef3138f78718733b8a7..e4701bde63f2a0d0cc5e989442f10dc60bbdf448 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -1994,6 +1994,9 @@ char l_buf[1024]; dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-password", &l_pass_str); dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-sign", &l_sign_type_str); int l_restore_opt = dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-restore", &l_restore_str); + int l_restore_legacy_opt = 0; + if (!l_restore_str) + l_restore_legacy_opt = dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-restore_legacy", &l_restore_str); // rewrite existing wallet int l_is_force = dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-force", NULL); @@ -2041,13 +2044,16 @@ char l_buf[1024]; uint8_t *l_seed = NULL; size_t l_seed_size = 0, l_restore_str_size = dap_strlen(l_restore_str); - if(l_restore_opt) { - if (l_restore_str_size > 3 && !dap_strncmp(l_restore_str, "0x", 2) && !dap_is_hex_string(l_restore_str + 2, l_restore_str_size - 2)) { + if(l_restore_opt || l_restore_legacy_opt) { + if (l_restore_str_size > 3 && !dap_strncmp(l_restore_str, "0x", 2) && (!dap_is_hex_string(l_restore_str + 2, l_restore_str_size - 2) || l_restore_legacy_opt)) { l_seed_size = (l_restore_str_size - 2) / 2; l_seed = DAP_NEW_SIZE(uint8_t, l_seed_size); dap_hex2bin(l_seed, l_restore_str + 2, l_restore_str_size - 2); + if (l_restore_legacy_opt) { + dap_string_append_printf(l_l_string_ret, "CAUTION!!! CAUTION!!! CAUTION!!!\nYour wallet has a low level of protection. Please create a new wallet again with the option -restore\n"); + } } else { - dap_cli_server_cmd_set_reply_text(a_str_reply, "Restored hash is invalid or too short, wallet is not created. Please use -restore 0x<hex value>"); + dap_cli_server_cmd_set_reply_text(a_str_reply, "Restored hash is invalid or too short, wallet is not created. Please use -restore 0x<hex_value> or -restore_legacy 0x<restore_string>"); return -1; } }