diff --git a/rai/core_test/node.cpp b/rai/core_test/node.cpp index dc126b6e..44ebddad 100644 --- a/rai/core_test/node.cpp +++ b/rai/core_test/node.cpp @@ -1004,10 +1004,10 @@ TEST (node, coherent_observer) { rai::system system (24000, 1); auto & node1 (*system.nodes [0]); - node1.observers.blocks.add ([&node1] (rai::block const & block_a, rai::account const & account_a, rai::amount const &) + node1.observers.blocks.add ([&node1] (std::shared_ptr block_a, rai::account const & account_a, rai::amount const &) { rai::transaction transaction (node1.store.environment, nullptr, false); - ASSERT_TRUE (node1.store.block_exists (transaction, block_a.hash ())); + ASSERT_TRUE (node1.store.block_exists (transaction, block_a->hash ())); }); system.wallet (0)->insert_adhoc (rai::test_genesis_key.prv); rai::keypair key; diff --git a/rai/node/node.cpp b/rai/node/node.cpp index c1b83f20..767e4690 100755 --- a/rai/node/node.cpp +++ b/rai/node/node.cpp @@ -1305,15 +1305,15 @@ block_processor (*this) { observers.disconnect (); }; - observers.blocks.add ([this] (rai::block const & block_a, rai::account const & account_a, rai::amount const & amount_a) + observers.blocks.add ([this] (std::shared_ptr block_a, rai::account const & account_a, rai::amount const & amount_a) { if (!config.callback_address.empty ()) { boost::property_tree::ptree event; event.add ("account", account_a.to_account ()); - event.add ("hash", block_a.hash ().to_string ()); + event.add ("hash", block_a->hash ().to_string ()); std::string block_text; - block_a.serialize_json (block_text); + block_a->serialize_json (block_text); event.add ("block", block_text); event.add ("amount", amount_a.to_string_dec ()); std::stringstream ostream; @@ -1584,7 +1584,7 @@ void rai::node::process_receive_republish (std::shared_ptr incoming node_l->active.start (transaction_a, block_a); node_l->background ([node_l, block_a, result_a] () { - node_l->observers.blocks (*block_a, result_a.account, result_a.amount); + node_l->observers.blocks (block_a, result_a.account, result_a.amount); }); break; } diff --git a/rai/node/node.hpp b/rai/node/node.hpp index 0295bae7..c4bf078a 100644 --- a/rai/node/node.hpp +++ b/rai/node/node.hpp @@ -382,7 +382,7 @@ public: class node_observers { public: - rai::observer_set blocks; + rai::observer_set , rai::account const &, rai::amount const &> blocks; rai::observer_set wallet; rai::observer_set vote; rai::observer_set endpoint; diff --git a/rai/node/rpc.cpp b/rai/node/rpc.cpp index 04bb22c9..97130b16 100755 --- a/rai/node/rpc.cpp +++ b/rai/node/rpc.cpp @@ -77,7 +77,7 @@ node (node_a) acceptor.set_option (boost::asio::ip::tcp::acceptor::reuse_address (true)); acceptor.bind (endpoint); acceptor.listen (); - node_a.observers.blocks.add ([this] (rai::block const & block_a, rai::account const & account_a, rai::amount const &) + node_a.observers.blocks.add ([this] (std::shared_ptr block_a, rai::account const & account_a, rai::amount const &) { observer_action (account_a); }); diff --git a/rai/qt/qt.cpp b/rai/qt/qt.cpp index 1c6740f7..63c732e5 100755 --- a/rai/qt/qt.cpp +++ b/rai/qt/qt.cpp @@ -996,7 +996,7 @@ void rai_qt::wallet::start () this_l->push_main_stack (this_l->send_blocks_window); } }); - node.observers.blocks.add ([this_w] (rai::block const &, rai::account const & account_a, rai::amount const &) + node.observers.blocks.add ([this_w] (std::shared_ptr , rai::account const & account_a, rai::amount const &) { if (auto this_l = this_w.lock ()) {