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>
56 if (request.ledger().ledger_case() ==
57 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
59 if (request.ledger().shortcut() !=
60 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_VALIDATED &&
61 request.ledger().shortcut() !=
62 org::xrpl::rpc::v1::LedgerSpecifier::SHORTCUT_UNSPECIFIED)
69 org::xrpl::rpc::v1::GetLedgerDiffRequest>::value)
71 auto help = [](
auto specifier) {
72 if (specifier.ledger_case() ==
73 org::xrpl::rpc::v1::LedgerSpecifier::LedgerCase::kShortcut)
75 if (specifier.shortcut() !=
76 org::xrpl::rpc::v1::LedgerSpecifier::
78 specifier.shortcut() !=
79 org::xrpl::rpc::v1::LedgerSpecifier::
85 return help(request.base_ledger()) || help(request.desired_ledger());
94 template <
class Request>