diff --git a/console/executor_test_reader.cpp b/console/executor_test_reader.cpp index 7e381823..9b7ce631 100644 --- a/console/executor_test_reader.cpp +++ b/console/executor_test_reader.cpp @@ -45,8 +45,8 @@ void executor::read_test(const hash_digest&) const return; } - const auto bytes = query_.get_block_size(link, true); - if (is_zero(bytes)) + size_t bytes{}; + if (!query_.get_block_size(bytes, link, true)) { logger(format("Block (%1%) is not associated.") % height); return; diff --git a/src/protocols/protocol_native.cpp b/src/protocols/protocol_native.cpp index 29232a66..03b32a5b 100644 --- a/src/protocols/protocol_native.cpp +++ b/src/protocols/protocol_native.cpp @@ -291,13 +291,21 @@ bool protocol_native::handle_get_block_header_context(const code& ec, // The "state" element implies transactions are associated. if (query.is_associated(link)) { + size_t size{}, weight{}; + if (!query.get_block_sizes(size, weight, link)) + { + send_internal_server_error(database::error::integrity); + return true; + } + const auto check = system_settings().top_checkpoint().height(); const auto bypass = context.height < check || query.is_milestone(link); + object["state"] = boost::json::object { + { "size", size }, + { "weight", weight }, { "count", query.get_tx_count(link) }, - { "size", query.get_block_size(link, true) }, - { "weight", query.get_block_size(link, false) }, { "validated", bypass || query.is_validated(link) }, { "confirmed", check || query.is_confirmed_block(link) }, { "confirmable", bypass || query.is_confirmable(link) }, @@ -708,8 +716,8 @@ bool protocol_native::handle_get_tx_details(const code& ec, const auto bip141 = context.is_enabled(chain::flags::bip141_rule); object["confirmed"] = boost::json::object { - { "height", context.height }, - { "position", position }, + { "height", context.height }, + { "position", position }, { "sigops", tx->signature_operations(bip16, bip141) } }; }