From b927ffa4d0e8db8883ab7798d8bca924aa04adb3 Mon Sep 17 00:00:00 2001 From: Srdjan Obucina Date: Fri, 14 Feb 2020 01:25:24 +0100 Subject: [PATCH] Skeleton of sidechain_net_handler_peerplays --- .../peerplays_sidechain/CMakeLists.txt | 1 + .../sidechain_net_handler_bitcoin.hpp | 3 - .../sidechain_net_handler_peerplays.hpp | 30 ++++++++++ .../peerplays_sidechain_plugin.cpp | 14 +++++ .../sidechain_net_handler_bitcoin.cpp | 5 -- .../sidechain_net_handler_peerplays.cpp | 55 +++++++++++++++++++ .../sidechain_net_manager.cpp | 7 +++ 7 files changed, 107 insertions(+), 8 deletions(-) mode change 100644 => 100755 libraries/plugins/peerplays_sidechain/CMakeLists.txt mode change 100644 => 100755 libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp create mode 100755 libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_peerplays.hpp mode change 100644 => 100755 libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp mode change 100644 => 100755 libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp create mode 100755 libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp mode change 100644 => 100755 libraries/plugins/peerplays_sidechain/sidechain_net_manager.cpp diff --git a/libraries/plugins/peerplays_sidechain/CMakeLists.txt b/libraries/plugins/peerplays_sidechain/CMakeLists.txt old mode 100644 new mode 100755 index 6a6faf16..c54e91ca --- a/libraries/plugins/peerplays_sidechain/CMakeLists.txt +++ b/libraries/plugins/peerplays_sidechain/CMakeLists.txt @@ -5,6 +5,7 @@ add_library( peerplays_sidechain sidechain_net_manager.cpp sidechain_net_handler.cpp sidechain_net_handler_bitcoin.cpp + sidechain_net_handler_peerplays.cpp ) if (SUPPORT_MULTIPLE_SONS) diff --git a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp old mode 100644 new mode 100755 index 803b24de..328a02b3 --- a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp +++ b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_bitcoin.hpp @@ -7,7 +7,6 @@ #include #include -#include namespace graphene { namespace peerplays_sidechain { @@ -62,8 +61,6 @@ public: void recreate_primary_wallet(); - bool connection_is_not_defined() const; - std::string create_multisignature_wallet( const std::vector public_keys ); std::string transfer( const std::string& from, const std::string& to, const uint64_t amount ); std::string sign_transaction( const std::string& transaction ); diff --git a/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_peerplays.hpp b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_peerplays.hpp new file mode 100755 index 00000000..1f2f4770 --- /dev/null +++ b/libraries/plugins/peerplays_sidechain/include/graphene/peerplays_sidechain/sidechain_net_handler_peerplays.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include + +#include + +#include + +namespace graphene { namespace peerplays_sidechain { + +class sidechain_net_handler_peerplays : public sidechain_net_handler { +public: + sidechain_net_handler_peerplays(peerplays_sidechain_plugin& _plugin, const boost::program_options::variables_map& options); + virtual ~sidechain_net_handler_peerplays(); + + void recreate_primary_wallet(); + + std::string create_multisignature_wallet( const std::vector public_keys ); + std::string transfer( const std::string& from, const std::string& to, const uint64_t amount ); + std::string sign_transaction( const std::string& transaction ); + std::string send_transaction( const std::string& transaction ); + +private: + + void handle_event( const std::string& event_data ); + +}; + +} } // graphene::peerplays_sidechain + diff --git a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp old mode 100644 new mode 100755 index a32d9dd8..32573313 --- a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp +++ b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp @@ -55,6 +55,7 @@ class peerplays_sidechain_plugin_impl bool config_ready_son; bool config_ready_bitcoin; + bool config_ready_peerplays; std::unique_ptr net_manager; std::map _private_keys; @@ -67,6 +68,7 @@ peerplays_sidechain_plugin_impl::peerplays_sidechain_plugin_impl(peerplays_sidec plugin(_plugin), config_ready_son(false), config_ready_bitcoin(false), + config_ready_peerplays(false), net_manager(nullptr) { } @@ -177,6 +179,14 @@ void peerplays_sidechain_plugin_impl::plugin_initialize(const boost::program_opt // wlog("Haven't set up Ethereum sidechain parameters"); //} + config_ready_peerplays = true; + if (config_ready_peerplays) { + net_manager->create_handler(sidechain_type::peerplays, options); + ilog("Peerplays sidechain handler created"); + } else { + wlog("Haven't set up Peerplays sidechain parameters"); + } + if (!(config_ready_bitcoin /*&& config_ready_ethereum*/)) { wlog("Haven't set up any sidechain parameters"); throw; @@ -200,6 +210,10 @@ void peerplays_sidechain_plugin_impl::plugin_startup() //if (config_ready_ethereum) { // ilog("Ethereum sidechain handler running"); //} + + if (config_ready_peerplays) { + ilog("Peerplays sidechain handler running"); + } } std::set& peerplays_sidechain_plugin_impl::get_sons() diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp old mode 100644 new mode 100755 index cdd3611e..5710c443 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp @@ -308,11 +308,6 @@ void sidechain_net_handler_bitcoin::recreate_primary_wallet() { } } -bool sidechain_net_handler_bitcoin::connection_is_not_defined() const -{ - return listener->connection_is_not_defined() && bitcoin_client->connection_is_not_defined(); -} - std::string sidechain_net_handler_bitcoin::create_multisignature_wallet( const std::vector public_keys ) { return bitcoin_client->add_multisig_address(public_keys); diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp new file mode 100755 index 00000000..7ee42d85 --- /dev/null +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp @@ -0,0 +1,55 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace graphene { namespace peerplays_sidechain { + +sidechain_net_handler_peerplays::sidechain_net_handler_peerplays(peerplays_sidechain_plugin& _plugin, const boost::program_options::variables_map& options) : + sidechain_net_handler(_plugin, options) { + sidechain = sidechain_type::peerplays; +} + +sidechain_net_handler_peerplays::~sidechain_net_handler_peerplays() { +} + +void sidechain_net_handler_peerplays::recreate_primary_wallet() { +} + +std::string sidechain_net_handler_peerplays::create_multisignature_wallet( const std::vector public_keys ) { + return ""; +} + +std::string sidechain_net_handler_peerplays::transfer( const std::string& from, const std::string& to, const uint64_t amount ) { + return ""; +} + +std::string sidechain_net_handler_peerplays::sign_transaction( const std::string& transaction ) { + return ""; +} + +std::string sidechain_net_handler_peerplays::send_transaction( const std::string& transaction ) { + return ""; +} + +void sidechain_net_handler_peerplays::handle_event( const std::string& event_data ) { + ilog("peerplays sidechain plugin: sidechain_net_handler_bitcoin::handle_event"); + ilog(" event_data: ${event_data}", ("event_data", event_data)); +} + +} } // graphene::peerplays_sidechain + diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_manager.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_manager.cpp old mode 100644 new mode 100755 index 8b6f18c1..0d4b7fa2 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_manager.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_manager.cpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace graphene { namespace peerplays_sidechain { @@ -26,6 +27,12 @@ bool sidechain_net_manager::create_handler(peerplays_sidechain::sidechain_type s ret_val = true; break; } + case sidechain_type::peerplays: { + std::unique_ptr h = std::unique_ptr(new sidechain_net_handler_peerplays(plugin, options)); + net_handlers.push_back(std::move(h)); + ret_val = true; + break; + } default: assert(false); }