diff --git a/src/avalanche/processor.h b/src/avalanche/processor.h --- a/src/avalanche/processor.h +++ b/src/avalanche/processor.h @@ -304,9 +304,6 @@ bool startEventLoop(CScheduler &scheduler); bool stopEventLoop(); - void addUnbroadcastProof(const ProofId &proofid); - void removeUnbroadcastProof(const ProofId &proofid); - private: void runEventLoop(); void clearTimedoutRequests(); diff --git a/src/avalanche/processor.cpp b/src/avalanche/processor.cpp --- a/src/avalanche/processor.cpp +++ b/src/avalanche/processor.cpp @@ -753,14 +753,4 @@ } while (nodeid != NO_NODE); } -void Processor::addUnbroadcastProof(const ProofId &proofid) { - LOCK(cs_peerManager); - peerManager->addUnbroadcastProof(proofid); -} - -void Processor::removeUnbroadcastProof(const ProofId &proofid) { - LOCK(cs_peerManager); - peerManager->removeUnbroadcastProof(proofid); -} - } // namespace avalanche diff --git a/src/net_processing.cpp b/src/net_processing.cpp --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -2144,7 +2144,9 @@ if (proof) { connman.PushMessage( &pfrom, msgMaker.Make(NetMsgType::AVAPROOF, *proof)); - g_avalanche->removeUnbroadcastProof(proofid); + g_avalanche->withPeerManager([&](avalanche::PeerManager &pm) { + pm.removeUnbroadcastProof(proofid); + }); } else { vNotFound.push_back(inv); } diff --git a/src/rpc/avalanche.cpp b/src/rpc/avalanche.cpp --- a/src/rpc/avalanche.cpp +++ b/src/rpc/avalanche.cpp @@ -114,12 +114,14 @@ return false; } - if (!g_avalanche->addNode(nodeid, proofid)) { - return false; - } + return g_avalanche->withPeerManager([&](avalanche::PeerManager &pm) { + if (!pm.addNode(nodeid, proofid)) { + return false; + } - g_avalanche->addUnbroadcastProof(proofid); - return true; + pm.addUnbroadcastProof(proofid); + return true; + }); } static UniValue buildavalancheproof(const Config &config, @@ -580,7 +582,9 @@ "The proof has conflicting utxo with an existing proof"); } - g_avalanche->addUnbroadcastProof(proofid); + g_avalanche->withPeerManager( + [&](avalanche::PeerManager &pm) { pm.addUnbroadcastProof(proofid); }); + RelayProof(proofid, *node.connman); return true;