query_key command in wallet rpc.

only support mnemonic as key_type currently
This commit is contained in:
Jakob Lind 2014-08-05 08:17:23 +02:00
parent 2ba77629ad
commit 0c3255ead8
3 changed files with 44 additions and 0 deletions

View file

@ -403,4 +403,22 @@ namespace tools
return true;
}
//------------------------------------------------------------------------------------------------------------------------------
bool wallet_rpc_server::on_query_key(const wallet_rpc::COMMAND_RPC_QUERY_KEY::request& req, wallet_rpc::COMMAND_RPC_QUERY_KEY::response& res, epee::json_rpc::error& er, connection_context& cntx)
{
if (req.key_type.compare("mnemonic") == 0)
{
if (!m_wallet.get_seed(res.key))
{
er.message = "The wallet is non-deterministic. Cannot display seed.";
return false;
}
}
else
{
er.message = "key_type " + req.key_type + " not found";
return false;
}
return true;
}
}

View file

@ -69,6 +69,7 @@ namespace tools
MAP_JON_RPC_WE("get_payments", on_get_payments, wallet_rpc::COMMAND_RPC_GET_PAYMENTS)
MAP_JON_RPC_WE("get_bulk_payments", on_get_bulk_payments, wallet_rpc::COMMAND_RPC_GET_BULK_PAYMENTS)
MAP_JON_RPC_WE("incoming_transfers", on_incoming_transfers, wallet_rpc::COMMAND_RPC_INCOMING_TRANSFERS)
MAP_JON_RPC_WE("query_key", on_query_key, wallet_rpc::COMMAND_RPC_QUERY_KEY)
END_JSON_RPC_MAP()
END_URI_MAP2()
@ -85,6 +86,9 @@ namespace tools
bool handle_command_line(const boost::program_options::variables_map& vm);
//json rpc v2
bool on_query_key(const wallet_rpc::COMMAND_RPC_QUERY_KEY::request& req, wallet_rpc::COMMAND_RPC_QUERY_KEY::response& res, epee::json_rpc::error& er, connection_context& cntx);
wallet2& m_wallet;
std::string m_port;
std::string m_bind_ip;

View file

@ -257,6 +257,28 @@ namespace wallet_rpc
END_KV_SERIALIZE_MAP()
};
};
//JSON RPC V2
struct COMMAND_RPC_QUERY_KEY
{
struct request
{
std::string key_type;
BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(key_type)
END_KV_SERIALIZE_MAP()
};
struct response
{
std::string key;
BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(key)
END_KV_SERIALIZE_MAP()
};
};
}
}