20#ifndef RIPPLE_PROTOCOL_PERMISSION_H_INCLUDED 
   21#define RIPPLE_PROTOCOL_PERMISSION_H_INCLUDED 
   23#include <xrpl/protocol/Rules.h> 
   24#include <xrpl/protocol/TER.h> 
   25#include <xrpl/protocol/TxFormats.h> 
   40#pragma push_macro("PERMISSION") 
   43#define PERMISSION(type, txType, value) type = value, 
   45#include <xrpl/protocol/detail/permissions.macro> 
   48#pragma pop_macro("PERMISSION") 
 
std::unordered_map< std::uint16_t, Delegation > delegatableTx_
 
std::optional< std::reference_wrapper< uint256 const > > const getTxFeature(TxType txType) const
 
TxType permissionToTxType(uint32_t const &value) const
 
std::optional< std::string > getGranularName(GranularPermissionType const &value) const
 
Permission(Permission const &)=delete
 
std::unordered_map< std::uint16_t, uint256 > txFeatureMap_
 
std::optional< std::string > getPermissionName(std::uint32_t const value) const
 
std::unordered_map< GranularPermissionType, std::string > granularNameMap_
 
std::unordered_map< std::string, GranularPermissionType > granularPermissionMap_
 
std::optional< std::uint32_t > getGranularValue(std::string const &name) const
 
std::optional< TxType > getGranularTxType(GranularPermissionType const &gpType) const
 
uint32_t txToPermissionType(TxType const &type) const
 
Permission & operator=(Permission const &)=delete
 
static Permission const & getInstance()
 
std::unordered_map< GranularPermissionType, TxType > granularTxTypeMap_
 
bool isDelegatable(std::uint32_t const &permissionValue, Rules const &rules) const
 
Rules controlling protocol behavior.
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
TxType
Transaction type identifiers.
 
GranularPermissionType
We have both transaction type permissions and granular type permissions.