Skeleton of Peerplays network listener

This commit is contained in:
Srdjan Obucina 2020-02-14 21:54:02 +01:00
parent b927ffa4d0
commit 992b245d5b
3 changed files with 28 additions and 3 deletions

View file

@ -23,6 +23,8 @@ public:
private: private:
void handle_event( const std::string& event_data ); void handle_event( const std::string& event_data );
void on_block_applied(const signed_block& b);
void on_changed_objects(const vector<object_id_type>& changed_object_ids);
}; };

View file

@ -47,8 +47,6 @@ class peerplays_sidechain_plugin_impl
void recreate_primary_wallet(); void recreate_primary_wallet();
void process_deposits(); void process_deposits();
//void process_withdrawals(); //void process_withdrawals();
void on_block_applied( const signed_block& b );
void on_objects_new(const vector<object_id_type>& new_object_ids);
private: private:
peerplays_sidechain_plugin& plugin; peerplays_sidechain_plugin& plugin;
@ -62,6 +60,9 @@ class peerplays_sidechain_plugin_impl
std::set<chain::son_id_type> _sons; std::set<chain::son_id_type> _sons;
fc::future<void> _heartbeat_task; fc::future<void> _heartbeat_task;
void on_block_applied( const signed_block& b );
void on_objects_new(const vector<object_id_type>& new_object_ids);
}; };
peerplays_sidechain_plugin_impl::peerplays_sidechain_plugin_impl(peerplays_sidechain_plugin& _plugin) : peerplays_sidechain_plugin_impl::peerplays_sidechain_plugin_impl(peerplays_sidechain_plugin& _plugin) :

View file

@ -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_peerplays::sidechain_net_handler_peerplays(peerplays_sidechain_plugin& _plugin, const boost::program_options::variables_map& options) :
sidechain_net_handler(_plugin, options) { sidechain_net_handler(_plugin, options) {
sidechain = sidechain_type::peerplays; sidechain = sidechain_type::peerplays;
plugin.database().applied_block.connect( [&] (const signed_block& b) { on_block_applied(b); } );
plugin.database().changed_objects.connect( [&] (const vector<object_id_type>& ids, const flat_set<account_id_type>& impacted_accounts) { on_changed_objects(ids); } );
} }
sidechain_net_handler_peerplays::~sidechain_net_handler_peerplays() { 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 ) { 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)); 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<object_id_type>& 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<const chain::account_balance_object*>(obj);
if (abo != nullptr) {
ilog("sidechain_net_handler_peerplays: account_balance_object changed, id ${id}", ("id", abo->id));
continue;
}
}
}
} } // graphene::peerplays_sidechain } } // graphene::peerplays_sidechain