Merge pull request #105 from DenioD/duke

add z_getnotescount as rpc call ported for Hush from https://github.c…
This commit is contained in:
Duke Leto
2020-04-25 08:17:10 -04:00
committed by GitHub
2 changed files with 38 additions and 0 deletions

View File

@@ -139,6 +139,7 @@ static const CRPCConvertParam vRPCConvertParams[] =
{ "z_listunspent", 2 },
{ "z_listunspent", 3 },
{ "z_getbalance", 1},
{ "z_getnotescount", 0},
{ "z_gettotalbalance", 0},
{ "z_gettotalbalance", 1},
{ "z_gettotalbalance", 2},

View File

@@ -4213,6 +4213,42 @@ UniValue z_getbalance(const UniValue& params, bool fHelp, const CPubKey& mypk)
return ValueFromAmount(nBalance);
}
UniValue z_getnotescount(const UniValue& params, bool fHelp,const CPubKey& mypk)
{
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
if (fHelp || params.size() > 1)
throw runtime_error(
"z_getnotescount\n"
"\nArguments:\n"
"1. minconf (numeric, optional, default=1) Only include notes in transactions confirmed at least this many times.\n"
"\nReturns the number of sprout and sapling notes available in the wallet.\n"
"\nResult:\n"
"{\n"
" \"sapling\" (numeric) the number of sapling notes in the wallet\n"
"}\n"
"\nExamples:\n"
+ HelpExampleCli("z_getnotescount", "0")
);
LOCK2(cs_main, pwalletMain->cs_wallet);
int nMinDepth = 1;
if (params.size() > 0)
nMinDepth = params[0].get_int();
int sapling = 0;
for (auto& wtx : pwalletMain->mapWallet) {
if (wtx.second.GetDepthInMainChain() >= nMinDepth) {
sapling += wtx.second.mapSaplingNoteData.size();
}
}
UniValue ret(UniValue::VOBJ);
ret.push_back(Pair("sapling", sapling));
return ret;
}
UniValue z_gettotalbalance(const UniValue& params, bool fHelp, const CPubKey& mypk)
{
@@ -8368,6 +8404,7 @@ static const CRPCCommand commands[] =
{ "wallet", "z_getinfo", &z_getinfo, true },
{ "wallet", "z_listsentbyaddress", &z_listsentbyaddress, true },
{ "wallet", "z_listreceivedbyaddress", &z_listreceivedbyaddress, true },
{ "wallet", "z_getnotescount", &z_getnotescount, false },
// TODO: rearrange into another category
{ "disclosure", "z_getpaymentdisclosure", &z_getpaymentdisclosure, true },
{ "disclosure", "z_validatepaymentdisclosure", &z_validatepaymentdisclosure, true }