20 #include <ripple/protocol/Feature.h>
21 #include <ripple/basics/contract.h>
22 #include <ripple/protocol/digest.h>
43 auto const f =
static_cast<uint256>(h);
51 boost::optional<uint256>
54 auto const i = nameToFeature.find(name);
55 if (i == nameToFeature.end())
63 auto const i = featureToIndex.find(f);
64 if (i == featureToIndex.end())
72 if (i >= features.size())
106 "CryptoConditionsSuite",
126 "fixTakerDryOfferRemoval",
127 "fixMasterKeyAsRegularKey",
129 "fixPayChanRecipientOwnerDir",
131 "fixQualityUpperBound",
132 "RequireFullyCanonicalSig",
140 boost::optional<uint256>
boost::optional< uint256 > getRegisteredFeature(std::string const &name) const
const uint256 fixQualityUpperBound
Returns the SHA512-Half digest of a message.
const uint256 retiredFix1528
const uint256 retiredSortedDirectories
const uint256 featureDepositPreauth
const uint256 featureDepositAuth
boost::container::flat_map< uint256, std::size_t > featureToIndex
const uint256 featureMultiSignReserve
const uint256 retiredPayChan
const uint256 retiredFix1368
const uint256 retiredEnforceInvariants
const uint256 featureDeletableAccounts
const uint256 retiredTickSize
const uint256 featureRequireFullyCanonicalSig
uint256 const & bitsetIndexToFeature(size_t i) const
std::vector< uint256 > features
const uint256 featureCompareTakerFlowCross
const uint256 retiredEscrow
const uint256 fixCheckThreading
const uint256 retiredFix1373
const uint256 fixTakerDryOfferRemoval
static const detail::FeatureCollections featureCollections
size_t featureToBitsetIndex(uint256 const &f)
const uint256 fixPayChanRecipientOwnerDir
const uint256 fixMasterKeyAsRegularKey
const uint256 featureTickets
const uint256 retiredCryptoConditions
const uint256 featureChecks
std::vector< std::string > const & supportedAmendments()
Amendments that this server supports, but doesn't enable by default.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
const uint256 featureCryptoConditionsSuite
static constexpr char const *const featureNames[]
std::size_t featureToBitsetIndex(uint256 const &f) const
const uint256 featureFlow
void LogicError(std::string const &how) noexcept
Called when faulty logic causes a broken invariant.
uint256 bitsetIndexToFeature(size_t i)
const uint256 retiredFix1523
const uint256 retiredFix1201
const uint256 featureOwnerPaysFee
const uint256 retiredFix1512
const uint256 featureFlowCross
static constexpr std::size_t numFeatures()
boost::optional< uint256 > getRegisteredFeature(std::string const &name)
boost::container::flat_map< std::string, uint256 > nameToFeature