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/server/NetworkOPs.h>
11
12#include <org/xrpl/rpc/v1/ledger.pb.h>
13#include <rpcspec/Ledger.hpp>
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, ::rpc::spec::LedgerShortcut shortcut, Context const& context);
80
92template <class T>
94getLedger(T& ledger, ::rpc::spec::LedgerSpecifier const& specifier, Context const& context);
95
111json::Value
112lookupLedger(std::shared_ptr<ReadView const>&, JsonContext const&);
113
129Status
130lookupLedger(std::shared_ptr<ReadView const>&, JsonContext const&, json::Value& result);
131
146template <class T, class R>
147Status
148ledgerFromRequest(T& ledger, GRPCContext<R> const& context);
149
162template <class T>
163Status
165 T& ledger,
166 org::xrpl::rpc::v1::LedgerSpecifier const& specifier,
167 Context const& context);
168
189std::expected<std::shared_ptr<Ledger const>, json::Value>
190getOrAcquireLedger(rpc::JsonContext const& context);
191
192} // namespace rpc
193
194} // 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 getLedger(T &ledger, UInt256 const &ledgerHash, Context const &context)
Retrieves a ledger by its hash.
Status ledgerFromRequest(T &ledger, GRPCContext< R > const &context)
Retrieves a ledger from a gRPC request context.
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
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