20 #include <ripple/basics/contract.h>
21 #include <ripple/protocol/Feature.h>
22 #include <ripple/protocol/digest.h>
43 auto const f =
static_cast<uint256>(h);
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())
104 "CryptoConditionsSuite",
124 "fixTakerDryOfferRemoval",
125 "fixMasterKeyAsRegularKey",
127 "fixPayChanRecipientOwnerDir",
129 "fixQualityUpperBound",
130 "RequireFullyCanonicalSig",
132 "HardenedValidations",
133 "fixAmendmentMajorityCalc",
137 "fixSTAmountCanonicalize",
138 "fixRmSmallIncreasedQOffers",
139 "CheckCashMakesTrustLine",
200 [[deprecated(
"The referenced amendment has been retired"), maybe_unused]]
const uint256 fixQualityUpperBound
Returns the SHA512-Half digest of a message.
const uint256 retiredFix1528
const uint256 retiredSortedDirectories
const uint256 featureDepositPreauth
const uint256 fixSTAmountCanonicalize
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 retiredEscrow
const uint256 fixCheckThreading
const uint256 retiredFix1373
const uint256 fixAmendmentMajorityCalc
const uint256 fixTakerDryOfferRemoval
static const detail::FeatureCollections featureCollections
size_t featureToBitsetIndex(uint256 const &f)
const uint256 fixPayChanRecipientOwnerDir
const uint256 fixMasterKeyAsRegularKey
const uint256 retiredCryptoConditions
const uint256 featureChecks
const uint256 fixRmSmallIncreasedQOffers
const uint256 featureFlowSortStrands
const uint256 featureHardenedValidations
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
std::optional< uint256 > getRegisteredFeature(std::string const &name) const
const uint256 featureFlow
void LogicError(std::string const &how) noexcept
Called when faulty logic causes a broken invariant.
const uint256 featureNegativeUNL
uint256 bitsetIndexToFeature(size_t i)
const uint256 featureTicketBatch
const uint256 retiredFix1523
const uint256 retiredFix1201
const uint256 featureOwnerPaysFee
const uint256 featureCheckCashMakesTrustLine
const uint256 retiredFix1512
std::optional< uint256 > getRegisteredFeature(std::string const &name)
const uint256 featureFlowCross
static constexpr std::size_t numFeatures()
boost::container::flat_map< std::string, uint256 > nameToFeature