diff --git a/src/rpc/RPC.cpp b/src/rpc/RPC.cpp index 17e723ce..d8638af5 100644 --- a/src/rpc/RPC.cpp +++ b/src/rpc/RPC.cpp @@ -166,12 +166,19 @@ buildResponse(Context const& ctx) { if (shouldForwardToRippled(ctx)) { - auto res = ctx.balancer->forwardToRippled(ctx.params, ctx.clientIp); + boost::json::object toForward = ctx.params; + toForward["command"] = ctx.method; + + auto res = ctx.balancer->forwardToRippled(toForward, ctx.clientIp); ctx.counters.rpcForwarded(ctx.method); if (!res) return Status{Error::rpcFAILED_TO_FORWARD}; + + if (res->contains("result") && res->at("result").is_object()) + return res->at("result").as_object(); + return *res; } diff --git a/src/webserver/WsBase.h b/src/webserver/WsBase.h index ec6ed269..fa0f9b43 100644 --- a/src/webserver/WsBase.h +++ b/src/webserver/WsBase.h @@ -271,7 +271,7 @@ public: if (!id.is_null()) error["id"] = id; error["request"] = request; - response = error; + result = error; } else {