Bitcoin Core 28.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
coinstats.h
Go to the documentation of this file.
1// Copyright (c) 2022 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#ifndef BITCOIN_KERNEL_COINSTATS_H
6#define BITCOIN_KERNEL_COINSTATS_H
7
8#include <consensus/amount.h>
9#include <crypto/muhash.h>
10#include <streams.h>
11#include <uint256.h>
12
13#include <cstdint>
14#include <functional>
15#include <optional>
16
17class CCoinsView;
18class Coin;
19class COutPoint;
20class CScript;
21namespace node {
22class BlockManager;
23} // namespace node
24
25namespace kernel {
28 MUHASH,
29 NONE,
30};
31
73
74uint64_t GetBogoSize(const CScript& script_pub_key);
75
76void ApplyCoinHash(MuHash3072& muhash, const COutPoint& outpoint, const Coin& coin);
77void RemoveCoinHash(MuHash3072& muhash, const COutPoint& outpoint, const Coin& coin);
78
79std::optional<CCoinsStats> ComputeUTXOStats(CoinStatsHashType hash_type, CCoinsView* view, node::BlockManager& blockman, const std::function<void()>& interruption_point = {});
80} // namespace kernel
81
82#endif // BITCOIN_KERNEL_COINSTATS_H
int64_t CAmount
Amount in satoshis (Can be negative)
Definition amount.h:12
Abstract view on the open txout dataset.
Definition coins.h:304
An outpoint - a combination of a transaction hash and an index n into its vout.
Definition transaction.h:29
Serialized script, used inside transaction inputs and outputs.
Definition script.h:414
A UTXO entry.
Definition coins.h:33
A class representing MuHash sets.
Definition muhash.h:91
Maintains a tree of blocks (stored in m_block_index) which is consulted to determine where the most-w...
256-bit opaque blob.
Definition uint256.h:178
void RemoveCoinHash(MuHash3072 &muhash, const COutPoint &outpoint, const Coin &coin)
Definition coinstats.cpp:70
static bool ComputeUTXOStats(CCoinsView *view, CCoinsStats &stats, T hash_obj, const std::function< void()> &interruption_point)
Calculate statistics about the unspent transaction output set.
CoinStatsHashType
Definition coinstats.h:26
static void ApplyCoinHash(HashWriter &ss, const COutPoint &outpoint, const Coin &coin)
Definition coinstats.cpp:58
uint64_t GetBogoSize(const CScript &script_pub_key)
Definition coinstats.cpp:40
std::optional< CAmount > total_amount
The total amount, or nullopt if an overflow occurred calculating it.
Definition coinstats.h:41
CAmount total_unspendable_amount
Total cumulative amount of unspendable coins up to and including this block.
Definition coinstats.h:54
CAmount total_unspendables_scripts
Total cumulative amount of outputs sent to unspendable scripts (OP_RETURN for example) up to and incl...
Definition coinstats.h:66
uint64_t coins_count
The number of coins contained.
Definition coinstats.h:44
CAmount total_new_outputs_ex_coinbase_amount
Total cumulative amount of outputs created up to and including this block.
Definition coinstats.h:58
uint64_t nTransactions
Definition coinstats.h:35
uint64_t nTransactionOutputs
Definition coinstats.h:36
CAmount total_coinbase_amount
Total cumulative amount of coinbase outputs up to and including this block.
Definition coinstats.h:60
bool index_used
Signals if the coinstatsindex was used to retrieve the statistics.
Definition coinstats.h:47
CAmount total_unspendables_bip30
The two unspendable coinbase outputs total amount caused by BIP30.
Definition coinstats.h:64
CAmount total_unspendables_genesis_block
The unspendable coinbase amount from the genesis block.
Definition coinstats.h:62
CAmount total_prevout_spent_amount
Total cumulative amount of prevouts spent up to and including this block.
Definition coinstats.h:56
uint256 hashSerialized
Definition coinstats.h:38
CAmount total_unspendables_unclaimed_rewards
Total cumulative amount of coins lost due to unclaimed miner rewards up to and including this block.
Definition coinstats.h:68
CAmount total_subsidy
Total cumulative amount of block subsidies up to and including this block.
Definition coinstats.h:52