aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakob Lind <karl.jakob.lind@gmail.com>2014-08-05 08:17:23 +0200
committerJakob Lind <karl.jakob.lind@gmail.com>2014-08-05 08:17:23 +0200
commit0c3255ead8132c9903aa3b62333460fc3ed67713 (patch)
tree81b47a2cd57c216e7d1d2ef1aaa1f7bb818e4c94 /src
parentrefactoring. get seed code in wallet2 (diff)
downloadmonero-0c3255ead8132c9903aa3b62333460fc3ed67713.tar.xz
query_key command in wallet rpc.
only support mnemonic as key_type currently
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet_rpc_server.cpp18
-rw-r--r--src/wallet/wallet_rpc_server.h4
-rw-r--r--src/wallet/wallet_rpc_server_commands_defs.h22
3 files changed, 44 insertions, 0 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 063716a9e..26da8d434 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -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;
+ }
}
diff --git a/src/wallet/wallet_rpc_server.h b/src/wallet/wallet_rpc_server.h
index 8fc6b092b..6f52e87ba 100644
--- a/src/wallet/wallet_rpc_server.h
+++ b/src/wallet/wallet_rpc_server.h
@@ -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;
diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h
index 146e84cb2..48f8ec2a5 100644
--- a/src/wallet/wallet_rpc_server_commands_defs.h
+++ b/src/wallet/wallet_rpc_server_commands_defs.h
@@ -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()
+ };
+ };
}
}