From: Sunny King Date: Sat, 4 Feb 2012 04:36:43 +0000 (+0000) Subject: PPCoin: getinfo shows total stake in addition to balance X-Git-Tag: v0.4.0-unstable~212 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=8756dc5b6d4526ecd507a6b0ec1f65b04662afc9 PPCoin: getinfo shows total stake in addition to balance --- diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index 5be876c..be5b6bc 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -307,6 +307,7 @@ Value getinfo(const Array& params, bool fHelp) Object obj; obj.push_back(Pair("version", (int)VERSION)); obj.push_back(Pair("balance", ValueFromAmount(pwalletMain->GetBalance()))); + obj.push_back(Pair("stake", ValueFromAmount(pwalletMain->GetStake()))); obj.push_back(Pair("blocks", (int)nBestHeight)); obj.push_back(Pair("connections", (int)vNodes.size())); obj.push_back(Pair("proxy", (fUseProxy ? addrProxy.ToStringIPPort() : string()))); diff --git a/src/wallet.cpp b/src/wallet.cpp index 8bd1bae..e0d312d 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -758,6 +758,22 @@ int64 CWallet::GetUnconfirmedBalance() const return nTotal; } +// ppcoin: total coins staked (non-spendable until maturity) +int64 CWallet::GetStake() const +{ + int64 nTotal = 0; + CRITICAL_BLOCK(cs_wallet) + { + for (map::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) + { + const CWalletTx* pcoin = &(*it).second; + if (pcoin->IsCoinBase() && pcoin->GetBlocksToMaturity() > 0) + nTotal += CWallet::GetCredit(*pcoin); + } + } + return nTotal; +} + bool CWallet::SelectCoinsMinConf(int64 nTargetValue, unsigned int nSpendTime, int nConfMine, int nConfTheirs, set >& setCoinsRet, int64& nValueRet) const { setCoinsRet.clear(); diff --git a/src/wallet.h b/src/wallet.h index 5f43f13..d36343f 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -84,6 +84,7 @@ public: void ResendWalletTransactions(); int64 GetBalance() const; int64 GetUnconfirmedBalance() const; + int64 GetStake() const; bool CreateTransaction(const std::vector >& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet); bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CReserveKey& reservekey, int64& nFeeRet); bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey);