diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index 7654b3fc..32217826 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -65,7 +65,7 @@ class database_api_impl : public std::enable_shared_from_this // Blocks and transactions optional get_block_header(uint32_t block_num)const; - map get_block_header_batch(const vector block_num)const; + map> get_block_header_batch(const vector block_nums)const; optional get_block(uint32_t block_num)const; processed_transaction get_transaction( uint32_t block_num, uint32_t trx_in_block )const; @@ -363,21 +363,17 @@ optional database_api_impl::get_block_header(uint32_t block_num) c return *result; return {}; } -map database_api::get_block_header_batch(const vector block_num)const +map> database_api::get_block_header_batch(const vector block_nums)const { - return my->get_block_header_batch( block_num ); + return my->get_block_header_batch( block_nums ); } -map database_api_impl::get_block_header_batch(const vector block_num) const +map> database_api_impl::get_block_header_batch(const vector block_nums) const { - map results; - for (const uint32_t& i : block_num) { - auto result = _db.fetch_block_by_number(i); - if (result) - results[i] = *result; - else - results[i] = {}; - + map> results; + for (const uint32_t block_num : block_nums) + { + results[block_num] = get_block_header(block_num); } return results; } diff --git a/libraries/app/include/graphene/app/database_api.hpp b/libraries/app/include/graphene/app/database_api.hpp index 2d801207..1fe64a09 100644 --- a/libraries/app/include/graphene/app/database_api.hpp +++ b/libraries/app/include/graphene/app/database_api.hpp @@ -163,7 +163,7 @@ class database_api * @param block_num vector containing heights of the block whose header should be returned * @return array of headers of the referenced blocks, or null if no matching block was found */ - map get_block_header_batch(const vector block_num)const; + map> get_block_header_batch(const vector block_nums)const; /**