1#include <xrpl/basics/Log.h>
2#include <xrpl/basics/safe_cast.h>
3#include <xrpl/beast/utility/instrumentation.h>
4#include <xrpl/json/json_value.h>
5#include <xrpl/protocol/LedgerFormats.h>
6#include <xrpl/protocol/Permissions.h>
7#include <xrpl/protocol/SField.h>
8#include <xrpl/protocol/STBase.h>
9#include <xrpl/protocol/STInteger.h>
10#include <xrpl/protocol/Serializer.h>
11#include <xrpl/protocol/TER.h>
12#include <xrpl/protocol/TxFormats.h>
39 if (
getFName() == sfTransactionResult)
48 <<
"Unknown result code in metadata: " <<
value_;
59 if (
getFName() == sfTransactionResult)
68 <<
"Unknown result code in metadata: " <<
value_;
97 safe_cast<LedgerEntryType>(
value_));
100 return item->getName();
103 if (
getFName() == sfTransactionType)
109 return item->getName();
119 if (
getFName() == sfLedgerEntryType)
122 safe_cast<LedgerEntryType>(
value_));
125 return item->getName();
128 if (
getFName() == sfTransactionType)
134 return item->getName();
159 if (
getFName() == sfPermissionValue)
161 auto const permissionName =
164 return *permissionName;
173 if (
getFName() == sfPermissionValue)
175 auto const permissionName =
178 return *permissionName;
210 auto convertToString = [](uint64_t
const value,
int const base) {
212 base == 10 || base == 16,
213 "ripple::STUInt64::getJson : base 10 or 16");
215 base == 10 ? 20 : 16, 0);
220 "ripple::STUInt64::getJson : to_chars succeeded");
227 return convertToString(
value_, 10);
230 return convertToString(
value_, 16);
std::optional< std::string > getPermissionName(std::uint32_t const value) const
static Permission const & getInstance()
bool shouldMeta(int c) const
SField const & getFName() const
std::string getText() const override
value_type value() const noexcept
Json::Value getJson(JsonOptions) const override
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.
bool transResultInfo(TER code, std::string &token, std::string &text)
Note, should be treated as flags that can be | and &.