1#ifndef XRPL_RPC_RPCHELPERS_H_INCLUDED 
    2#define XRPL_RPC_RPCHELPERS_H_INCLUDED 
    4#include <xrpld/app/misc/NetworkOPs.h> 
    5#include <xrpld/app/misc/TxQ.h> 
    6#include <xrpld/rpc/Context.h> 
    7#include <xrpld/rpc/Status.h> 
    8#include <xrpld/rpc/detail/Tuning.h> 
   10#include <xrpl/beast/core/SemanticVersion.h> 
   11#include <xrpl/proto/org/xrpl/rpc/v1/xrp_ledger.pb.h> 
   12#include <xrpl/protocol/ApiVersion.h> 
   13#include <xrpl/protocol/SecretKey.h> 
   43    bool bStrict = 
false);
 
   55    bool bStrict = 
false);
 
   72    ReadView 
const& ledger,
 
   87    ReadView 
const& ledger,
 
  109getLedger(T& ledger, uint32_t ledgerIndex, Context& context);
 
  140template <
class T, 
class R>
 
  148    org::xrpl::rpc::v1::LedgerSpecifier 
const& specifier,
 
JSON (JavaScript Object Notation).
 
Status
Return codes from Backend operations.
 
Status ledgerFromRequest(T &ledger, GRPCContext< R > &context)
 
error_code_i accountFromStringWithCode(AccountID &result, std::string const &strIdent, bool bStrict)
Decode account ID from string.
 
std::optional< Seed > getSeedFromRPC(Json::Value const ¶ms, Json::Value &error)
 
std::variant< std::shared_ptr< Ledger const >, Json::Value > getLedgerByContext(RPC::JsonContext &context)
Return a ledger based on ledger_hash or ledger_index, or an RPC error.
 
bool isAccountObjectsValidType(LedgerEntryType const &type)
Check if the type is a valid filtering type for account_objects method.
 
static constexpr std::integral_constant< unsigned, Version > apiVersion
 
bool isRelatedToAccount(ReadView const &ledger, std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Tests if a SLE is owned by accountID.
 
void injectSLE(Json::Value &jv, SLE const &sle)
Inject JSON describing ledger entry.
 
Status getLedger(T &ledger, uint256 const &ledgerHash, Context &context)
Get ledger by hash If there is no error in the return value, the ledger pointer will have been filled...
 
std::pair< RPC::Status, LedgerEntryType > chooseLedgerEntryType(Json::Value const ¶ms)
 
bool getAccountObjects(ReadView const &ledger, AccountID const &account, std::optional< std::vector< LedgerEntryType > > const &typeFilter, uint256 dirIndex, uint256 entryIndex, std::uint32_t const limit, Json::Value &jvResult)
Gathers all objects for an account in a ledger.
 
std::optional< Json::Value > readLimitField(unsigned int &limit, Tuning::LimitRange const &range, JsonContext const &context)
Retrieve the limit value from a JsonContext, or set a default - then restrict the limit by max and mi...
 
Json::Value accountFromString(AccountID &result, std::string const &strIdent, bool bStrict)
 
static constexpr auto apiVersionIfUnspecified
 
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext &context, Json::Value &result)
Look up a ledger from a request and fill a Json::Result with the data representing a ledger.
 
Status ledgerFromSpecifier(T &ledger, org::xrpl::rpc::v1::LedgerSpecifier const &specifier, Context &context)
 
std::optional< AccountID > accountFromStringStrict(std::string const &account)
Get an AccountID from an account ID or public key.
 
hash_set< AccountID > parseAccountIds(Json::Value const &jvArray)
 
std::uint64_t getStartHint(std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Gets the start hint for traversing account objects.
 
bool isHexTxID(std::string const &txid)
 
std::optional< Seed > parseRippleLibSeed(Json::Value const &value)
 
std::optional< std::pair< PublicKey, SecretKey > > keypairForSignature(Json::Value const ¶ms, Json::Value &error, unsigned int apiVersion)
 
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
 
base_uint< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
 
LedgerEntryType
Identifiers for on-ledger objects.
 
Represents RPC limit parameter values that have a min, default and max.