Bitcoin ABC 0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
coin.cpp
Go to the documentation of this file.
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
11namespace node {
12void FindCoins(const NodeContext &node, std::map<COutPoint, Coin> &coins) {
13 assert(node.mempool);
14 assert(node.chainman);
15 LOCK2(cs_main, node.mempool->cs);
16 CCoinsViewCache &chain_view = node.chainman->ActiveChainstate().CoinsTip();
18 for (auto &coin : coins) {
19 if (!mempool_view.GetCoin(coin.first, coin.second)) {
20 // Either the coin is not in the CCoinsViewCache or is spent. Clear
21 // it.
22 coin.second.Clear();
23 }
24 }
25}
26} // namespace node
CCoinsView that adds a memory cache for transactions to another CCoinsView.
Definition coins.h:221
CCoinsView that brings transactions from a mempool into view.
Definition txmempool.h:618
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
Definition cs_main.cpp:7
Definition init.h:28
void FindCoins(const NodeContext &node, std::map< COutPoint, Coin > &coins)
Look up unspent output information.
Definition coin.cpp:12
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Definition random.h:85
NodeContext struct containing references to chain state and connection state.
Definition context.h:43
#define LOCK2(cs1, cs2)
Definition sync.h:309
assert(!tx.IsCoinBase())