20 #ifndef RIPPLE_PROTOCOL_FEATURE_H_INCLUDED
21 #define RIPPLE_PROTOCOL_FEATURE_H_INCLUDED
23 #include <ripple/basics/base_uint.h>
24 #include <boost/container/flat_map.hpp>
117 template <
class... Fs>
122 if constexpr (
sizeof...(fs) > 0)
128 using base::operator==;
139 using base::operator[];
151 template <
class... Fs>
155 assert(
count() == (
sizeof...(fs) + 1));
161 for (
auto const& f : fs)
163 assert(fs.size() ==
count());
223 static_cast<base const&
>(lhs) &
static_cast<base const&
>(rhs)};
242 static_cast<base const&
>(lhs) |
static_cast<base const&
>(rhs)};
261 static_cast<base const&
>(lhs) ^
static_cast<base const&
>(rhs)};
300 for (
size_t i = 0; i < bs.
size(); ++i)
FeatureBitset & operator|=(FeatureBitset const &rhs)
const uint256 fixRemoveNFTokenAutoTrustLine
const uint256 fixQualityUpperBound
const uint256 fixNFTokenNegOffer
const uint256 featureXRPFees
const uint256 featureClawback
static constexpr std::size_t numFeatures
const uint256 featureDepositPreauth
const uint256 fixReducedOffersV1
FeatureBitset(uint256 const &f, Fs &&... fs)
const uint256 fixSTAmountCanonicalize
const uint256 featureDepositAuth
const uint256 featureMultiSignReserve
FeatureBitset & flip(uint256 const &f)
FeatureBitset(base const &b)
friend FeatureBitset operator^(uint256 const &lhs, FeatureBitset const &rhs)
friend FeatureBitset operator-(uint256 const &lhs, FeatureBitset const &rhs)
const uint256 fixNFTokenRemint
friend FeatureBitset operator|(uint256 const &lhs, FeatureBitset const &rhs)
const uint256 featureDeletableAccounts
friend FeatureBitset operator^(FeatureBitset const &lhs, FeatureBitset const &rhs)
std::size_t numUpVotedAmendments()
Amendments that this server will vote for by default.
friend FeatureBitset operator&(uint256 const &lhs, FeatureBitset const &rhs)
const uint256 featureRequireFullyCanonicalSig
std::size_t numDownVotedAmendments()
Amendments that this server won't vote for by default.
void foreachFeature(FeatureBitset bs, F &&f)
friend FeatureBitset operator&(FeatureBitset const &lhs, uint256 const &rhs)
const uint256 featureExpandedSignerList
const uint256 featureDisallowIncoming
const uint256 fixCheckThreading
const uint256 fixAmendmentMajorityCalc
FeatureBitset operator~() const
friend FeatureBitset operator|(FeatureBitset const &lhs, uint256 const &rhs)
auto operator[](uint256 const &f) const
const uint256 fixTakerDryOfferRemoval
void initFromFeatures(uint256 const &f, Fs &&... fs)
size_t featureToBitsetIndex(uint256 const &f)
const uint256 fixPayChanRecipientOwnerDir
const uint256 fixMasterKeyAsRegularKey
const uint256 featureChecks
const uint256 fixNFTokenDirV1
const uint256 featureXChainBridge
const uint256 fixRmSmallIncreasedQOffers
const uint256 fixDisallowIncomingV1
const uint256 featureFlowSortStrands
const uint256 fixTrustLinesToSelf
const uint256 featureHardenedValidations
FeatureBitset(Col const &fs)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
const uint256 featureNonFungibleTokensV1
const uint256 featureCryptoConditionsSuite
const uint256 featureImmediateOfferKilled
const uint256 featureFlow
const uint256 featureNegativeUNL
const uint256 featureNonFungibleTokensV1_1
const uint256 fixUniversalNumber
FeatureBitset & reset(uint256 const &f)
uint256 bitsetIndexToFeature(size_t i)
FeatureBitset & set(uint256 const &f, bool value=true)
friend FeatureBitset operator&(FeatureBitset const &lhs, FeatureBitset const &rhs)
const uint256 featureTicketBatch
friend FeatureBitset operator-(FeatureBitset const &lhs, uint256 const &rhs)
FeatureBitset & operator&=(FeatureBitset const &rhs)
const uint256 featureOwnerPaysFee
const uint256 fixNonFungibleTokensV1_2
const uint256 featureCheckCashMakesTrustLine
const uint256 fixFillOrKill
std::optional< uint256 > getRegisteredFeature(std::string const &name)
friend FeatureBitset operator|(FeatureBitset const &lhs, FeatureBitset const &rhs)
const uint256 featureFlowCross
std::map< std::string, VoteBehavior > const & supportedAmendments()
Amendments that this server supports and the default voting behavior.
friend FeatureBitset operator-(FeatureBitset const &lhs, FeatureBitset const &rhs)
friend FeatureBitset operator^(FeatureBitset const &lhs, uint256 const &rhs)
auto operator[](uint256 const &f)
std::string featureToName(uint256 const &f)