/ src / kernel / types.h
types.h
 1  // Copyright (c) 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  //! @file kernel/types.h is a home for simple enum and struct type definitions
 6  //! that can be used internally by functions in the libbitcoin_kernel library,
 7  //! but also used externally by node, wallet, and GUI code.
 8  //!
 9  //! This file is intended to define only simple types that do not have external
10  //! dependencies. More complicated types should be defined in dedicated header
11  //! files.
12  
13  #ifndef BITCOIN_KERNEL_TYPES_H
14  #define BITCOIN_KERNEL_TYPES_H
15  
16  namespace kernel {
17  //! Information about chainstate that notifications are sent from.
18  struct ChainstateRole {
19      //! Whether this is a notification from a chainstate that's been fully
20      //! validated starting from the genesis block. False if it is from an
21      //! assumeutxo snapshot chainstate that has not been validated yet.
22      bool validated{true};
23  
24      //! Whether this is a historical chainstate downloading old blocks to
25      //! validate an assumeutxo snapshot, not syncing to the network tip.
26      bool historical{false};
27  };
28  } // namespace kernel
29  
30  #endif // BITCOIN_KERNEL_TYPES_H