Bitcoin Core 22.99.0
P2P Digital Currency
coinstats.h
Go to the documentation of this file.
1// Copyright (c) 2010 Satoshi Nakamoto
2// Copyright (c) 2009-2020 The Bitcoin Core developers
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#ifndef BITCOIN_NODE_COINSTATS_H
7#define BITCOIN_NODE_COINSTATS_H
8
9#include <chain.h>
10#include <coins.h>
11#include <consensus/amount.h>
12#include <streams.h>
13#include <uint256.h>
14
15#include <cstdint>
16#include <functional>
17
18class BlockManager;
19class CCoinsView;
20
23 MUHASH,
24 NONE,
25};
26
28{
30 int nHeight{0};
32 uint64_t nTransactions{0};
34 uint64_t nBogoSize{0};
36 uint64_t nDiskSize{0};
38
40 uint64_t coins_count{0};
41
43 bool index_requested{true};
45 bool index_used{false};
46
47 // Following values are only available from coinstats index
48
67
68 CCoinsStats(CoinStatsHashType hash_type) : m_hash_type(hash_type) {}
69};
70
72bool GetUTXOStats(CCoinsView* view, BlockManager& blockman, CCoinsStats& stats, const std::function<void()>& interruption_point = {}, const CBlockIndex* pindex = nullptr);
73
74uint64_t GetBogoSize(const CScript& script_pub_key);
75
76CDataStream TxOutSer(const COutPoint& outpoint, const Coin& coin);
77
78#endif // BITCOIN_NODE_COINSTATS_H
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
Maintains a tree of blocks (stored in m_block_index) which is consulted to determine where the most-w...
Definition: validation.h:375
The block chain is a tree shaped structure starting with the genesis block at the root,...
Definition: chain.h:146
Abstract view on the open txout dataset.
Definition: coins.h:158
Double ended buffer combining vector and stream-like interfaces.
Definition: streams.h:205
An outpoint - a combination of a transaction hash and an index n into its vout.
Definition: transaction.h:27
Serialized script, used inside transaction inputs and outputs.
Definition: script.h:406
A UTXO entry.
Definition: coins.h:31
256-bit opaque blob.
Definition: uint256.h:124
CDataStream TxOutSer(const COutPoint &outpoint, const Coin &coin)
Definition: coinstats.cpp:30
uint64_t GetBogoSize(const CScript &script_pub_key)
Definition: coinstats.cpp:20
CoinStatsHashType
Definition: coinstats.h:21
bool GetUTXOStats(CCoinsView *view, BlockManager &blockman, CCoinsStats &stats, const std::function< void()> &interruption_point={}, const CBlockIndex *pindex=nullptr)
Calculate statistics about the unspent transaction output set.
Definition: coinstats.cpp:145
uint64_t nTransactionOutputs
Definition: coinstats.h:33
uint64_t nTransactions
Definition: coinstats.h:32
uint256 hashSerialized
Definition: coinstats.h:35
bool index_used
Signals if the coinstatsindex was used to retrieve the statistics.
Definition: coinstats.h:45
CAmount total_prevout_spent_amount
Total cumulative amount of prevouts spent up to and including this block.
Definition: coinstats.h:54
bool index_requested
Signals if the coinstatsindex should be used (when available).
Definition: coinstats.h:43
uint64_t nBogoSize
Definition: coinstats.h:34
CAmount total_unspendable_amount
Total cumulative amount of unspendable coins up to and including this block.
Definition: coinstats.h:52
int nHeight
Definition: coinstats.h:30
uint64_t nDiskSize
Definition: coinstats.h:36
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:66
CCoinsStats(CoinStatsHashType hash_type)
Definition: coinstats.h:68
uint64_t coins_count
The number of coins contained.
Definition: coinstats.h:40
uint256 hashBlock
Definition: coinstats.h:31
CAmount total_new_outputs_ex_coinbase_amount
Total cumulative amount of outputs created up to and including this block.
Definition: coinstats.h:56
CAmount total_unspendables_genesis_block
The unspendable coinbase amount from the genesis block.
Definition: coinstats.h:60
CAmount total_unspendables_bip30
The two unspendable coinbase outputs total amount caused by BIP30.
Definition: coinstats.h:62
CAmount total_unspendables_scripts
Total cumulative amount of outputs sent to unspendable scripts (OP_RETURN for example) up to and incl...
Definition: coinstats.h:64
CAmount nTotalAmount
Definition: coinstats.h:37
CAmount total_coinbase_amount
Total cumulative amount of coinbase outputs up to and including this block.
Definition: coinstats.h:58
CoinStatsHashType m_hash_type
Definition: coinstats.h:29
CAmount total_subsidy
Total cumulative amount of block subsidies up to and including this block.
Definition: coinstats.h:50