diff --git a/src/ripple/app/misc/NetworkOPs.cpp b/src/ripple/app/misc/NetworkOPs.cpp index f2932036e..ded9f36c8 100644 --- a/src/ripple/app/misc/NetworkOPs.cpp +++ b/src/ripple/app/misc/NetworkOPs.cpp @@ -1564,11 +1564,14 @@ void NetworkOPsImp::pubManifest (Manifest const& mo) { Json::Value jvObj (Json::objectValue); - jvObj [jss::type] = "manifestReceived"; - jvObj [jss::master_key] = toBase58(TokenType::TOKEN_NODE_PUBLIC, mo.masterKey); - jvObj [jss::signing_key] = toBase58(TokenType::TOKEN_NODE_PUBLIC, mo.signingKey); - jvObj [jss::seq] = Json::UInt (mo.sequence); - jvObj [jss::signature] = strHex (mo.getSignature ()); + jvObj [jss::type] = "manifestReceived"; + jvObj [jss::master_key] = toBase58( + TokenType::TOKEN_NODE_PUBLIC, mo.masterKey); + jvObj [jss::signing_key] = toBase58( + TokenType::TOKEN_NODE_PUBLIC, mo.signingKey); + jvObj [jss::seq] = Json::UInt (mo.sequence); + jvObj [jss::signature] = strHex (mo.getSignature ()); + jvObj [jss::master_signature] = strHex (mo.getMasterSignature ()); for (auto i = mSubManifests.begin (); i != mSubManifests.end (); ) { @@ -2043,7 +2046,7 @@ Json::Value NetworkOPsImp::getServerInfo (bool human, bool admin) if (! validation_manifest.lines().empty()) { std::string s; - s.reserve (188); + s.reserve (Manifest::textLength); for (auto const& line : validation_manifest.lines()) s += beast::rfc2616::trim(line); if (auto mo = make_Manifest (beast::detail::base64_decode(s))) diff --git a/src/ripple/overlay/impl/Manifest.h b/src/ripple/overlay/impl/Manifest.h index fd9ca966b..3d9bce89e 100644 --- a/src/ripple/overlay/impl/Manifest.h +++ b/src/ripple/overlay/impl/Manifest.h @@ -85,6 +85,8 @@ namespace ripple { struct Manifest { + static std::size_t constexpr textLength = 288; + std::string serialized; PublicKey masterKey; PublicKey signingKey; diff --git a/src/ripple/overlay/impl/OverlayImpl.cpp b/src/ripple/overlay/impl/OverlayImpl.cpp index 9eddb9ea1..638866e3a 100644 --- a/src/ripple/overlay/impl/OverlayImpl.cpp +++ b/src/ripple/overlay/impl/OverlayImpl.cpp @@ -497,7 +497,7 @@ OverlayImpl::setupValidatorKeyManifests (BasicConfig const& config, if (! validation_manifest.lines().empty()) { std::string s; - s.reserve (188); + s.reserve (Manifest::textLength); for (auto const& line : validation_manifest.lines()) s += beast::rfc2616::trim(line); if (auto mo = make_Manifest (beast::detail::base64_decode(s))) diff --git a/src/ripple/protocol/JsonFields.h b/src/ripple/protocol/JsonFields.h index 3539dceed..c7bf72601 100644 --- a/src/ripple/protocol/JsonFields.h +++ b/src/ripple/protocol/JsonFields.h @@ -264,6 +264,7 @@ JSS ( marker ); // in/out: AccountTx, AccountOffers, JSS ( master_key ); // out: WalletPropose JSS ( master_seed ); // out: WalletPropose JSS ( master_seed_hex ); // out: WalletPropose +JSS ( master_signature ); // out: pubManifest JSS ( max_ledger ); // in/out: LedgerCleaner JSS ( max_queue_size ); // out: TxQ JSS ( max_spend_drops ); // out: AccountInfo