mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 19:15:54 +00:00
Change output structure of vault_info
This commit is contained in:
@@ -561,6 +561,7 @@ JSS(server_status); // out: NetworkOPs
|
||||
JSS(server_version); // out: NetworkOPs
|
||||
JSS(settle_delay); // out: AccountChannels
|
||||
JSS(severity); // in: LogLevel
|
||||
JSS(share); // out: VaultInfo
|
||||
JSS(signature); // out: NetworkOPs, ChannelAuthorize
|
||||
JSS(signature_verified); // out: ChannelVerify
|
||||
JSS(signing_key); // out: NetworkOPs
|
||||
|
||||
@@ -803,15 +803,16 @@ class Vault_test : public beast::unit_test::suite
|
||||
auto const vaultAccount = //
|
||||
[&env, key = keylet.key, this]() -> AccountID {
|
||||
auto jvVault = env.rpc("vault_info", strHex(key));
|
||||
|
||||
BEAST_EXPECT(
|
||||
jvVault[jss::result][jss::nodes][0u][sfAssetsTotal] == "100");
|
||||
jvVault[jss::result][jss::vault][sfAssetsTotal] == "100");
|
||||
BEAST_EXPECT(
|
||||
jvVault[jss::result][jss::nodes][1u][sfOutstandingAmount] ==
|
||||
"100");
|
||||
jvVault[jss::result][jss::vault][jss::share]
|
||||
[sfOutstandingAmount] == "100");
|
||||
|
||||
// Vault pseudo-account
|
||||
return parseBase58<AccountID>(
|
||||
jvVault[jss::result][jss::nodes][0u][jss::Account]
|
||||
jvVault[jss::result][jss::vault][jss::Account]
|
||||
.asString())
|
||||
.value();
|
||||
}();
|
||||
@@ -843,10 +844,10 @@ class Vault_test : public beast::unit_test::suite
|
||||
testcase("nontransferable shares balance check");
|
||||
auto jvVault = env.rpc("vault_info", strHex(keylet.key));
|
||||
BEAST_EXPECT(
|
||||
jvVault[jss::result][jss::nodes][0u][sfAssetsTotal] == "50");
|
||||
jvVault[jss::result][jss::vault][sfAssetsTotal] == "50");
|
||||
BEAST_EXPECT(
|
||||
jvVault[jss::result][jss::nodes][1u][sfOutstandingAmount] ==
|
||||
"50");
|
||||
jvVault[jss::result][jss::vault][jss::share]
|
||||
[sfOutstandingAmount] == "50");
|
||||
}
|
||||
|
||||
{
|
||||
@@ -1552,15 +1553,10 @@ class Vault_test : public beast::unit_test::suite
|
||||
env.rpc("vault_info", strHex(keylet.key), "validated");
|
||||
|
||||
BEAST_EXPECT(!jv[jss::result].isMember(jss::error));
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::nodes));
|
||||
BEAST_EXPECT(jv[jss::result][jss::nodes].isArray());
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::directory));
|
||||
BEAST_EXPECT(jv[jss::result][jss::directory][jss::vault] == 0);
|
||||
BEAST_EXPECT(
|
||||
jv[jss::result][jss::directory][jss::mpt_issuance] == 1);
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::vault));
|
||||
check(
|
||||
jv[jss::result][jss::nodes][0u],
|
||||
jv[jss::result][jss::nodes][1u]);
|
||||
jv[jss::result][jss::vault],
|
||||
jv[jss::result][jss::vault][jss::share]);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -1572,15 +1568,10 @@ class Vault_test : public beast::unit_test::suite
|
||||
auto jv = env.rpc("json", "vault_info", to_string(jvParams));
|
||||
|
||||
BEAST_EXPECT(!jv[jss::result].isMember(jss::error));
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::nodes));
|
||||
BEAST_EXPECT(jv[jss::result][jss::nodes].isArray());
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::directory));
|
||||
BEAST_EXPECT(jv[jss::result][jss::directory][jss::vault] == 0);
|
||||
BEAST_EXPECT(
|
||||
jv[jss::result][jss::directory][jss::mpt_issuance] == 1);
|
||||
BEAST_EXPECT(jv[jss::result].isMember(jss::vault));
|
||||
check(
|
||||
jv[jss::result][jss::nodes][0u],
|
||||
jv[jss::result][jss::nodes][1u]);
|
||||
jv[jss::result][jss::vault],
|
||||
jv[jss::result][jss::vault][jss::share]);
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -47,8 +47,6 @@ doVaultInfo(RPC::JsonContext& context)
|
||||
return jvResult;
|
||||
}
|
||||
|
||||
bool const isBinary = context.params[jss::binary].asBool();
|
||||
|
||||
auto const sleVault = lpLedger->read(keylet::vault(uNodeIndex));
|
||||
auto const sleIssuance = sleVault == nullptr //
|
||||
? nullptr
|
||||
@@ -59,36 +57,12 @@ doVaultInfo(RPC::JsonContext& context)
|
||||
return jvResult;
|
||||
}
|
||||
|
||||
Json::Value directory = Json::objectValue;
|
||||
// Some directory positions in nodes are hardcoded below, because the
|
||||
// order of writing these is hardcoded, but it may not stay like this
|
||||
// forever. If a given type can have any number of nodes, use an array
|
||||
// rather than a number
|
||||
directory[jss::vault] = 0;
|
||||
directory[jss::mpt_issuance] = 1;
|
||||
Json::Value& vault = jvResult[jss::vault];
|
||||
vault = sleVault->getJson(JsonOptions::none);
|
||||
auto& share = vault[jss::share];
|
||||
share = sleIssuance->getJson(JsonOptions::none);
|
||||
|
||||
Json::Value nodes = Json::arrayValue;
|
||||
if (!isBinary)
|
||||
{
|
||||
auto& vault = nodes.append(Json::objectValue);
|
||||
vault = sleVault->getJson(JsonOptions::none);
|
||||
|
||||
auto& issuance = nodes.append(Json::objectValue);
|
||||
issuance = sleIssuance->getJson(JsonOptions::none);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto& vault = nodes.append(Json::objectValue);
|
||||
vault[jss::data] = serializeHex(*sleVault);
|
||||
vault[jss::index] = to_string(sleVault->key());
|
||||
|
||||
auto& issuance = nodes.append(Json::objectValue);
|
||||
issuance[jss::data] = serializeHex(*sleIssuance);
|
||||
issuance[jss::index] = to_string(sleIssuance->key());
|
||||
}
|
||||
|
||||
jvResult[jss::directory] = directory;
|
||||
jvResult[jss::nodes] = nodes;
|
||||
jvResult[jss::vault] = vault;
|
||||
return jvResult;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user