xrpld
Loading...
Searching...
No Matches
RPCLedgerHelpers.h
1#pragma once
2
3#include <xrpld/rpc/Context.h>
4#include <xrpld/rpc/Status.h>
5#include <xrpld/rpc/detail/Tuning.h>
6
7#include <xrpl/basics/base_uint.h>
8#include <xrpl/json/json_value.h>
9#include <xrpl/ledger/Ledger.h>
10#include <xrpl/protocol/LedgerShortcut.h>
11#include <xrpl/server/NetworkOPs.h>
12
13#include <org/xrpl/rpc/v1/ledger.pb.h>
14
15#include <cstdint>
16#include <expected>
17#include <memory>
18
19namespace xrpl {
20
21class ReadView;
22class Transaction;
23
24namespace rpc {
25
26struct JsonContext;
27
41template <class T>
43getLedger(T& ledger, uint256 const& ledgerHash, Context const& context);
44
59template <class T>
61getLedger(T& ledger, uint32_t ledgerIndex, Context const& context);
62
77template <class T>
79getLedger(T& ledger, LedgerShortcut shortcut, Context const& context);
80
96json::Value
97lookupLedger(std::shared_ptr<ReadView const>&, JsonContext const&);
98
114Status
115lookupLedger(std::shared_ptr<ReadView const>&, JsonContext const&, json::Value& result);
116
131template <class T, class R>
132Status
133ledgerFromRequest(T& ledger, GRPCContext<R> const& context);
134
147template <class T>
148Status
150 T& ledger,
151 org::xrpl::rpc::v1::LedgerSpecifier const& specifier,
152 Context const& context);
153
174std::expected<std::shared_ptr<Ledger const>, json::Value>
175getOrAcquireLedger(rpc::JsonContext const& context);
176
177} // namespace rpc
178
179} // namespace xrpl
A view into a ledger.
Definition ReadView.h:41
API version numbers used in later API versions.
Definition ApiVersion.h:36
std::expected< std::shared_ptr< Ledger const >, json::Value > getOrAcquireLedger(rpc::JsonContext const &context)
Retrieves or acquires a ledger based on the parameters provided in the given JsonContext.
Status ledgerFromRequest(T &ledger, GRPCContext< R > const &context)
Retrieves a ledger from a gRPC request context.
Status getLedger(T &ledger, uint256 const &ledgerHash, Context const &context)
Retrieves a ledger by its hash.
Status ledgerFromSpecifier(T &ledger, org::xrpl::rpc::v1::LedgerSpecifier const &specifier, Context const &context)
Retrieves a ledger based on a LedgerSpecifier.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, json::Value &result)
Looks up a ledger from a request and fills a json::Value with ledger data.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
LedgerShortcut
Enumeration of ledger shortcuts for specifying which ledger to use.
BaseUInt< 256 > uint256
Definition base_uint.h:580
The context of information needed to call an RPC.
Definition Context.h:27
Status represents the results of an operation that might fail.
Definition Status.h:27