From 56ec93e6ce71084ed2588667de506c34ace77fdf Mon Sep 17 00:00:00 2001 From: Srdjan Obucina Date: Wed, 15 Apr 2020 19:46:10 +0200 Subject: [PATCH] All dev features enabled/disabled with single flag --- .../plugins/peerplays_sidechain/CMakeLists.txt | 10 +++++----- .../peerplays_sidechain_plugin.cpp | 6 ++++-- .../sidechain_net_handler.cpp | 16 ++++++++++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/libraries/plugins/peerplays_sidechain/CMakeLists.txt b/libraries/plugins/peerplays_sidechain/CMakeLists.txt index e7d9acfe..43346ea7 100755 --- a/libraries/plugins/peerplays_sidechain/CMakeLists.txt +++ b/libraries/plugins/peerplays_sidechain/CMakeLists.txt @@ -9,12 +9,12 @@ add_library( peerplays_sidechain bitcoin_utils.cpp ) -if (SUPPORT_MULTIPLE_SONS) - message ("Multiple SONs per software instance are supported") - target_compile_definitions(peerplays_sidechain PRIVATE SUPPORT_MULTIPLE_SONS) +if (ENABLE_DEV_FEATURES) + message ("Dev features enabled") + target_compile_definitions(peerplays_sidechain PRIVATE ENABLE_DEV_FEATURES) endif() -unset(SUPPORT_MULTIPLE_SONS) -unset(SUPPORT_MULTIPLE_SONS CACHE) +unset(ENABLE_DEV_FEATURES) +unset(ENABLE_DEV_FEATURES CACHE) target_link_libraries( peerplays_sidechain graphene_chain graphene_app fc zmq ) target_include_directories( peerplays_sidechain diff --git a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp index 0cd52579..c9fd4f94 100644 --- a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp +++ b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp @@ -142,8 +142,10 @@ void peerplays_sidechain_plugin_impl::plugin_initialize(const boost::program_opt boost::insert(sons, fc::json::from_string(options.at("son-ids").as()).as>(5)); config_ready_son = config_ready_son && !sons.empty(); -#ifndef SUPPORT_MULTIPLE_SONS - FC_ASSERT(sons.size() == 1, "Multiple SONs not supported"); +#ifndef ENABLE_DEV_FEATURES + if (sons.size() > 1) { + FC_THROW("Invalid configuration, multiple SON IDs provided"); + } #endif if (options.count("peerplays-private-key")) { diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp index 06efc824..29861e50 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp @@ -151,8 +151,18 @@ void sidechain_net_handler::sidechain_event_data_received(const sidechain_event_ fc::to_string(btc_asset_id.type_id) + "." + fc::to_string((uint64_t)btc_asset_id.instance); +#ifdef ENABLE_DEV_FEATURES + // Accepts BTC and peerplays asset deposits + bool deposit_condition = ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare(btc_asset_id_str) != 0)); + bool withdraw_condition = ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare(btc_asset_id_str) == 0)); +#else + // Accepts BTC deposits only + bool deposit_condition = ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare("BTC") == 0)); + bool withdraw_condition = ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare(btc_asset_id_str) == 0)); +#endif + // Deposit request - if ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare(btc_asset_id_str) != 0)) { + if (deposit_condition) { for (son_id_type son_id : plugin.get_sons()) { if (plugin.is_active_son(son_id)) { @@ -187,7 +197,7 @@ void sidechain_net_handler::sidechain_event_data_received(const sidechain_event_ } // Withdrawal request - if ((sed.peerplays_to == gpo.parameters.son_account()) && (sed.sidechain_currency.compare(btc_asset_id_str) == 0)) { + if (withdraw_condition) { // BTC Payout only (for now) const auto &sidechain_addresses_idx = database.get_index_type().indices().get(); const auto &addr_itr = sidechain_addresses_idx.find(std::make_tuple(sed.peerplays_from, sidechain_type::bitcoin)); @@ -226,8 +236,6 @@ void sidechain_net_handler::sidechain_event_data_received(const sidechain_event_ } return; } - - FC_ASSERT(false, "Invalid sidechain event"); } void sidechain_net_handler::process_proposals() {