diff options
-rw-r--r-- | src/qt/transactiondesc.cpp | 6 | ||||
-rw-r--r-- | src/rpcmisc.cpp | 4 | ||||
-rw-r--r-- | src/rpcwallet.cpp | 70 | ||||
-rw-r--r-- | src/wallet.cpp | 6 |
4 files changed, 37 insertions, 49 deletions
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 76dc47318d..d94f066ed9 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -101,11 +101,11 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco strHTML += "<b>" + tr("From") + ":</b> " + tr("unknown") + "<br>"; strHTML += "<b>" + tr("To") + ":</b> "; strHTML += GUIUtil::HtmlEscape(rec->address); - std::string addressOwned = wallet->IsMine(txout) == MINE_SPENDABLE ? "own address" : "watch-only"; + QString addressOwned = wallet->IsMine(txout) == MINE_SPENDABLE ? tr("own address") : tr("watch-only"); if (!wallet->mapAddressBook[address].name.empty()) - strHTML += " (" + tr(addressOwned.c_str()) + ", " + tr("label") + ": " + GUIUtil::HtmlEscape(wallet->mapAddressBook[address].name) + ")"; + strHTML += " (" + addressOwned + ", " + tr("label") + ": " + GUIUtil::HtmlEscape(wallet->mapAddressBook[address].name) + ")"; else - strHTML += " (" + tr(addressOwned.c_str()) + ")"; + strHTML += " (" + addressOwned + ")"; strHTML += "<br>"; } } diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index 3245f7d713..f0b4619b26 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -171,9 +171,9 @@ Value validateaddress(const Array& params, bool fHelp) ret.push_back(Pair("address", currentAddress)); #ifdef ENABLE_WALLET isminetype mine = pwalletMain ? IsMine(*pwalletMain, dest) : MINE_NO; - ret.push_back(Pair("ismine", mine == MINE_SPENDABLE)); + ret.push_back(Pair("ismine", (mine & MINE_SPENDABLE) ? true : false)); if (mine != MINE_NO) { - ret.push_back(Pair("watchonly", mine == MINE_WATCH_ONLY)); + ret.push_back(Pair("iswatchonly", (mine & MINE_WATCH_ONLY) ? true: false)); Object detail = boost::apply_visitor(DescribeAddressVisitor(mine), dest); ret.insert(ret.end(), detail.begin(), detail.end()); } diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index a9db442d4c..e9a111f523 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -621,14 +621,12 @@ Value getbalance(const Array& params, bool fHelp) return ValueFromAmount(pwalletMain->GetBalance()); int nMinDepth = 1; - isminefilter filter = MINE_SPENDABLE; if (params.size() > 1) - { nMinDepth = params[1].get_int(); - if(params.size() > 2) - if(params[2].get_bool()) - filter = filter | MINE_WATCH_ONLY; - } + isminefilter filter = MINE_SPENDABLE; + if(params.size() > 2) + if(params[2].get_bool()) + filter = filter | MINE_WATCH_ONLY; if (params[0].get_str() == "*") { // Calculate total balance a different way from GetBalance() @@ -1255,26 +1253,19 @@ Value listtransactions(const Array& params, bool fHelp) ); string strAccount = "*"; + if (params.size() > 0) + strAccount = params[0].get_str(); int nCount = 10; + if (params.size() > 1) + nCount = params[1].get_int(); int nFrom = 0; + if (params.size() > 2) + nFrom = params[2].get_int(); isminefilter filter = MINE_SPENDABLE; - if (params.size() > 0) - { - strAccount = params[0].get_str(); - if (params.size() > 1) - { - nCount = params[1].get_int(); - if (params.size() > 2) - { - nFrom = params[2].get_int(); - if(params.size() > 3) - { - if(params[3].get_bool()) - filter = filter | MINE_WATCH_ONLY; - } - } - } - } + if(params.size() > 3) + if(params[3].get_bool()) + filter = filter | MINE_WATCH_ONLY; + if (nCount < 0) throw JSONRPCError(RPC_INVALID_PARAMETER, "Negative count"); if (nFrom < 0) @@ -1342,14 +1333,12 @@ Value listaccounts(const Array& params, bool fHelp) ); int nMinDepth = 1; - isminefilter includeWatchonly = MINE_SPENDABLE; if (params.size() > 0) - { nMinDepth = params[0].get_int(); - if(params.size() > 1) - if(params[1].get_bool()) - includeWatchonly = includeWatchonly | MINE_WATCH_ONLY; - } + isminefilter includeWatchonly = MINE_SPENDABLE; + if(params.size() > 1) + if(params[1].get_bool()) + includeWatchonly = includeWatchonly | MINE_WATCH_ONLY; map<string, int64_t> mapAccountBalances; BOOST_FOREACH(const PAIRTYPE(CTxDestination, CAddressBookData)& entry, pwalletMain->mapAddressBook) { @@ -1439,6 +1428,7 @@ Value listsinceblock(const Array& params, bool fHelp) CBlockIndex *pindex = NULL; int target_confirms = 1; isminefilter filter = MINE_SPENDABLE; + if (params.size() > 0) { uint256 blockId = 0; @@ -1447,22 +1437,20 @@ Value listsinceblock(const Array& params, bool fHelp) std::map<uint256, CBlockIndex*>::iterator it = mapBlockIndex.find(blockId); if (it != mapBlockIndex.end()) pindex = it->second; + } - if (params.size() > 1) - { - target_confirms = params[1].get_int(); - - if (target_confirms < 1) - throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter"); + if (params.size() > 1) + { + target_confirms = params[1].get_int(); - if(params.size() > 2) - { - if(params[2].get_bool()) - filter = filter | MINE_WATCH_ONLY; - } - } + if (target_confirms < 1) + throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter"); } + if(params.size() > 2) + if(params[2].get_bool()) + filter = filter | MINE_WATCH_ONLY; + int depth = pindex ? (1 + chainActive.Height() - pindex->nHeight) : -1; Array transactions; diff --git a/src/wallet.cpp b/src/wallet.cpp index 3c9aa3306f..4b480321ac 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -811,7 +811,8 @@ void CWalletTx::GetAmounts(list<pair<CTxDestination, int64_t> >& listReceived, // Sent/received. BOOST_FOREACH(const CTxOut& txout, vout) { - bool fIsMine; + isminetype fIsMine = pwallet->IsMine(txout); + // Only need to handle txouts if AT LEAST one of these is true: // 1) they debit from us (sent) // 2) the output is to us (received) @@ -820,9 +821,8 @@ void CWalletTx::GetAmounts(list<pair<CTxDestination, int64_t> >& listReceived, // Don't report 'change' txouts if (pwallet->IsChange(txout)) continue; - fIsMine = (pwallet->IsMine(txout) & filter); } - else if (!(fIsMine = (pwallet->IsMine(txout) & filter))) + else if (!(fIsMine & filter)) continue; // In either case, we need to get the destination address |