daemon: add a +hex option to print_block

This commit is contained in:
moneromooo-monero 2018-12-26 17:55:04 +00:00
parent ed54ac8fdf
commit 65ce387c93
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
3 changed files with 23 additions and 7 deletions

View file

@ -163,9 +163,21 @@ bool t_command_parser_executor::print_height(const std::vector<std::string>& arg
bool t_command_parser_executor::print_block(const std::vector<std::string>& args) bool t_command_parser_executor::print_block(const std::vector<std::string>& args)
{ {
bool include_hex = false;
// Assumes that optional flags come after mandatory argument <transaction_hash>
for (unsigned int i = 1; i < args.size(); ++i) {
if (args[i] == "+hex")
include_hex = true;
else
{
std::cout << "unexpected argument: " << args[i] << std::endl;
return true;
}
}
if (args.empty()) if (args.empty())
{ {
std::cout << "expected: print_block (<block_hash> | <block_height>)" << std::endl; std::cout << "expected: print_block (<block_hash> | <block_height>) [+hex]" << std::endl;
return false; return false;
} }
@ -173,14 +185,14 @@ bool t_command_parser_executor::print_block(const std::vector<std::string>& args
try try
{ {
uint64_t height = boost::lexical_cast<uint64_t>(arg); uint64_t height = boost::lexical_cast<uint64_t>(arg);
return m_executor.print_block_by_height(height); return m_executor.print_block_by_height(height, include_hex);
} }
catch (const boost::bad_lexical_cast&) catch (const boost::bad_lexical_cast&)
{ {
crypto::hash block_hash; crypto::hash block_hash;
if (parse_hash256(arg, block_hash)) if (parse_hash256(arg, block_hash))
{ {
return m_executor.print_block_by_hash(block_hash); return m_executor.print_block_by_hash(block_hash, include_hex);
} }
} }

View file

@ -663,7 +663,7 @@ bool t_rpc_command_executor::print_height() {
return true; return true;
} }
bool t_rpc_command_executor::print_block_by_hash(crypto::hash block_hash) { bool t_rpc_command_executor::print_block_by_hash(crypto::hash block_hash, bool include_hex) {
cryptonote::COMMAND_RPC_GET_BLOCK::request req; cryptonote::COMMAND_RPC_GET_BLOCK::request req;
cryptonote::COMMAND_RPC_GET_BLOCK::response res; cryptonote::COMMAND_RPC_GET_BLOCK::response res;
epee::json_rpc::error error_resp; epee::json_rpc::error error_resp;
@ -689,13 +689,15 @@ bool t_rpc_command_executor::print_block_by_hash(crypto::hash block_hash) {
} }
} }
if (include_hex)
tools::success_msg_writer() << res.blob << std::endl;
print_block_header(res.block_header); print_block_header(res.block_header);
tools::success_msg_writer() << res.json << ENDL; tools::success_msg_writer() << res.json << ENDL;
return true; return true;
} }
bool t_rpc_command_executor::print_block_by_height(uint64_t height) { bool t_rpc_command_executor::print_block_by_height(uint64_t height, bool include_hex) {
cryptonote::COMMAND_RPC_GET_BLOCK::request req; cryptonote::COMMAND_RPC_GET_BLOCK::request req;
cryptonote::COMMAND_RPC_GET_BLOCK::response res; cryptonote::COMMAND_RPC_GET_BLOCK::response res;
epee::json_rpc::error error_resp; epee::json_rpc::error error_resp;
@ -721,6 +723,8 @@ bool t_rpc_command_executor::print_block_by_height(uint64_t height) {
} }
} }
if (include_hex)
tools::success_msg_writer() << res.blob << std::endl;
print_block_header(res.block_header); print_block_header(res.block_header);
tools::success_msg_writer() << res.json << ENDL; tools::success_msg_writer() << res.json << ENDL;

View file

@ -91,9 +91,9 @@ public:
bool print_height(); bool print_height();
bool print_block_by_hash(crypto::hash block_hash); bool print_block_by_hash(crypto::hash block_hash, bool include_hex);
bool print_block_by_height(uint64_t height); bool print_block_by_height(uint64_t height, bool include_hex);
bool print_transaction(crypto::hash transaction_hash, bool include_hex, bool include_json); bool print_transaction(crypto::hash transaction_hash, bool include_hex, bool include_json);