20#include <xrpl/beast/utility/instrumentation.h>
21#include <xrpl/protocol/Permissions.h>
22#include <xrpl/protocol/jss.h>
29#pragma push_macro("TRANSACTION")
32#define TRANSACTION(tag, value, name, delegatable, fields) {value, delegatable},
34#include <xrpl/protocol/detail/transactions.macro>
37#pragma pop_macro("TRANSACTION")
41#pragma push_macro("PERMISSION")
44#define PERMISSION(type, txType, value) {#type, type},
46#include <xrpl/protocol/detail/permissions.macro>
49#pragma pop_macro("PERMISSION")
53#pragma push_macro("PERMISSION")
56#define PERMISSION(type, txType, value) {type, #type},
58#include <xrpl/protocol/detail/permissions.macro>
61#pragma pop_macro("PERMISSION")
65#pragma push_macro("PERMISSION")
68#define PERMISSION(type, txType, value) {type, txType},
70#include <xrpl/protocol/detail/permissions.macro>
73#pragma pop_macro("PERMISSION")
78 permission.second > UINT16_MAX,
79 "ripple::Permission::granularPermissionMap_ : granular permission "
80 "value must not exceed the maximum uint16_t value.");
95 return static_cast<uint32_t
>(it->second);
123 auto const granularPermission =
125 if (granularPermission)
139 return static_cast<uint32_t
>(type) + 1;
145 return static_cast<TxType>(value - 1);
std::unordered_map< std::uint16_t, Delegation > delegatableTx_
TxType permissionToTxType(uint32_t const &value) const
bool isDelegatable(std::uint32_t const &permissionValue) const
std::optional< std::string > getGranularName(GranularPermissionType 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
static Permission const & getInstance()
std::unordered_map< GranularPermissionType, TxType > granularTxTypeMap_
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.