From 35c68602e78e9614e4ac999990c36590fe96f9fb Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sat, 7 Mar 2020 14:36:22 -0500 Subject: [PATCH] Port the BlockFound signal and parts of ScriptForMining from ZEC upstream --- src/miner.cpp | 3 +++ src/validationinterface.cpp | 6 +++--- src/validationinterface.h | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 5bc83fac4..8d3c5d4c4 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -983,6 +983,9 @@ static bool ProcessBlockFound(CBlock* pblock) } } + // Inform about the new block + GetMainSignals().BlockFound(pblock->GetHash()); + #ifdef ENABLE_WALLET // Remove key from key pool if ( IS_KOMODO_NOTARY == 0 ) diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp index aa66ef7c7..c93c9be08 100644 --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -33,13 +33,13 @@ void RegisterValidationInterface(CValidationInterface* pwalletIn) { g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1)); g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); - g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); + //g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); g_signals.BlockFound.connect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); } void UnregisterValidationInterface(CValidationInterface* pwalletIn) { g_signals.BlockFound.disconnect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1)); - g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); + //g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1)); g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2)); g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1)); g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1)); @@ -53,7 +53,7 @@ void UnregisterValidationInterface(CValidationInterface* pwalletIn) { void UnregisterAllValidationInterfaces() { g_signals.BlockFound.disconnect_all_slots(); - g_signals.ScriptForMining.disconnect_all_slots(); + //g_signals.ScriptForMining.disconnect_all_slots(); g_signals.BlockChecked.disconnect_all_slots(); g_signals.Broadcast.disconnect_all_slots(); g_signals.Inventory.disconnect_all_slots(); diff --git a/src/validationinterface.h b/src/validationinterface.h index 33cd5728e..dea6e5547 100644 --- a/src/validationinterface.h +++ b/src/validationinterface.h @@ -69,6 +69,10 @@ struct CMainSignals { boost::signals2::signal Broadcast; /** Notifies listeners of a block validation result */ boost::signals2::signal BlockChecked; + // boost::signals2::signal&)> ScriptForMining; + /** Notifies listeners that a block has been successfully mined */ + boost::signals2::signal BlockFound; + }; CMainSignals& GetMainSignals();