diff --git a/src/avalanche/peermanager.h b/src/avalanche/peermanager.h --- a/src/avalanche/peermanager.h +++ b/src/avalanche/peermanager.h @@ -130,7 +130,7 @@ PeerId nextPeerId = 0; PeerSet peers; - std::unordered_map<COutPoint, PeerId, SaltedOutpointHasher> utxos; + std::unordered_map<COutPoint, ProofRef, SaltedOutpointHasher> utxos; using NodeSet = boost::multi_index_container< Node, diff --git a/src/avalanche/peermanager.cpp b/src/avalanche/peermanager.cpp --- a/src/avalanche/peermanager.cpp +++ b/src/avalanche/peermanager.cpp @@ -298,23 +298,23 @@ const PeerId peerid = nextPeerId++; // Attach UTXOs to this proof. - std::unordered_set<PeerId> conflicting_peerids; + std::unordered_set<ProofRef> conflicting_proofs; for (const auto &s : proof->getStakes()) { - auto p = utxos.emplace(s.getStake().getUTXO(), peerid); + auto p = utxos.emplace(s.getStake().getUTXO(), proof); if (!p.second) { // We have a collision with an existing proof. - conflicting_peerids.insert(p.first->second); + conflicting_proofs.insert(p.first->second); } } // For now, if there is a conflict, just cleanup the mess. - if (conflicting_peerids.size() > 0) { + if (conflicting_proofs.size() > 0) { for (const auto &s : proof->getStakes()) { auto it = utxos.find(s.getStake().getUTXO()); assert(it != utxos.end()); // We need to delete that one. - if (it->second == peerid) { + if (it->second->getId() == proofid) { utxos.erase(it); } } @@ -471,7 +471,7 @@ if (it == utxos.end()) { return false; } - if (it->second != p.peerid) { + if (it->second->getId() != p.getProofId()) { return false; } @@ -517,7 +517,7 @@ } // Check there is no dangling utxo - for (const auto &[outpoint, peerid] : utxos) { + for (const auto &[outpoint, proof] : utxos) { if (!peersUtxos.count(outpoint)) { return false; }