Skip to content

Commit

Permalink
Add verbose parameter to listvaults
Browse files Browse the repository at this point in the history
  • Loading branch information
dcorral authored and prasannavl committed Nov 2, 2021
1 parent ea427cc commit 526e711
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions src/masternodes/rpc_vault.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ namespace {
collValue = ValueFromUint(rate.val->totalCollaterals);
loanValue = ValueFromUint(rate.val->totalLoans);
ratioValue = ValueFromAmount(rate.val->precisionRatio());
collateralRatio = int(rate.val->ratio());
collateralRatio = int(rate.val->ratio());
}

UniValue loanBalances{UniValue::VARR};
Expand Down Expand Up @@ -387,6 +387,10 @@ UniValue listvaults(const JSONRPCRequest& request) {
"state", RPCArg::Type::STR, RPCArg::Optional::OMITTED,
"Wether the vault is under a given state. (default = 'unknown')"
},
{
"verbose", RPCArg::Type::BOOL, RPCArg::Optional::OMITTED,
"Flag for verbose list (default = false), otherwise only ids, ownerAddress, loanSchemeIds and state are listed"
}
},
},
{
Expand Down Expand Up @@ -428,6 +432,7 @@ UniValue listvaults(const JSONRPCRequest& request) {
CScript ownerAddress = {};
std::string loanSchemeId;
VaultState state{VaultState::Unknown};
bool verbose{false};
if (request.params.size() > 0) {
UniValue optionsObj = request.params[0].get_obj();
if (!optionsObj["ownerAddress"].isNull()) {
Expand All @@ -439,6 +444,9 @@ UniValue listvaults(const JSONRPCRequest& request) {
if (!optionsObj["state"].isNull()) {
state = StringToVaultState(optionsObj["state"].getValStr());
}
if (!optionsObj["verbose"].isNull()) {
verbose = optionsObj["verbose"].getBool();
}
}

// parse pagination
Expand Down Expand Up @@ -475,16 +483,19 @@ UniValue listvaults(const JSONRPCRequest& request) {
if (!ownerAddress.empty() && ownerAddress != data.ownerAddress) {
return false;
}

auto vaultState = GetVaultState(vaultId, data);

if ((loanSchemeId.empty() || loanSchemeId == data.schemeId)
&& (state == VaultState::Unknown || state == vaultState)) {
UniValue vaultObj{UniValue::VOBJ};
vaultObj.pushKV("vaultId", vaultId.GetHex());
vaultObj.pushKV("ownerAddress", ScriptToString(data.ownerAddress));
vaultObj.pushKV("loanSchemeId", data.schemeId);
vaultObj.pushKV("state", VaultStateToString(vaultState));
if(!verbose){
vaultObj.pushKV("vaultId", vaultId.GetHex());
vaultObj.pushKV("ownerAddress", ScriptToString(data.ownerAddress));
vaultObj.pushKV("loanSchemeId", data.schemeId);
vaultObj.pushKV("state", VaultStateToString(vaultState));
} else {
vaultObj = VaultToJSON(vaultId, data);
}
valueArr.push_back(vaultObj);
limit--;
}
Expand Down

0 comments on commit 526e711

Please sign in to comment.