|
|
@ -649,12 +649,12 @@ Value getbalance(const Array& params, bool fHelp) |
|
|
|
for (map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
for (map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
{ |
|
|
|
{ |
|
|
|
const CWalletTx& wtx = (*it).second; |
|
|
|
const CWalletTx& wtx = (*it).second; |
|
|
|
int64 allGenerated, allFee; |
|
|
|
int64 allGeneratedImmature, allGeneratedMature, allFee; |
|
|
|
allGenerated = allFee = 0; |
|
|
|
allGeneratedImmature = allGeneratedMature = allFee = 0; |
|
|
|
string strSentAccount; |
|
|
|
string strSentAccount; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
wtx.GetAmounts(allGenerated, listReceived, listSent, allFee, strSentAccount); |
|
|
|
wtx.GetAmounts(allGeneratedImmature, allGeneratedMature, listReceived, listSent, allFee, strSentAccount); |
|
|
|
foreach(const PAIRTYPE(string,int64)& r, listReceived) |
|
|
|
foreach(const PAIRTYPE(string,int64)& r, listReceived) |
|
|
|
{ |
|
|
|
{ |
|
|
|
nBalance += r.second; |
|
|
|
nBalance += r.second; |
|
|
@ -664,7 +664,7 @@ Value getbalance(const Array& params, bool fHelp) |
|
|
|
foreach(const PAIRTYPE(string,int64)& r, listSent) |
|
|
|
foreach(const PAIRTYPE(string,int64)& r, listSent) |
|
|
|
nBalance -= r.second; |
|
|
|
nBalance -= r.second; |
|
|
|
nBalance -= allFee; |
|
|
|
nBalance -= allFee; |
|
|
|
nBalance += allGenerated; |
|
|
|
nBalance += allGeneratedMature; |
|
|
|
} |
|
|
|
} |
|
|
|
printf("Found %d accounts\n", vAccounts.size()); |
|
|
|
printf("Found %d accounts\n", vAccounts.size()); |
|
|
|
return ValueFromAmount(nBalance); |
|
|
|
return ValueFromAmount(nBalance); |
|
|
@ -993,21 +993,29 @@ Value listreceivedbyaccount(const Array& params, bool fHelp) |
|
|
|
|
|
|
|
|
|
|
|
void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDepth, bool fLong, Array& ret) |
|
|
|
void ListTransactions(const CWalletTx& wtx, const string& strAccount, int nMinDepth, bool fLong, Array& ret) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int64 nGenerated, nFee; |
|
|
|
int64 nGeneratedImmature, nGeneratedMature, nFee; |
|
|
|
string strSentAccount; |
|
|
|
string strSentAccount; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
wtx.GetAmounts(nGenerated, listReceived, listSent, nFee, strSentAccount); |
|
|
|
wtx.GetAmounts(nGeneratedImmature, nGeneratedMature, listReceived, listSent, nFee, strSentAccount); |
|
|
|
|
|
|
|
|
|
|
|
bool fAllAccounts = (strAccount == string("*")); |
|
|
|
bool fAllAccounts = (strAccount == string("*")); |
|
|
|
|
|
|
|
|
|
|
|
// Generated blocks assigned to account ""
|
|
|
|
// Generated blocks assigned to account ""
|
|
|
|
if (nGenerated != 0 && (fAllAccounts || strAccount == "")) |
|
|
|
if ((nGeneratedMature+nGeneratedImmature) != 0 && (fAllAccounts || strAccount == "")) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Object entry; |
|
|
|
Object entry; |
|
|
|
entry.push_back(Pair("account", string(""))); |
|
|
|
entry.push_back(Pair("account", string(""))); |
|
|
|
entry.push_back(Pair("category", "generate")); |
|
|
|
if (nGeneratedImmature) |
|
|
|
entry.push_back(Pair("amount", ValueFromAmount(nGenerated))); |
|
|
|
{ |
|
|
|
|
|
|
|
entry.push_back(Pair("category", wtx.GetDepthInMainChain() ? "immature" : "orphan")); |
|
|
|
|
|
|
|
entry.push_back(Pair("amount", ValueFromAmount(nGeneratedImmature))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
entry.push_back(Pair("category", "generate")); |
|
|
|
|
|
|
|
entry.push_back(Pair("amount", ValueFromAmount(nGeneratedMature))); |
|
|
|
|
|
|
|
} |
|
|
|
if (fLong) |
|
|
|
if (fLong) |
|
|
|
WalletTxToJSON(wtx, entry); |
|
|
|
WalletTxToJSON(wtx, entry); |
|
|
|
ret.push_back(entry); |
|
|
|
ret.push_back(entry); |
|
|
@ -1159,17 +1167,17 @@ Value listaccounts(const Array& params, bool fHelp) |
|
|
|
for (map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
for (map<uint256, CWalletTx>::iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
{ |
|
|
|
{ |
|
|
|
const CWalletTx& wtx = (*it).second; |
|
|
|
const CWalletTx& wtx = (*it).second; |
|
|
|
int64 nGenerated, nFee; |
|
|
|
int64 nGeneratedImmature, nGeneratedMature, nFee; |
|
|
|
string strSentAccount; |
|
|
|
string strSentAccount; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listReceived; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
list<pair<string, int64> > listSent; |
|
|
|
wtx.GetAmounts(nGenerated, listReceived, listSent, nFee, strSentAccount); |
|
|
|
wtx.GetAmounts(nGeneratedImmature, nGeneratedMature, listReceived, listSent, nFee, strSentAccount); |
|
|
|
mapAccountBalances[strSentAccount] -= nFee; |
|
|
|
mapAccountBalances[strSentAccount] -= nFee; |
|
|
|
foreach(const PAIRTYPE(string, int64)& s, listSent) |
|
|
|
foreach(const PAIRTYPE(string, int64)& s, listSent) |
|
|
|
mapAccountBalances[strSentAccount] -= s.second; |
|
|
|
mapAccountBalances[strSentAccount] -= s.second; |
|
|
|
if (wtx.GetDepthInMainChain() >= nMinDepth) |
|
|
|
if (wtx.GetDepthInMainChain() >= nMinDepth) |
|
|
|
{ |
|
|
|
{ |
|
|
|
mapAccountBalances[""] += nGenerated; |
|
|
|
mapAccountBalances[""] += nGeneratedMature; |
|
|
|
foreach(const PAIRTYPE(string, int64)& r, listReceived) |
|
|
|
foreach(const PAIRTYPE(string, int64)& r, listReceived) |
|
|
|
if (mapAddressBook.count(r.first)) |
|
|
|
if (mapAddressBook.count(r.first)) |
|
|
|
mapAccountBalances[mapAddressBook[r.first]] += r.second; |
|
|
|
mapAccountBalances[mapAddressBook[r.first]] += r.second; |
|
|
|