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:
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 process_deposits();
//void process_withdrawals();
void on_block_applied( const signed_block& b );
void on_objects_new(const vector<object_id_type>& new_object_ids);
private:
peerplays_sidechain_plugin& plugin;
@ -62,6 +60,9 @@ class peerplays_sidechain_plugin_impl
std::set<chain::son_id_type> _sons;
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) :

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(_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<object_id_type>& ids, const flat_set<account_id_type>& 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<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