From fc1cdf262971d1ff811b7893fcdb9762a846b2a8 Mon Sep 17 00:00:00 2001 From: Vlad Dobromyslov Date: Wed, 1 Feb 2023 20:54:44 +0200 Subject: [PATCH] Fix build errors active_sidechain_types --- libraries/chain/son_wallet_evaluator.cpp | 6 ++++-- .../sidechain_net_handler_bitcoin.cpp | 12 ++++++++---- .../sidechain_net_handler_ethereum.cpp | 8 +++++--- .../sidechain_net_handler_hive.cpp | 8 +++++--- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/libraries/chain/son_wallet_evaluator.cpp b/libraries/chain/son_wallet_evaluator.cpp index 4eaba48f..138f8e57 100644 --- a/libraries/chain/son_wallet_evaluator.cpp +++ b/libraries/chain/son_wallet_evaluator.cpp @@ -98,7 +98,8 @@ void_result update_son_wallet_evaluator::do_evaluate(const son_wallet_update_ope FC_ASSERT( op.payer == db().get_global_properties().parameters.son_account(), "SON paying account must be set as payer." ); const auto& idx = db().get_index_type().indices().get(); - const auto id = (op.son_wallet_id.instance.value - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(op.sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(db().head_block_time()); + const auto id = (op.son_wallet_id.instance.value - std::distance(ast.begin(), ast.find(op.sidechain))) / ast.size(); const son_wallet_id_type son_wallet_id{ id }; FC_ASSERT( idx.find(son_wallet_id) != idx.end() ); //auto itr = idx.find(op.son_wallet_id); @@ -110,7 +111,8 @@ void_result update_son_wallet_evaluator::do_evaluate(const son_wallet_update_ope object_id_type update_son_wallet_evaluator::do_apply(const son_wallet_update_operation& op) { try { const auto& idx = db().get_index_type().indices().get(); - const auto id = (op.son_wallet_id.instance.value - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(op.sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(db().head_block_time()); + const auto id = (op.son_wallet_id.instance.value - std::distance(ast.begin(), ast.find(op.sidechain))) / ast.size(); const son_wallet_id_type son_wallet_id{ id }; auto itr = idx.find(son_wallet_id); if (itr != idx.end()) diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp index 4acd91e0..3f469cc8 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp @@ -448,7 +448,8 @@ bool sidechain_net_handler_bitcoin::process_proposal(const proposal_object &po) bool transaction_ok = false; std::string new_pw_address = ""; son_wallet_id_type swo_id = op_obj_idx_0.get().son_wallet_id; - const auto id = (swo_id.instance.value - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = (swo_id.instance.value - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const son_wallet_id_type op_id{ id }; const auto &idx = database.get_index_type().indices().get(); const auto swo = idx.find(op_id); @@ -488,7 +489,8 @@ bool sidechain_net_handler_bitcoin::process_proposal(const proposal_object &po) if (po.proposed_transaction.operations.size() >= 2) { const object_id_type object_id = op_obj_idx_1.get().object_id; - const auto id = (object_id.instance() - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = (object_id.instance() - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const object_id_type obj_id{ object_id.space(), object_id.type(), id }; std::string op_tx_str = op_obj_idx_1.get().transaction; @@ -720,7 +722,8 @@ void sidechain_net_handler_bitcoin::process_primary_wallet() { if ((active_sw->addresses.find(sidechain) == active_sw->addresses.end()) || (active_sw->addresses.at(sidechain).empty())) { - const auto id = active_sw->id.instance() * active_sidechain_types.size() + std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain)); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = active_sw->id.instance() * ast.size() + std::distance(ast.begin(), ast.find(sidechain)); const object_id_type op_id{ active_sw->id.space(), active_sw->id.type(), id }; if (proposal_exists(chain::operation::tag::value, op_id)) { @@ -760,7 +763,8 @@ void sidechain_net_handler_bitcoin::process_primary_wallet() { std::string new_pw_address = active_pw_pt.get("result.address"); std::string tx_str = create_primary_wallet_transaction(*prev_sw, new_pw_address); if (!tx_str.empty()) { - const auto prev_id = prev_sw->id.instance() * active_sidechain_types.size() + std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain)); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto prev_id = prev_sw->id.instance() * ast.size() + std::distance(ast.begin(), ast.find(sidechain)); const object_id_type prev_op_id{ prev_sw->id.space(), prev_sw->id.type(), prev_id }; sidechain_transaction_create_operation stc_op; diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_ethereum.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_ethereum.cpp index 3f912309..d0051714 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_ethereum.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_ethereum.cpp @@ -234,7 +234,8 @@ bool sidechain_net_handler_ethereum::process_proposal(const proposal_object &po) bool address_ok = false; bool transaction_ok = false; const son_wallet_id_type swo_id = op_obj_idx_0.get().son_wallet_id; - const auto id = (swo_id.instance.value - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = (swo_id.instance.value - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const son_wallet_id_type op_id{ id }; const auto &idx = database.get_index_type().indices().get(); const auto swo = idx.find(op_id); @@ -257,7 +258,7 @@ bool sidechain_net_handler_ethereum::process_proposal(const proposal_object &po) if (po.proposed_transaction.operations.size() >= 2) { const object_id_type object_id = op_obj_idx_1.get().object_id; - const auto id = (object_id.instance() - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto id = (object_id.instance() - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const object_id_type obj_id{ object_id.space(), object_id.type(), id }; const std::string op_tx_str = op_obj_idx_1.get().transaction; @@ -456,7 +457,8 @@ void sidechain_net_handler_ethereum::process_primary_wallet() { if ((active_sw->addresses.find(sidechain) == active_sw->addresses.end()) || (active_sw->addresses.at(sidechain).empty())) { - const auto id = active_sw->id.instance() * active_sidechain_types.size() + std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain)); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = active_sw->id.instance() * ast.size() + std::distance(ast.begin(), ast.find(sidechain)); const object_id_type op_id{ active_sw->id.space(), active_sw->id.type(), id }; if (proposal_exists(chain::operation::tag::value, op_id)) { diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp index 2932e5f3..3f1378e7 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_hive.cpp @@ -209,7 +209,8 @@ bool sidechain_net_handler_hive::process_proposal(const proposal_object &po) { bool address_ok = false; bool transaction_ok = false; son_wallet_id_type swo_id = op_obj_idx_0.get().son_wallet_id; - const auto id = (swo_id.instance.value - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = (swo_id.instance.value - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const son_wallet_id_type op_id{ id }; const auto &idx = database.get_index_type().indices().get(); const auto swo = idx.find(op_id); @@ -232,7 +233,7 @@ bool sidechain_net_handler_hive::process_proposal(const proposal_object &po) { if (po.proposed_transaction.operations.size() >= 2) { const object_id_type object_id = op_obj_idx_1.get().object_id; - const auto id = (object_id.instance() - std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain))) / active_sidechain_types.size(); + const auto id = (object_id.instance() - std::distance(ast.begin(), ast.find(sidechain))) / ast.size(); const object_id_type obj_id{ object_id.space(), object_id.type(), id }; std::string op_tx_str = op_obj_idx_1.get().transaction; @@ -490,7 +491,8 @@ void sidechain_net_handler_hive::process_primary_wallet() { if ((active_sw->addresses.find(sidechain) == active_sw->addresses.end()) || (active_sw->addresses.at(sidechain).empty())) { - const auto id = active_sw->id.instance() * active_sidechain_types.size() + std::distance(active_sidechain_types.begin(), active_sidechain_types.find(sidechain)); + const auto ast = active_sidechain_types(database.head_block_time()); + const auto id = active_sw->id.instance() * ast.size() + std::distance(ast.begin(), ast.find(sidechain)); const object_id_type op_id{ active_sw->id.space(), active_sw->id.type(), id }; if (proposal_exists(chain::operation::tag::value, op_id)) {