20 #ifndef RIPPLE_APP_REPORTING_P2PPROXY_H_INCLUDED
21 #define RIPPLE_APP_REPORTING_P2PPROXY_H_INCLUDED
23 #include <ripple/app/main/Application.h>
24 #include <ripple/rpc/Context.h>
25 #include <ripple/rpc/impl/Handler.h>
27 #include <boost/beast/websocket.hpp>
29 #include "org/xrpl/rpc/v1/xrp_ledger.grpc.pb.h"
30 #include <grpcpp/grpcpp.h>
45 template <
class Request>
58 if (request.ledger().ledger_case() ==
59 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
61 if (request.ledger().shortcut() !=
62 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_VALIDATED &&
63 request.ledger().shortcut() !=
64 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_UNSPECIFIED)
71 org::xrpl::rpc::v1::GetLedgerDiffRequest>::value)
73 auto help = [](
auto specifier) {
74 if (specifier.ledger_case() ==
75 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
77 if (specifier.shortcut() !=
78 org::xrpl::rpc::v1::LedgerSpecifier::
80 specifier.shortcut() !=
81 org::xrpl::rpc::v1::LedgerSpecifier::
87 return help(request.base_ledger()) || help(request.desired_ledger());
96 template <
class Request>