Bitcoin ABC  0.24.7
P2P Digital Currency
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 
11 void FindCoins(const NodeContext &node, std::map<COutPoint, Coin> &coins) {
12  assert(node.mempool);
13  LOCK2(cs_main, node.mempool->cs);
15  CCoinsViewMemPool mempool_view(&chain_view, *node.mempool);
16  for (auto &coin : coins) {
17  if (!mempool_view.GetCoin(coin.first, coin.second)) {
18  // Either the coin is not in the CCoinsViewCache or is spent. Clear
19  // it.
20  coin.second.Clear();
21  }
22  }
23 }
LOCK2
#define LOCK2(cs1, cs2)
Definition: sync.h:244
NodeContext::mempool
std::unique_ptr< CTxMemPool > mempool
Definition: context.h:38
ChainstateActive
CChainState & ChainstateActive()
Please prefer the identical ChainstateManager::ActiveChainstate.
Definition: validation.cpp:80
context.h
txmempool.h
FindCoins
void FindCoins(const NodeContext &node, std::map< COutPoint, Coin > &coins)
Look up unspent output information.
Definition: coin.cpp:11
coin.h
cs_main
RecursiveMutex cs_main
Global state.
Definition: validation.cpp:103
CCoinsViewMemPool::GetCoin
bool GetCoin(const COutPoint &outpoint, Coin &coin) const override
Retrieve the Coin (unspent transaction output) for a given outpoint.
Definition: txmempool.cpp:1061
CCoinsViewCache
CCoinsView that adds a memory cache for transactions to another CCoinsView.
Definition: coins.h:231
CCoinsViewMemPool
CCoinsView that brings transactions from a mempool into view.
Definition: txmempool.h:950
NodeContext
NodeContext struct containing references to chain state and connection state.
Definition: context.h:36
CChainState::CoinsTip
CCoinsViewCache & CoinsTip() EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Definition: validation.h:837