wallet_rpc_server: allow english/local language names in create_wallet

and return both in get_languages
This commit is contained in:
moneromooo-monero 2019-03-25 12:50:27 +00:00
parent e4b049da05
commit 678262ab65
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3
2 changed files with 12 additions and 4 deletions

View File

@ -2908,7 +2908,8 @@ namespace tools
//------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------
bool wallet_rpc_server::on_get_languages(const wallet_rpc::COMMAND_RPC_GET_LANGUAGES::request& req, wallet_rpc::COMMAND_RPC_GET_LANGUAGES::response& res, epee::json_rpc::error& er, const connection_context *ctx) bool wallet_rpc_server::on_get_languages(const wallet_rpc::COMMAND_RPC_GET_LANGUAGES::request& req, wallet_rpc::COMMAND_RPC_GET_LANGUAGES::response& res, epee::json_rpc::error& er, const connection_context *ctx)
{ {
crypto::ElectrumWords::get_language_list(res.languages); crypto::ElectrumWords::get_language_list(res.languages, true);
crypto::ElectrumWords::get_language_list(res.languages_local, false);
return true; return true;
} }
//------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------
@ -2939,14 +2940,19 @@ namespace tools
std::string wallet_file = m_wallet_dir + "/" + req.filename; std::string wallet_file = m_wallet_dir + "/" + req.filename;
{ {
std::vector<std::string> languages; std::vector<std::string> languages;
crypto::ElectrumWords::get_language_list(languages); crypto::ElectrumWords::get_language_list(languages, false);
std::vector<std::string>::iterator it; std::vector<std::string>::iterator it;
it = std::find(languages.begin(), languages.end(), req.language); it = std::find(languages.begin(), languages.end(), req.language);
if (it == languages.end()) if (it == languages.end())
{
crypto::ElectrumWords::get_language_list(languages, true);
it = std::find(languages.begin(), languages.end(), req.language);
}
if (it == languages.end())
{ {
er.code = WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR; er.code = WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR;
er.message = "Unknown language"; er.message = "Unknown language: " + req.language;
return false; return false;
} }
} }

View File

@ -47,7 +47,7 @@
// advance which version they will stop working with // advance which version they will stop working with
// Don't go over 32767 for any of these // Don't go over 32767 for any of these
#define WALLET_RPC_VERSION_MAJOR 1 #define WALLET_RPC_VERSION_MAJOR 1
#define WALLET_RPC_VERSION_MINOR 8 #define WALLET_RPC_VERSION_MINOR 9
#define MAKE_WALLET_RPC_VERSION(major,minor) (((major)<<16)|(minor)) #define MAKE_WALLET_RPC_VERSION(major,minor) (((major)<<16)|(minor))
#define WALLET_RPC_VERSION MAKE_WALLET_RPC_VERSION(WALLET_RPC_VERSION_MAJOR, WALLET_RPC_VERSION_MINOR) #define WALLET_RPC_VERSION MAKE_WALLET_RPC_VERSION(WALLET_RPC_VERSION_MAJOR, WALLET_RPC_VERSION_MINOR)
namespace tools namespace tools
@ -1985,9 +1985,11 @@ namespace wallet_rpc
struct response_t struct response_t
{ {
std::vector<std::string> languages; std::vector<std::string> languages;
std::vector<std::string> languages_local;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(languages) KV_SERIALIZE(languages)
KV_SERIALIZE(languages_local)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };
typedef epee::misc_utils::struct_init<response_t> response; typedef epee::misc_utils::struct_init<response_t> response;