1 // Copyright (c) 2019 The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #include <node/coin.h> 6 7 #include <node/context.h> 8 #include <txmempool.h> 9 #include <validation.h> 10 FindCoins(const NodeContext & node,std::map<COutPoint,Coin> & coins)11void FindCoins(const NodeContext& node, std::map<COutPoint, Coin>& coins) 12 { 13 assert(node.mempool); 14 LOCK2(cs_main, node.mempool->cs); 15 CCoinsViewCache& chain_view = ::ChainstateActive().CoinsTip(); 16 CCoinsViewMemPool mempool_view(&chain_view, *node.mempool); 17 for (auto& coin : coins) { 18 if (!mempool_view.GetCoin(coin.first, coin.second)) { 19 // Either the coin is not in the CCoinsViewCache or is spent. Clear it. 20 coin.second.Clear(); 21 } 22 } 23 } 24