Bitcoin Core
0.21.1
P2P Digital Currency
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
src
node
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
{
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
}
NodeContext::mempool
std::unique_ptr< CTxMemPool > mempool
Definition:
context.h:38
context.h
txmempool.h
NodeContext
NodeContext struct containing references to chain state and connection state.
Definition:
context.h:36
cs_main
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
Definition:
validation.cpp:129
ChainstateActive
CChainState & ChainstateActive()
Please prefer the identical ChainstateManager::ActiveChainstate.
Definition:
validation.cpp:106
CCoinsViewMemPool::GetCoin
bool GetCoin(const COutPoint &outpoint, Coin &coin) const override
Retrieve the Coin (unspent transaction output) for a given outpoint.
Definition:
txmempool.cpp:913
FindCoins
void FindCoins(const NodeContext &node, std::map< COutPoint, Coin > &coins)
Look up unspent output information.
Definition:
coin.cpp:11
CChainState::CoinsTip
CCoinsViewCache & CoinsTip() EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Definition:
validation.h:590
coin.h
CCoinsViewCache
CCoinsView that adds a memory cache for transactions to another CCoinsView.
Definition:
coins.h:236
CCoinsViewMemPool
CCoinsView that brings transactions from a mempool into view.
Definition:
txmempool.h:893
LOCK2
#define LOCK2(cs1, cs2)
Definition:
sync.h:231
Generated on Fri Apr 30 2021 15:02:53 for Bitcoin Core by
1.8.11