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 index 1f2f4770..7c866a09 100755 --- 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 @@ -23,6 +23,8 @@ public: private: void handle_event( const std::string& event_data ); + void on_block_applied(const signed_block& b); + void on_changed_objects(const vector& changed_object_ids); }; diff --git a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp index 32573313..76796578 100755 --- a/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp +++ b/libraries/plugins/peerplays_sidechain/peerplays_sidechain_plugin.cpp @@ -47,8 +47,6 @@ class peerplays_sidechain_plugin_impl void recreate_primary_wallet(); void process_deposits(); //void process_withdrawals(); - void on_block_applied( const signed_block& b ); - void on_objects_new(const vector& new_object_ids); private: peerplays_sidechain_plugin& plugin; @@ -62,6 +60,9 @@ class peerplays_sidechain_plugin_impl std::set _sons; fc::future _heartbeat_task; + void on_block_applied( const signed_block& b ); + void on_objects_new(const vector& new_object_ids); + }; peerplays_sidechain_plugin_impl::peerplays_sidechain_plugin_impl(peerplays_sidechain_plugin& _plugin) : diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp index 7ee42d85..69f48250 100755 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_peerplays.cpp @@ -22,6 +22,8 @@ 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; + plugin.database().applied_block.connect( [&] (const signed_block& b) { on_block_applied(b); } ); + plugin.database().changed_objects.connect( [&] (const vector& ids, const flat_set& impacted_accounts) { on_changed_objects(ids); } ); } sidechain_net_handler_peerplays::~sidechain_net_handler_peerplays() { @@ -47,9 +49,29 @@ std::string sidechain_net_handler_peerplays::send_transaction( const std::string } void sidechain_net_handler_peerplays::handle_event( const std::string& event_data ) { - ilog("peerplays sidechain plugin: sidechain_net_handler_bitcoin::handle_event"); + ilog("peerplays sidechain plugin: sidechain_net_handler_peerplays::handle_event"); ilog(" event_data: ${event_data}", ("event_data", event_data)); } +void sidechain_net_handler_peerplays::on_block_applied(const signed_block& b) { + for (const auto& trx: b.transactions) { + for (auto op: trx.operations) { + ilog("sidechain_net_handler_peerplays: operation detected ${op}", ("op", op)); + } + } +} + +void sidechain_net_handler_peerplays::on_changed_objects(const vector& changed_object_ids) { + for (auto object_id: changed_object_ids) { + const object* obj = plugin.database().find_object(object_id); + + const chain::account_balance_object * abo = dynamic_cast(obj); + if (abo != nullptr) { + ilog("sidechain_net_handler_peerplays: account_balance_object changed, id ${id}", ("id", abo->id)); + continue; + } + } +} + } } // graphene::peerplays_sidechain