diff options
Diffstat (limited to 'src/node/coin.cpp')
| -rw-r--r-- | src/node/coin.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/node/coin.cpp b/src/node/coin.cpp new file mode 100644 index 000000000..f4f86cdbe --- /dev/null +++ b/src/node/coin.cpp @@ -0,0 +1,23 @@ +// Copyright (c) 2019 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include <node/coin.h> + +#include <node/context.h> +#include <txmempool.h> +#include <validation.h> + +void FindCoins(const NodeContext& node, std::map<COutPoint, Coin>& coins) +{ + assert(node.mempool); + LOCK2(cs_main, node.mempool->cs); + CCoinsViewCache& chain_view = ::ChainstateActive().CoinsTip(); + CCoinsViewMemPool mempool_view(&chain_view, *node.mempool); + for (auto& coin : coins) { + if (!mempool_view.GetCoin(coin.first, coin.second)) { + // Either the coin is not in the CCoinsViewCache or is spent. Clear it. + coin.second.Clear(); + } + } +} |