Add z_consolidationstatus RPC
This commit is contained in:
@@ -473,6 +473,7 @@ extern UniValue z_gettotalbalance(const UniValue& params, bool fHelp, const CPub
|
|||||||
extern UniValue z_mergetoaddress(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_mergetoaddress(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
extern UniValue z_sendmany(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_sendmany(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
extern UniValue z_sweepstatus(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_sweepstatus(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
|
extern UniValue z_consolidationstatus(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
extern UniValue z_shieldcoinbase(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_shieldcoinbase(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
extern UniValue z_getoperationstatus(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_getoperationstatus(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
extern UniValue z_getoperationresult(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
extern UniValue z_getoperationresult(const UniValue& params, bool fHelp, const CPubKey& mypk); // in rpcwallet.cpp
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ bool AsyncRPCOperation_saplingconsolidation::main_impl() {
|
|||||||
if (boost::get<libzcash::SaplingPaymentAddress>(&zAddress) != nullptr) {
|
if (boost::get<libzcash::SaplingPaymentAddress>(&zAddress) != nullptr) {
|
||||||
libzcash::SaplingPaymentAddress saplingAddress = boost::get<libzcash::SaplingPaymentAddress>(zAddress);
|
libzcash::SaplingPaymentAddress saplingAddress = boost::get<libzcash::SaplingPaymentAddress>(zAddress);
|
||||||
addresses.insert(saplingAddress);
|
addresses.insert(saplingAddress);
|
||||||
|
consolidationAddress = zAddress;
|
||||||
} else {
|
} else {
|
||||||
LogPrintf("%s: Invalid zaddr, exiting\n", opid);
|
LogPrintf("%s: Invalid zaddr, exiting\n", opid);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -3315,6 +3315,45 @@ UniValue getalldata(const UniValue& params, bool fHelp,const CPubKey&)
|
|||||||
return returnObj;
|
return returnObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UniValue z_consolidationstatus(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
|
return NullUniValue;
|
||||||
|
|
||||||
|
if (fHelp || params.size() > 0)
|
||||||
|
throw runtime_error(
|
||||||
|
"z_consolidationstatus\n"
|
||||||
|
"\nGive details about consolidation operations since the node was started."
|
||||||
|
"}\n"
|
||||||
|
"\nExamples:\n"
|
||||||
|
+ HelpExampleCli("z_consolidationstatus", "")
|
||||||
|
+ HelpExampleRpc("z_consolidationstatus", "")
|
||||||
|
);
|
||||||
|
|
||||||
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
|
|
||||||
|
UniValue ret(UniValue::VOBJ);
|
||||||
|
ret.push_back(Pair("consolidation", pwalletMain->fConsolidationEnabled));
|
||||||
|
ret.push_back(Pair("running", pwalletMain->fConsolidationRunning));
|
||||||
|
ret.push_back(Pair("amount_consolidated", pwalletMain->amountConsolidated));
|
||||||
|
|
||||||
|
if (pwalletMain->fConsolidationRunning) {
|
||||||
|
ret.push_back(Pair("next_consolidation", pwalletMain->consolidationInterval + chainActive.Tip()->GetHeight()));
|
||||||
|
} else {
|
||||||
|
if (pwalletMain->nextConsolidation == 0) {
|
||||||
|
ret.push_back(Pair("next_consolidation", chainActive.Tip()->GetHeight() + 1));
|
||||||
|
} else {
|
||||||
|
ret.push_back(Pair("next_consolidation", pwalletMain->nextConsolidation));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret.push_back(Pair("consolidationinterval", pwalletMain->consolidationInterval));
|
||||||
|
ret.push_back(Pair("consolidationaddress", pwalletMain->consolidationAddress));
|
||||||
|
ret.push_back(Pair("consolidationtxfee",(int)fConsolidationTxFee));
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
UniValue z_sweepstatus(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
UniValue z_sweepstatus(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -8537,6 +8576,7 @@ static const CRPCCommand commands[] =
|
|||||||
{ "wallet", "z_gettotalbalance", &z_gettotalbalance, false },
|
{ "wallet", "z_gettotalbalance", &z_gettotalbalance, false },
|
||||||
{ "wallet", "z_mergetoaddress", &z_mergetoaddress, false },
|
{ "wallet", "z_mergetoaddress", &z_mergetoaddress, false },
|
||||||
{ "wallet", "z_sweepstatus", &z_sweepstatus, true },
|
{ "wallet", "z_sweepstatus", &z_sweepstatus, true },
|
||||||
|
{ "wallet", "z_consolidationstatus", &z_consolidationstatus, true },
|
||||||
{ "wallet", "z_sendmany", &z_sendmany, false },
|
{ "wallet", "z_sendmany", &z_sendmany, false },
|
||||||
{ "wallet", "z_shieldcoinbase", &z_shieldcoinbase, false },
|
{ "wallet", "z_shieldcoinbase", &z_shieldcoinbase, false },
|
||||||
{ "wallet", "z_getoperationstatus", &z_getoperationstatus, true },
|
{ "wallet", "z_getoperationstatus", &z_getoperationstatus, true },
|
||||||
|
|||||||
@@ -813,6 +813,7 @@ public:
|
|||||||
int sweepFee = 10000;
|
int sweepFee = 10000;
|
||||||
int sweepMaxInputs = 200;
|
int sweepMaxInputs = 200;
|
||||||
std::string sweepAddress = "";
|
std::string sweepAddress = "";
|
||||||
|
std::string consolidationAddress = "";
|
||||||
|
|
||||||
void ClearNoteWitnessCache();
|
void ClearNoteWitnessCache();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user