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