do not emit signed_block_header and block_num; use a single block_signal_params type
This commit is contained in:
@@ -342,9 +342,9 @@ struct controller_impl {
|
||||
set_activation_handler<builtin_protocol_feature_t::bls_primitives>();
|
||||
set_activation_handler<builtin_protocol_feature_t::disable_deferred_trxs_stage_2>();
|
||||
|
||||
self.irreversible_block.connect([this](std::tuple<const signed_block_ptr&, const block_id_type&, uint32_t> t) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
wasmif.current_lib(block_num);
|
||||
self.irreversible_block.connect([this](block_signal_params t) {
|
||||
const auto& [ block, id] = t;
|
||||
wasmif.current_lib(block->block_num());
|
||||
});
|
||||
|
||||
|
||||
@@ -449,7 +449,7 @@ struct controller_impl {
|
||||
apply_block( br, *bitr, controller::block_status::complete, trx_meta_cache_lookup{} );
|
||||
}
|
||||
|
||||
emit( self.irreversible_block, std::tie((*bitr)->block, (*bitr)->id, (*bitr)->block_num) );
|
||||
emit( self.irreversible_block, std::tie((*bitr)->block, (*bitr)->id) );
|
||||
|
||||
// blog.append could fail due to failures like running out of space.
|
||||
// Do it before commit so that in case it throws, DB can be rolled back.
|
||||
@@ -1951,7 +1951,7 @@ struct controller_impl {
|
||||
if( s == controller::block_status::incomplete ) {
|
||||
fork_db.add( bsp );
|
||||
fork_db.mark_valid( bsp );
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id, bsp->header, bsp->block_num) );
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id) );
|
||||
EOS_ASSERT( bsp == fork_db.head(), fork_database_exception, "committed block did not become the new head in fork database");
|
||||
} else if (s != controller::block_status::irreversible) {
|
||||
fork_db.mark_valid( bsp );
|
||||
@@ -1963,7 +1963,7 @@ struct controller_impl {
|
||||
dm_logger->on_accepted_block(bsp);
|
||||
}
|
||||
|
||||
emit( self.accepted_block, std::tie(bsp->block, bsp->id, bsp->header, bsp->block_num) );
|
||||
emit( self.accepted_block, std::tie(bsp->block, bsp->id) );
|
||||
|
||||
if( s == controller::block_status::incomplete ) {
|
||||
log_irreversible();
|
||||
@@ -2265,7 +2265,7 @@ struct controller_impl {
|
||||
trusted_producer_light_validation = true;
|
||||
};
|
||||
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id, bsp->header, bsp->block_num) );
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id) );
|
||||
|
||||
if( read_mode != db_read_mode::IRREVERSIBLE ) {
|
||||
maybe_switch_forks( br, fork_db.pending_head(), s, forked_branch_cb, trx_lookup );
|
||||
@@ -2309,7 +2309,7 @@ struct controller_impl {
|
||||
fork_db.add( bsp, true );
|
||||
}
|
||||
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id, bsp->header, bsp->block_num) );
|
||||
emit( self.accepted_block_header, std::tie(bsp->block, bsp->id) );
|
||||
|
||||
controller::block_report br;
|
||||
if( s == controller::block_status::irreversible ) {
|
||||
@@ -2317,7 +2317,7 @@ struct controller_impl {
|
||||
|
||||
// On replay, log_irreversible is not called and so no irreversible_block signal is emitted.
|
||||
// So emit it explicitly here.
|
||||
emit( self.irreversible_block, std::tie(bsp->block, bsp->id, bsp->block_num) );
|
||||
emit( self.irreversible_block, std::tie(bsp->block, bsp->id) );
|
||||
|
||||
if (!self.skip_db_sessions(s)) {
|
||||
db.commit(bsp->block_num);
|
||||
|
||||
@@ -44,6 +44,8 @@ namespace eosio { namespace chain {
|
||||
// lookup transaction_metadata via supplied function to avoid re-creation
|
||||
using trx_meta_cache_lookup = std::function<transaction_metadata_ptr( const transaction_id_type&)>;
|
||||
|
||||
using block_signal_params = std::tuple<const signed_block_ptr&, const block_id_type&>;
|
||||
|
||||
class fork_database;
|
||||
|
||||
enum class db_read_mode {
|
||||
@@ -326,10 +328,10 @@ namespace eosio { namespace chain {
|
||||
|
||||
static std::optional<uint64_t> convert_exception_to_error_code( const fc::exception& e );
|
||||
|
||||
signal<void(uint32_t)> block_start;
|
||||
signal<void(std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t>)> accepted_block_header;
|
||||
signal<void(std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t>)> accepted_block;
|
||||
signal<void(std::tuple<const signed_block_ptr&, const block_id_type&, uint32_t>)> irreversible_block;
|
||||
signal<void(uint32_t)> block_start;
|
||||
signal<void(block_signal_params)> accepted_block_header;
|
||||
signal<void(block_signal_params)> accepted_block;
|
||||
signal<void(block_signal_params)> irreversible_block;
|
||||
signal<void(const transaction_metadata_ptr&)> accepted_transaction;
|
||||
signal<void(std::tuple<const transaction_trace_ptr&, const packed_transaction_ptr&>)> applied_transaction;
|
||||
|
||||
|
||||
@@ -321,8 +321,8 @@ namespace eosio { namespace testing {
|
||||
control->add_indices();
|
||||
if (lambda) lambda();
|
||||
chain_transactions.clear();
|
||||
control->accepted_block.connect([this]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ){
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
control->accepted_block.connect([this]( block_signal_params t ){
|
||||
const auto& [ block, id ] = t;
|
||||
FC_ASSERT( block );
|
||||
for( auto receipt : block->transactions ) {
|
||||
if( std::holds_alternative<packed_transaction>(receipt.trx) ) {
|
||||
|
||||
@@ -15,9 +15,9 @@ namespace eosio::chain::plugin_interface {
|
||||
|
||||
namespace channels {
|
||||
using rejected_block = channel_decl<struct rejected_block_tag, signed_block_ptr>;
|
||||
using accepted_block_header = channel_decl<struct accepted_block_header_tag, std::tuple<signed_block_ptr, block_id_type, signed_block_header, uint32_t>>;
|
||||
using accepted_block = channel_decl<struct accepted_block_tag, std::tuple<signed_block_ptr, block_id_type, signed_block_header, uint32_t>>;
|
||||
using irreversible_block = channel_decl<struct irreversible_block_tag, std::tuple<signed_block_ptr, block_id_type, uint32_t>>;
|
||||
using accepted_block_header = channel_decl<struct accepted_block_header_tag, block_signal_params>;
|
||||
using accepted_block = channel_decl<struct accepted_block_tag, block_signal_params>;
|
||||
using irreversible_block = channel_decl<struct irreversible_block_tag,block_signal_params>;
|
||||
using applied_transaction = channel_decl<struct applied_transaction_tag, transaction_trace_ptr>;
|
||||
}
|
||||
|
||||
|
||||
@@ -1014,18 +1014,18 @@ void chain_plugin_impl::plugin_initialize(const variables_map& options) {
|
||||
|
||||
// relay signals to channels
|
||||
accepted_block_header_connection = chain->accepted_block_header.connect(
|
||||
[this]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
[this]( block_signal_params t ) {
|
||||
accepted_block_header_channel.publish( priority::medium, t );
|
||||
} );
|
||||
|
||||
accepted_block_connection = chain->accepted_block.connect( [this]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
accepted_block_connection = chain->accepted_block.connect( [this]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
if (_account_query_db) {
|
||||
_account_query_db->commit_block(block, header, block_num);
|
||||
_account_query_db->commit_block(block, static_cast<signed_block_header>(*block), block->block_num());
|
||||
}
|
||||
|
||||
if (_trx_retry_db) {
|
||||
_trx_retry_db->on_accepted_block(block_num);
|
||||
_trx_retry_db->on_accepted_block(block->block_num());
|
||||
}
|
||||
|
||||
if (_trx_finality_status_processing) {
|
||||
@@ -1035,11 +1035,11 @@ void chain_plugin_impl::plugin_initialize(const variables_map& options) {
|
||||
accepted_block_channel.publish( priority::high, t );
|
||||
} );
|
||||
|
||||
irreversible_block_connection = chain->irreversible_block.connect( [this]( std::tuple<const signed_block_ptr&, const block_id_type&, uint32_t> t ) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
irreversible_block_connection = chain->irreversible_block.connect( [this]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
|
||||
if (_trx_retry_db) {
|
||||
_trx_retry_db->on_irreversible_block(block, block_num);
|
||||
_trx_retry_db->on_irreversible_block(block, block->block_num());
|
||||
}
|
||||
|
||||
if (_trx_finality_status_processing) {
|
||||
|
||||
@@ -37,9 +37,9 @@ BOOST_FIXTURE_TEST_CASE(newaccount_test, validating_tester) { try {
|
||||
auto aq_db = account_query_db(*control);
|
||||
|
||||
//link aq_db to the `accepted_block` signal on the controller
|
||||
auto c2 = control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
aq_db.commit_block( block, header, block_num );
|
||||
auto c2 = control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
aq_db.commit_block( block, static_cast<signed_block_header>(*block), block->block_num() );
|
||||
});
|
||||
|
||||
produce_blocks(10);
|
||||
@@ -63,9 +63,9 @@ BOOST_FIXTURE_TEST_CASE(updateauth_test, validating_tester) { try {
|
||||
auto aq_db = account_query_db(*control);
|
||||
|
||||
//link aq_db to the `accepted_block` signal on the controller
|
||||
auto c = control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
aq_db.commit_block( block, header, block_num );
|
||||
auto c = control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
aq_db.commit_block( block, static_cast<signed_block_header>(*block), block->block_num() );
|
||||
});
|
||||
|
||||
produce_blocks(10);
|
||||
@@ -98,9 +98,9 @@ BOOST_FIXTURE_TEST_CASE(updateauth_test_multi_threaded, validating_tester) { try
|
||||
auto aq_db = account_query_db(*control);
|
||||
|
||||
//link aq_db to the `accepted_block` signal on the controller
|
||||
auto c = control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
aq_db.commit_block( block, header, block_num );
|
||||
auto c = control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
aq_db.commit_block( block, static_cast<signed_block_header>(*block), block->block_num() );
|
||||
});
|
||||
|
||||
produce_blocks(10);
|
||||
@@ -151,9 +151,9 @@ BOOST_AUTO_TEST_CASE(future_fork_test) { try {
|
||||
auto aq_db = account_query_db(*node_a.control);
|
||||
|
||||
//link aq_db to the `accepted_block` signal on the controller
|
||||
auto c = node_a.control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
aq_db.commit_block( block, header, block_num );
|
||||
auto c = node_a.control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
aq_db.commit_block( block, static_cast<signed_block_header>(*block), block->block_num() );
|
||||
});
|
||||
|
||||
// create 10 blocks synced
|
||||
@@ -199,9 +199,9 @@ BOOST_AUTO_TEST_CASE(fork_test) { try {
|
||||
auto aq_db = account_query_db(*node_a.control);
|
||||
|
||||
//link aq_db to the `accepted_block` signal on the controller
|
||||
auto c = node_a.control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
aq_db.commit_block( block, header, block_num );
|
||||
auto c = node_a.control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
aq_db.commit_block( block, static_cast<signed_block_header>(*block), block->block_num() );
|
||||
});
|
||||
|
||||
// create 10 blocks synced
|
||||
|
||||
@@ -4284,17 +4284,17 @@ namespace eosio {
|
||||
|
||||
{
|
||||
chain::controller& cc = chain_plug->chain();
|
||||
cc.accepted_block_header.connect( [my = shared_from_this()]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
my->on_accepted_block_header( block, id, block_num );
|
||||
cc.accepted_block_header.connect( [my = shared_from_this()]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
my->on_accepted_block_header( block, id, block->block_num() );
|
||||
} );
|
||||
|
||||
cc.accepted_block.connect( [my = shared_from_this()]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
cc.accepted_block.connect( [my = shared_from_this()]( block_signal_params t ) {
|
||||
my->on_accepted_block();
|
||||
} );
|
||||
cc.irreversible_block.connect( [my = shared_from_this()]( std::tuple<const signed_block_ptr&, const block_id_type&, uint32_t> t ) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
my->on_irreversible_block( id, block_num );
|
||||
cc.irreversible_block.connect( [my = shared_from_this()]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
my->on_irreversible_block( id, block->block_num() );
|
||||
} );
|
||||
}
|
||||
|
||||
|
||||
@@ -1329,16 +1329,16 @@ void producer_plugin_impl::plugin_startup() {
|
||||
EOS_ASSERT(_producers.empty() || chain_plug->accept_transactions(), plugin_config_exception,
|
||||
"node cannot have any producer-name configured because no block production is possible with no [api|p2p]-accepted-transactions");
|
||||
|
||||
_accepted_block_connection.emplace(chain.accepted_block.connect([this](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
_accepted_block_connection.emplace(chain.accepted_block.connect([this](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
on_block(block);
|
||||
}));
|
||||
_accepted_block_header_connection.emplace(chain.accepted_block_header.connect([this](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
on_block_header(header.producer, block_num, block->timestamp);
|
||||
_accepted_block_header_connection.emplace(chain.accepted_block_header.connect([this](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
on_block_header(static_cast<signed_block_header>(*block).producer, block->block_num(), block->timestamp);
|
||||
}));
|
||||
_irreversible_block_connection.emplace(chain.irreversible_block.connect([this](std::tuple<const signed_block_ptr&, const block_id_type&, uint32_t> t) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
_irreversible_block_connection.emplace(chain.irreversible_block.connect([this](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
on_irreversible_block(block);
|
||||
}));
|
||||
|
||||
|
||||
@@ -129,8 +129,8 @@ BOOST_AUTO_TEST_CASE(producer) {
|
||||
std::deque<signed_block_ptr> all_blocks;
|
||||
std::promise<void> empty_blocks_promise;
|
||||
std::future<void> empty_blocks_fut = empty_blocks_promise.get_future();
|
||||
auto ab = chain_plug->chain().accepted_block.connect( [&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
auto ab = chain_plug->chain().accepted_block.connect( [&](chain::block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
static int num_empty = std::numeric_limits<int>::max();
|
||||
all_blocks.push_back( block );
|
||||
if( block->transactions.empty() ) {
|
||||
|
||||
@@ -329,9 +329,9 @@ void state_history_plugin_impl::plugin_initialize(const variables_map& options)
|
||||
on_applied_transaction(std::get<0>(t), std::get<1>(t));
|
||||
}));
|
||||
accepted_block_connection.emplace(
|
||||
chain.accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
on_accepted_block(block, id, header, block_num);
|
||||
chain.accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
on_accepted_block(block, id, static_cast<signed_block_header>(*block), block->block_num());
|
||||
}));
|
||||
block_start_connection.emplace(
|
||||
chain.block_start.connect([&](uint32_t block_num) { on_block_start(block_num); }));
|
||||
|
||||
@@ -32,13 +32,13 @@ private:
|
||||
|
||||
void test_control_plugin_impl::connect() {
|
||||
_irreversible_block_connection.emplace(
|
||||
_chain.irreversible_block.connect( [&]( std::tuple<const chain::signed_block_ptr&, const chain::block_id_type&, uint32_t> t ) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
_chain.irreversible_block.connect( [&]( chain::block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
applied_irreversible_block( id );
|
||||
} ));
|
||||
_accepted_block_connection =
|
||||
_chain.accepted_block.connect( [&]( std::tuple<const chain::signed_block_ptr&, const chain::block_id_type&, const chain::signed_block_header&, uint32_t> t ) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
_chain.accepted_block.connect( [&]( chain::block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
accepted_block( id );
|
||||
} );
|
||||
}
|
||||
|
||||
@@ -377,18 +377,18 @@ struct trace_api_plugin_impl {
|
||||
}));
|
||||
|
||||
accepted_block_connection.emplace(
|
||||
chain.accepted_block.connect([this](std::tuple<const chain::signed_block_ptr&, const chain::block_id_type&, const chain::signed_block_header&, uint32_t> t) {
|
||||
chain.accepted_block.connect([this](chain::block_signal_params t) {
|
||||
emit_killer([&](){
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
extraction->signal_accepted_block(block, id, block_num);
|
||||
const auto& [ block, id ] = t;
|
||||
extraction->signal_accepted_block(block, id, block->block_num());
|
||||
});
|
||||
}));
|
||||
|
||||
irreversible_block_connection.emplace(
|
||||
chain.irreversible_block.connect([this](std::tuple<const chain::signed_block_ptr&, const chain::block_id_type&, uint32_t> t) {
|
||||
const auto& [ block, id, block_num ] = t;
|
||||
chain.irreversible_block.connect([this](chain::block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
emit_killer([&](){
|
||||
extraction->signal_irreversible_block(block_num);
|
||||
extraction->signal_irreversible_block(block->block_num());
|
||||
});
|
||||
}));
|
||||
|
||||
|
||||
@@ -1471,8 +1471,8 @@ void transaction_tests(T& chain) {
|
||||
if (t && t->receipt && t->receipt->status != transaction_receipt::executed) { trace = t; }
|
||||
} );
|
||||
signed_block_ptr block;
|
||||
auto c2 = chain.control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ b, id, header, block_num ] = t;
|
||||
auto c2 = chain.control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ b, id ] = t;
|
||||
block = b; });
|
||||
|
||||
// test error handling on deferred transaction failure
|
||||
|
||||
@@ -217,12 +217,12 @@ BOOST_AUTO_TEST_CASE(broadcasted_block_test)
|
||||
signed_block_ptr bcasted_blk_by_prod_node;
|
||||
signed_block_ptr bcasted_blk_by_recv_node;
|
||||
|
||||
producer_node.control->accepted_block.connect( [&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
producer_node.control->accepted_block.connect( [&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
bcasted_blk_by_prod_node = block;
|
||||
});
|
||||
receiving_node.control->accepted_block.connect( [&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
receiving_node.control->accepted_block.connect( [&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
bcasted_blk_by_recv_node = block;
|
||||
});
|
||||
|
||||
|
||||
@@ -151,8 +151,9 @@ BOOST_AUTO_TEST_CASE( signal_validated_blocks ) try {
|
||||
|
||||
signed_block_ptr accepted_block;
|
||||
block_id_type accepted_id;
|
||||
auto c = chain.control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
auto c = chain.control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
auto block_num = block->block_num();
|
||||
BOOST_CHECK(block);
|
||||
const auto& bsp_by_id = chain.control->fetch_block_state_by_id(id);
|
||||
BOOST_CHECK(bsp_by_id->block_num == block_num);
|
||||
@@ -169,8 +170,9 @@ BOOST_AUTO_TEST_CASE( signal_validated_blocks ) try {
|
||||
});
|
||||
signed_block_ptr validated_block;
|
||||
block_id_type validated_id;
|
||||
auto c2 = validator.control->accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
auto c2 = validator.control->accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
auto block_num = block->block_num();
|
||||
BOOST_CHECK(block);
|
||||
const auto& bsp_by_id = validator.control->fetch_block_state_by_id(id);
|
||||
BOOST_CHECK(bsp_by_id->block_num == block_num);
|
||||
|
||||
@@ -355,11 +355,11 @@ BOOST_AUTO_TEST_CASE( validator_accepts_valid_blocks ) try {
|
||||
block_id_type first_id;
|
||||
signed_block_header first_header;
|
||||
|
||||
auto c = n2.control->accepted_block.connect( [&]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
auto c = n2.control->accepted_block.connect( [&]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
first_block = block;
|
||||
first_id = id;
|
||||
first_header = header;
|
||||
first_header = static_cast<signed_block_header>(*block);
|
||||
} );
|
||||
|
||||
push_blocks( n1, n2 );
|
||||
@@ -703,8 +703,8 @@ BOOST_AUTO_TEST_CASE( push_block_returns_forked_transactions ) try {
|
||||
|
||||
// test forked blocks signal accepted_block in order, required by trace_api_plugin
|
||||
std::vector<signed_block_ptr> accepted_blocks;
|
||||
auto conn = c.control->accepted_block.connect( [&]( std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t ) {
|
||||
const auto& [ block, id, header, block_num ] = t;
|
||||
auto conn = c.control->accepted_block.connect( [&]( block_signal_params t ) {
|
||||
const auto& [ block, id ] = t;
|
||||
accepted_blocks.emplace_back( block );
|
||||
} );
|
||||
|
||||
|
||||
@@ -631,8 +631,8 @@ struct state_history_tester : state_history_tester_logs, tester {
|
||||
trace_converter.add_transaction(std::get<0>(t), std::get<1>(t));
|
||||
});
|
||||
|
||||
control.accepted_block.connect([&](std::tuple<const signed_block_ptr&, const block_id_type&, const signed_block_header&, uint32_t> t) {
|
||||
const auto& [ block, id, block_header, block_num ] = t;
|
||||
control.accepted_block.connect([&](block_signal_params t) {
|
||||
const auto& [ block, id ] = t;
|
||||
eosio::state_history_log_header header{.magic = eosio::ship_magic(eosio::ship_current_version, 0),
|
||||
.block_id = id,
|
||||
.payload_size = 0};
|
||||
@@ -641,7 +641,7 @@ struct state_history_tester : state_history_tester_logs, tester {
|
||||
trace_converter.pack(buf, false, block);
|
||||
});
|
||||
|
||||
chain_state_log.pack_and_write_entry(header, block_header.previous, [&control](auto&& buf) {
|
||||
chain_state_log.pack_and_write_entry(header, static_cast<signed_block_header>(*block).previous, [&control](auto&& buf) {
|
||||
eosio::state_history::pack_deltas(buf, control.db(), true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user