Line data Source code
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 : 11 1853 : void FindCoins(const NodeContext& node, std::map<COutPoint, Coin>& coins) 12 : { 13 1853 : assert(node.mempool); 14 1853 : LOCK2(cs_main, node.mempool->cs); 15 1853 : CCoinsViewCache& chain_view = ::ChainstateActive().CoinsTip(); 16 1853 : CCoinsViewMemPool mempool_view(&chain_view, *node.mempool); 17 10631 : for (auto& coin : coins) { 18 8778 : if (!mempool_view.GetCoin(coin.first, coin.second)) { 19 : // Either the coin is not in the CCoinsViewCache or is spent. Clear it. 20 88 : coin.second.Clear(); 21 : } 22 0 : } 23 1853 : }