mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Include network_id in validations and subscription stream responses (#5579)
This change includes `network_id` data in the validations and ledger subscription stream responses, as well as unit tests to validate the response fields. Fixes #4783
This commit is contained in:
committed by
GitHub
parent
80d82c5b2b
commit
60e340d356
@@ -131,6 +131,9 @@ public:
|
||||
BEAST_EXPECT(jv.isMember(jss::id) && jv[jss::id] == 5);
|
||||
}
|
||||
BEAST_EXPECT(jv[jss::result][jss::ledger_index] == 2);
|
||||
BEAST_EXPECT(
|
||||
jv[jss::result][jss::network_id] ==
|
||||
env.app().config().NETWORK_ID);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -139,7 +142,8 @@ public:
|
||||
|
||||
// Check stream update
|
||||
BEAST_EXPECT(wsc->findMsg(5s, [&](auto const& jv) {
|
||||
return jv[jss::ledger_index] == 3;
|
||||
return jv[jss::ledger_index] == 3 &&
|
||||
jv[jss::network_id] == env.app().config().NETWORK_ID;
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -149,7 +153,8 @@ public:
|
||||
|
||||
// Check stream update
|
||||
BEAST_EXPECT(wsc->findMsg(5s, [&](auto const& jv) {
|
||||
return jv[jss::ledger_index] == 4;
|
||||
return jv[jss::ledger_index] == 4 &&
|
||||
jv[jss::network_id] == env.app().config().NETWORK_ID;
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -509,6 +514,11 @@ public:
|
||||
if (!jv.isMember(jss::validated_hash))
|
||||
return false;
|
||||
|
||||
uint32_t netID = env.app().config().NETWORK_ID;
|
||||
if (!jv.isMember(jss::network_id) ||
|
||||
jv[jss::network_id] != netID)
|
||||
return false;
|
||||
|
||||
// Certain fields are only added on a flag ledger.
|
||||
bool const isFlagLedger =
|
||||
(env.closed()->info().seq + 1) % 256 == 0;
|
||||
@@ -567,6 +577,7 @@ public:
|
||||
jv[jss::streams][0u] = "ledger";
|
||||
jr = env.rpc("json", "subscribe", to_string(jv))[jss::result];
|
||||
BEAST_EXPECT(jr[jss::status] == "success");
|
||||
BEAST_EXPECT(jr[jss::network_id] == env.app().config().NETWORK_ID);
|
||||
|
||||
jr = env.rpc("json", "unsubscribe", to_string(jv))[jss::result];
|
||||
BEAST_EXPECT(jr[jss::status] == "success");
|
||||
|
||||
@@ -2415,6 +2415,7 @@ NetworkOPsImp::pubValidation(std::shared_ptr<STValidation> const& val)
|
||||
jvObj[jss::flags] = val->getFlags();
|
||||
jvObj[jss::signing_time] = *(*val)[~sfSigningTime];
|
||||
jvObj[jss::data] = strHex(val->getSerializer().slice());
|
||||
jvObj[jss::network_id] = app_.config().NETWORK_ID;
|
||||
|
||||
if (auto version = (*val)[~sfServerVersion])
|
||||
jvObj[jss::server_version] = std::to_string(*version);
|
||||
@@ -3119,6 +3120,8 @@ NetworkOPsImp::pubLedger(std::shared_ptr<ReadView const> const& lpAccepted)
|
||||
jvObj[jss::ledger_time] = Json::Value::UInt(
|
||||
lpAccepted->info().closeTime.time_since_epoch().count());
|
||||
|
||||
jvObj[jss::network_id] = app_.config().NETWORK_ID;
|
||||
|
||||
if (!lpAccepted->rules().enabled(featureXRPFees))
|
||||
jvObj[jss::fee_ref] = Config::FEE_UNITS_DEPRECATED;
|
||||
jvObj[jss::fee_base] = lpAccepted->fees().base.jsonClipped();
|
||||
@@ -4177,6 +4180,7 @@ NetworkOPsImp::subLedger(InfoSub::ref isrListener, Json::Value& jvResult)
|
||||
jvResult[jss::reserve_base] =
|
||||
lpClosed->fees().accountReserve(0).jsonClipped();
|
||||
jvResult[jss::reserve_inc] = lpClosed->fees().increment.jsonClipped();
|
||||
jvResult[jss::network_id] = app_.config().NETWORK_ID;
|
||||
}
|
||||
|
||||
if ((mMode >= OperatingMode::SYNCING) && !isNeedNetworkLedger())
|
||||
|
||||
Reference in New Issue
Block a user