@@ -260,10 +260,10 @@ ChainLockSigner::BlockTxs::mapped_type ChainLockSigner::GetBlockTxs(const uint25
260260 return ret;
261261}
262262
263- MessageProcessingResult ChainLockSigner::HandleNewRecoveredSig (const llmq::CRecoveredSig& recoveredSig)
263+ llmq::RecoveredSigResult ChainLockSigner::HandleNewRecoveredSig (const llmq::CRecoveredSig& recoveredSig)
264264{
265265 if (!m_chainlocks.IsEnabled ()) {
266- return {};
266+ return std::monostate {};
267267 }
268268
269269 ChainLockSig clsig;
@@ -272,16 +272,22 @@ MessageProcessingResult ChainLockSigner::HandleNewRecoveredSig(const llmq::CReco
272272
273273 if (recoveredSig.getId () != lastSignedRequestId || recoveredSig.getMsgHash () != lastSignedMsgHash) {
274274 // this is not what we signed, so lets not create a CLSIG for it
275- return {};
275+ return std::monostate {};
276276 }
277277 if (m_chainlocks.GetBestChainLockHeight () >= lastSignedHeight) {
278278 // already got the same or a better CLSIG through the CLSIG message
279- return {};
279+ return std::monostate {};
280280 }
281281
282282 clsig = ChainLockSig (lastSignedHeight, lastSignedMsgHash, recoveredSig.sig .Get ());
283283 }
284- return m_clhandler.ProcessNewChainLock (-1 , clsig, m_qman, ::SerializeHash (clsig));
284+ // TODO: split ProcessNewChainLock into network and non-network variants; when no peer
285+ // is specified (node == -1), only m_inventory is ever populated
286+ auto clresult = m_clhandler.ProcessNewChainLock (-1 , clsig, m_qman, ::SerializeHash (clsig));
287+ if (!clresult.m_inventory .empty ()) {
288+ return clresult.m_inventory .front ();
289+ }
290+ return std::monostate{};
285291}
286292
287293void ChainLockSigner::Cleanup ()
0 commit comments