3#include <eosio/multi_index.hpp>
4#include <eosio/name.hpp>
5#include <eosio/time.hpp>
54 std::optional<block_batch_info>
result;
86 eosio::name system_account_name =
"eosio"_n)
90 if (batch_size == 0) {
99 if (t.cbegin() == t.cend()) {
105 auto latest_block_info_itr = --t.cend();
107 if (latest_block_info_itr->version != 0) {
114 uint32_t latest_block_batch_end_height = latest_block_info_itr->block_height;
116 if (latest_block_batch_end_height < batch_start_height_offset) {
124 uint32_t latest_block_batch_start_height =
125 latest_block_batch_end_height - ((latest_block_batch_end_height - batch_start_height_offset) % batch_size);
129 if (latest_block_batch_start_height == latest_block_batch_end_height) {
135 .batch_start_timestamp = latest_block_info_itr->block_timestamp,
136 .batch_current_end_height = latest_block_batch_end_height,
137 .batch_current_end_timestamp = latest_block_info_itr->block_timestamp,
144 auto start_block_info_itr = t.find(latest_block_batch_start_height);
145 if (start_block_info_itr == t.cend() || start_block_info_itr->block_height != latest_block_batch_start_height) {
157 if (start_block_info_itr->version != 0) {
168 .batch_start_timestamp = start_block_info_itr->block_timestamp,
169 .batch_current_end_height = latest_block_batch_end_height,
170 .batch_current_end_timestamp = latest_block_info_itr->block_timestamp,
contract
Definition: eosio.msig_tests.cpp:977
Definition: eosio.msig.hpp:34
Definition: block_info.hpp:10
latest_block_batch_info_result get_latest_block_batch_info(uint32_t batch_start_height_offset, uint32_t batch_size, eosio::name system_account_name="eosio"_n)
Definition: block_info.hpp:84
static constexpr uint32_t rolling_window_size
Definition: block_info.hpp:12
eosio::multi_index<"blockinfo"_n, block_info_record > block_info_table
Definition: block_info.hpp:34
eosio::time_point time_point
Definition: blockinfo_tester.hpp:30
Definition: block_info.hpp:37
uint32_t batch_current_end_height
Definition: block_info.hpp:40
uint32_t batch_start_height
Definition: block_info.hpp:38
eosio::time_point batch_current_end_timestamp
Definition: block_info.hpp:41
eosio::time_point batch_start_timestamp
Definition: block_info.hpp:39
Definition: block_info.hpp:24
uint32_t block_height
Definition: block_info.hpp:26
uint64_t primary_key() const
Definition: block_info.hpp:29
eosio::time_point block_timestamp
Definition: block_info.hpp:27
Definition: block_info.hpp:45
error_code_enum
Definition: block_info.hpp:47
@ no_error
Definition: block_info.hpp:48
@ unsupported_version
Definition: block_info.hpp:50
@ invalid_input
Definition: block_info.hpp:49
@ insufficient_data
Definition: block_info.hpp:51
std::optional< block_batch_info > result
Definition: block_info.hpp:54
error_code_enum error_code
Definition: block_info.hpp:55