1#ifndef XRPL_LEDGER_RULES_H_INCLUDED
2#define XRPL_LEDGER_RULES_H_INCLUDED
4#include <xrpl/basics/base_uint.h>
5#include <xrpl/beast/hash/uhash.h>
6#include <xrpl/protocol/STVector256.h>
15class DigestAwareReadView;
RAII class to set and restore the current transaction rules.
std::optional< Rules > saved_
CurrentTransactionRulesGuard()=delete
~CurrentTransactionRulesGuard()
CurrentTransactionRulesGuard(Rules r)
CurrentTransactionRulesGuard(CurrentTransactionRulesGuard const &)=delete
CurrentTransactionRulesGuard & operator=(CurrentTransactionRulesGuard const &)=delete
ReadView that associates keys with digests.
Rules controlling protocol behavior.
Rules(Rules const &)=default
std::shared_ptr< Impl const > impl_
bool enabled(uint256 const &feature) const
Returns true if a feature is enabled.
bool operator!=(Rules const &other) const
friend Rules makeRulesGivenLedger(DigestAwareReadView const &ledger, Rules const ¤t)
bool operator==(Rules const &) const
Returns true if two rule sets are identical.
Rules & operator=(Rules &&)=default
Rules & operator=(Rules const &)=default
std::unordered_set< uint256, beast::uhash<> > const & presets() const
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
bool isFeatureEnabled(uint256 const &feature)
void setCurrentTransactionRules(std::optional< Rules > r)
@ current
This was a new validation and was added.
static Hasher::result_type digest(void const *data, std::size_t size) noexcept
std::optional< Rules > const & getCurrentTransactionRules()