20#include <xrpl/basics/Log.h>
21#include <xrpl/basics/safe_cast.h>
22#include <xrpl/beast/utility/instrumentation.h>
23#include <xrpl/json/json_value.h>
24#include <xrpl/protocol/LedgerFormats.h>
25#include <xrpl/protocol/Permissions.h>
26#include <xrpl/protocol/SField.h>
27#include <xrpl/protocol/STBase.h>
28#include <xrpl/protocol/STInteger.h>
29#include <xrpl/protocol/Serializer.h>
30#include <xrpl/protocol/TER.h>
31#include <xrpl/protocol/TxFormats.h>
58 if (
getFName() == sfTransactionResult)
66 <<
"Unknown result code in metadata: " <<
value_;
76 if (
getFName() == sfTransactionResult)
84 <<
"Unknown result code in metadata: " <<
value_;
109 if (
getFName() == sfLedgerEntryType)
112 safe_cast<LedgerEntryType>(
value_));
115 return item->getName();
118 if (
getFName() == sfTransactionType)
124 return item->getName();
134 if (
getFName() == sfLedgerEntryType)
137 safe_cast<LedgerEntryType>(
value_));
140 return item->getName();
143 if (
getFName() == sfTransactionType)
149 return item->getName();
181 if (
getFName() == sfPermissionValue)
183 auto const permissionValue =
185 auto const granular =
198 return item->getName();
231 auto convertToString = [](uint64_t
const value,
int const base) {
233 base == 10 || base == 16,
234 "ripple::STUInt64::getJson : base 10 or 16");
236 base == 10 ? 20 : 16, 0);
241 "ripple::STUInt64::getJson : to_chars succeeded");
248 return convertToString(
value_, 10);
251 return convertToString(
value_, 16);
TxType permissionToTxType(uint32_t const &value) const
std::optional< std::string > getGranularName(GranularPermissionType const &value) const
static Permission const & getInstance()
bool shouldMeta(int c) const
SField const & getFName() const
Json::Value getJson(JsonOptions) const override
std::string getText() const override
value_type value() const noexcept
SerializedTypeID getSType() const override
static constexpr TERSubset fromInt(int from)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
beast::Journal debugLog()
Returns a debug journal.
GranularPermissionType
We have both transaction type permissions and granular type permissions.
bool transResultInfo(TER code, std::string &token, std::string &text)
Note, should be treated as flags that can be | and &.