mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-27 22:15:49 +00:00
Simplify lookupLedger to use an RPC::Context.
This commit is contained in:
committed by
Vinnie Falco
parent
c094772bc0
commit
a0010effbc
@@ -30,8 +30,7 @@ Json::Value doAccountCurrencies (RPC::Context& context)
|
||||
|
||||
// Get the current ledger
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result (RPC::lookupLedger (params, ledger, context.ledgerMaster));
|
||||
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
if (!ledger)
|
||||
return result;
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ Json::Value doAccountInfo (RPC::Context& context)
|
||||
auto& params = context.params;
|
||||
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result = RPC::lookupLedger (params, ledger, context.ledgerMaster);
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
|
||||
if (!ledger)
|
||||
return result;
|
||||
|
||||
@@ -82,7 +82,7 @@ Json::Value doAccountLines (RPC::Context& context)
|
||||
return RPC::missing_field_error (jss::account);
|
||||
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result (RPC::lookupLedger (params, ledger, context.ledgerMaster));
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
if (! ledger)
|
||||
return result;
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ Json::Value doAccountObjects (RPC::Context& context)
|
||||
return RPC::missing_field_error (jss::account);
|
||||
|
||||
Ledger::pointer ledger;
|
||||
auto result = RPC::lookupLedger (params, ledger, context.ledgerMaster);
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
if (ledger == nullptr)
|
||||
return result;
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ Json::Value doAccountOffers (RPC::Context& context)
|
||||
return RPC::missing_field_error (jss::account);
|
||||
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result (RPC::lookupLedger (params, ledger, context.ledgerMaster));
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
if (! ledger)
|
||||
return result;
|
||||
|
||||
|
||||
@@ -83,13 +83,13 @@ Json::Value doAccountTx (RPC::Context& context)
|
||||
}
|
||||
else
|
||||
{
|
||||
Ledger::pointer l;
|
||||
Json::Value ret = RPC::lookupLedger (params, l, context.ledgerMaster);
|
||||
Ledger::pointer ledger;
|
||||
auto ret = RPC::lookupLedger (ledger, context);
|
||||
|
||||
if (!l)
|
||||
if (! ledger)
|
||||
return ret;
|
||||
|
||||
uLedgerMin = uLedgerMax = l->getLedgerSeq ();
|
||||
uLedgerMin = uLedgerMax = ledger->getLedgerSeq ();
|
||||
}
|
||||
|
||||
Json::Value resumeToken;
|
||||
|
||||
@@ -103,13 +103,13 @@ Json::Value doAccountTxOld (RPC::Context& context)
|
||||
}
|
||||
else
|
||||
{
|
||||
Ledger::pointer l;
|
||||
Json::Value ret = RPC::lookupLedger (context.params, l, context.ledgerMaster);
|
||||
Ledger::pointer ledger;
|
||||
auto ret = RPC::lookupLedger (ledger, context);
|
||||
|
||||
if (!l)
|
||||
if (!ledger)
|
||||
return ret;
|
||||
|
||||
uLedgerMin = uLedgerMax = l->getLedgerSeq ();
|
||||
uLedgerMin = uLedgerMax = ledger->getLedgerSeq ();
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
@@ -31,8 +31,7 @@ Json::Value doBookOffers (RPC::Context& context)
|
||||
return rpcError (rpcTOO_BUSY);
|
||||
|
||||
Ledger::pointer lpLedger;
|
||||
Json::Value jvResult (
|
||||
RPC::lookupLedger (context.params, lpLedger, context.ledgerMaster));
|
||||
auto jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
|
||||
@@ -50,7 +50,7 @@ Json::Value doGatewayBalances (RPC::Context& context)
|
||||
|
||||
// Get the current ledger
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result (RPC::lookupLedger (params, ledger, context.ledgerMaster));
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
|
||||
if (!ledger)
|
||||
return result;
|
||||
|
||||
@@ -41,7 +41,7 @@ Status LedgerHandler::check ()
|
||||
if (!needsLedger)
|
||||
return Status::OK;
|
||||
|
||||
if (auto s = RPC::lookupLedger (params, ledger_, context_.ledgerMaster, result_))
|
||||
if (auto s = RPC::lookupLedger (ledger_, context_, result_))
|
||||
return s;
|
||||
|
||||
bool bFull = params[jss::full].asBool();
|
||||
|
||||
@@ -40,7 +40,7 @@ Json::Value doLedgerData (RPC::Context& context)
|
||||
Ledger::pointer lpLedger;
|
||||
auto const& params = context.params;
|
||||
|
||||
Json::Value jvResult = RPC::lookupLedger (params, lpLedger, context.ledgerMaster);
|
||||
auto jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
|
||||
|
||||
@@ -31,8 +31,7 @@ namespace ripple {
|
||||
Json::Value doLedgerEntry (RPC::Context& context)
|
||||
{
|
||||
Ledger::pointer lpLedger;
|
||||
Json::Value jvResult = RPC::lookupLedger (
|
||||
context.params, lpLedger, context.ledgerMaster);
|
||||
auto jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
|
||||
@@ -29,8 +29,7 @@ namespace ripple {
|
||||
Json::Value doLedgerHeader (RPC::Context& context)
|
||||
{
|
||||
Ledger::pointer lpLedger;
|
||||
Json::Value jvResult = RPC::lookupLedger (
|
||||
context.params, lpLedger, context.ledgerMaster);
|
||||
auto jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
|
||||
@@ -84,7 +84,7 @@ Json::Value doNoRippleCheck (RPC::Context& context)
|
||||
transactions = params["transactions"].asBool();
|
||||
|
||||
Ledger::pointer ledger;
|
||||
Json::Value result (RPC::lookupLedger (params, ledger, context.ledgerMaster));
|
||||
auto result = RPC::lookupLedger (ledger, context);
|
||||
if (! ledger)
|
||||
return result;
|
||||
|
||||
|
||||
@@ -73,8 +73,7 @@ Json::Value doRipplePathFind (RPC::Context& context)
|
||||
context.params.isMember(jss::ledger_hash))
|
||||
{
|
||||
// The caller specified a ledger
|
||||
jvResult = RPC::lookupLedger (
|
||||
context.params, lpLedger, context.ledgerMaster);
|
||||
jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
}
|
||||
@@ -90,7 +89,8 @@ Json::Value doRipplePathFind (RPC::Context& context)
|
||||
lpLedger = context.ledgerMaster.getClosedLedger();
|
||||
|
||||
PathRequest::pointer request;
|
||||
context.suspend ([&request, &context, &jvResult, &lpLedger](RPC::Callback const& c)
|
||||
context.suspend ([&request, &context, &jvResult, &lpLedger]
|
||||
(RPC::Callback const& c)
|
||||
{
|
||||
jvResult = getApp().getPathRequests().makeLegacyPathRequest (
|
||||
request, c, lpLedger, context.params);
|
||||
|
||||
@@ -31,10 +31,7 @@ namespace ripple {
|
||||
Json::Value doTransactionEntry (RPC::Context& context)
|
||||
{
|
||||
Ledger::pointer lpLedger;
|
||||
Json::Value jvResult = RPC::lookupLedger (
|
||||
context.params,
|
||||
lpLedger,
|
||||
context.ledgerMaster);
|
||||
Json::Value jvResult = RPC::lookupLedger (lpLedger, context);
|
||||
|
||||
if (!lpLedger)
|
||||
return jvResult;
|
||||
|
||||
@@ -34,15 +34,16 @@ bool isValidatedOld (LedgerMaster& ledgerMaster)
|
||||
Tuning::maxValidatedLedgerAge;
|
||||
}
|
||||
|
||||
Status ledgerFromRequest (
|
||||
Json::Value const& params,
|
||||
Ledger::pointer& ledger,
|
||||
LedgerMaster& ledgerMaster)
|
||||
Status ledgerFromRequest (Ledger::pointer& ledger, Context& context)
|
||||
{
|
||||
static auto const minSequenceGap = 10;
|
||||
|
||||
ledger.reset();
|
||||
|
||||
auto& params = context.params;
|
||||
auto& netOps = context.netOps;
|
||||
auto& ledgerMaster = context.ledgerMaster;
|
||||
|
||||
auto indexValue = params[jss::ledger_index];
|
||||
auto hashValue = params[jss::ledger_hash];
|
||||
|
||||
@@ -182,36 +183,32 @@ bool isValidated (LedgerMaster& ledgerMaster, Ledger& ledger)
|
||||
// optionally the fields "ledger_hash", "ledger_index" and
|
||||
// "ledger_current_index", if they are defined.
|
||||
Status lookupLedger (
|
||||
Json::Value const& params,
|
||||
Ledger::pointer& ledger,
|
||||
LedgerMaster& ledgerMaster,
|
||||
Json::Value& jsonResult)
|
||||
Ledger::pointer& ledger, Context& context, Json::Value& result)
|
||||
{
|
||||
if (auto status = ledgerFromRequest (params, ledger, ledgerMaster))
|
||||
if (auto status = ledgerFromRequest (ledger, context))
|
||||
return status;
|
||||
|
||||
if (ledger->isClosed ())
|
||||
{
|
||||
jsonResult[jss::ledger_hash] = to_string (ledger->getHash());
|
||||
jsonResult[jss::ledger_index] = ledger->getLedgerSeq();
|
||||
result[jss::ledger_hash] = to_string (ledger->getHash());
|
||||
result[jss::ledger_index] = ledger->getLedgerSeq();
|
||||
}
|
||||
else
|
||||
{
|
||||
jsonResult[jss::ledger_current_index] = ledger->getLedgerSeq();
|
||||
result[jss::ledger_current_index] = ledger->getLedgerSeq();
|
||||
}
|
||||
jsonResult[jss::validated] = isValidated (ledgerMaster, *ledger);
|
||||
|
||||
result[jss::validated] = isValidated (context.ledgerMaster, *ledger);
|
||||
return Status::OK;
|
||||
}
|
||||
|
||||
Json::Value lookupLedger (
|
||||
Json::Value const& params,
|
||||
Ledger::pointer& ledger,
|
||||
LedgerMaster& ledgerMaster)
|
||||
Json::Value lookupLedger (Ledger::pointer& ledger, Context& context)
|
||||
{
|
||||
Json::Value value (Json::objectValue);
|
||||
if (auto status = lookupLedger (params, ledger, ledgerMaster, value))
|
||||
status.inject (value);
|
||||
return value;
|
||||
Json::Value result;
|
||||
if (auto status = lookupLedger (ledger, context, result))
|
||||
status.inject (result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
} // RPC
|
||||
|
||||
@@ -25,26 +25,22 @@
|
||||
namespace ripple {
|
||||
namespace RPC {
|
||||
|
||||
class Context;
|
||||
|
||||
/** Look up a ledger from a request and fill a Json::Result with either
|
||||
an error, or data representing a ledger.
|
||||
|
||||
If there is no error in the return value, then the ledger pointer will have
|
||||
been filled.
|
||||
*/
|
||||
Json::Value lookupLedger (
|
||||
Json::Value const& request,
|
||||
Ledger::pointer&,
|
||||
LedgerMaster&);
|
||||
Json::Value lookupLedger (Ledger::pointer&, Context&);
|
||||
|
||||
/** Look up a ledger from a request and fill a Json::Result with the data
|
||||
representing a ledger.
|
||||
|
||||
If the returned Status is OK, the ledger pointer will have been filled. */
|
||||
Status lookupLedger (
|
||||
Json::Value const& request,
|
||||
Ledger::pointer&,
|
||||
LedgerMaster&,
|
||||
Json::Value& result);
|
||||
Ledger::pointer&, Context&, Json::Value& result);
|
||||
|
||||
} // RPC
|
||||
} // ripple
|
||||
|
||||
Reference in New Issue
Block a user