deploymentinfo.h raw

   1  // Copyright (c) 2016-present 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_DEPLOYMENTINFO_H
   6  #define BITCOIN_DEPLOYMENTINFO_H
   7  
   8  #include <consensus/params.h>
   9  
  10  #include <array>
  11  #include <cassert>
  12  #include <optional>
  13  #include <string>
  14  #include <string_view>
  15  
  16  struct VBDeploymentInfo {
  17      /** Deployment name */
  18      const char *name;
  19      /** Whether GBT clients can safely ignore this rule in simplified usage */
  20      bool gbt_optional_rule;
  21  };
  22  
  23  extern const std::array<VBDeploymentInfo,Consensus::MAX_VERSION_BITS_DEPLOYMENTS> VersionBitsDeploymentInfo;
  24  
  25  std::string DeploymentName(Consensus::BuriedDeployment dep);
  26  
  27  inline std::string DeploymentName(Consensus::DeploymentPos pos)
  28  {
  29      assert(Consensus::ValidDeployment(pos));
  30      return VersionBitsDeploymentInfo[pos].name;
  31  }
  32  
  33  std::optional<Consensus::BuriedDeployment> GetBuriedDeployment(std::string_view deployment_name);
  34  
  35  #endif // BITCOIN_DEPLOYMENTINFO_H
  36