From 22dfd7359863217eb8caef75084cfa8fa8e1d8fb Mon Sep 17 00:00:00 2001 From: coderrr Date: Wed, 1 Aug 2012 12:48:42 -0400 Subject: Add address groupings RPC from the coincontrol patches. Signed-off-by: Gregory Maxwell --- src/rpcwallet.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/rpcwallet.cpp') diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index eacb5b3b1a..519e353138 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -274,6 +274,33 @@ Value sendtoaddress(const Array& params, bool fHelp) return wtx.GetHash().GetHex(); } +Value listaddressgroupings(const Array& params, bool fHelp) +{ + if (fHelp) + throw runtime_error("listaddressgroupings"); + + Array jsonGroupings; + map balances = pwalletMain->GetAddressBalances(); + BOOST_FOREACH(set grouping, pwalletMain->GetAddressGroupings()) + { + Array jsonGrouping; + BOOST_FOREACH(string address, grouping) + { + Array addressInfo; + addressInfo.push_back(address); + addressInfo.push_back(ValueFromAmount(balances[address])); + { + LOCK(pwalletMain->cs_wallet); + if (pwalletMain->mapAddressBook.find(CBitcoinAddress(address).Get()) != pwalletMain->mapAddressBook.end()) + addressInfo.push_back(pwalletMain->mapAddressBook.find(CBitcoinAddress(address).Get())->second); + } + jsonGrouping.push_back(addressInfo); + } + jsonGroupings.push_back(jsonGrouping); + } + return jsonGroupings; +} + Value signmessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 2) -- cgit v1.2.3 From b1093efa833376a7883deb0cbcddd0aed364de84 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Mon, 20 Aug 2012 13:43:33 -0400 Subject: Change CWallet addressgrouping to use CTxDestination instead of strings. This is cleanup for the listaddressgroupings code. Also add some real help text. --- src/rpcwallet.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/rpcwallet.cpp') diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index 519e353138..a32eb7801f 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -277,17 +277,21 @@ Value sendtoaddress(const Array& params, bool fHelp) Value listaddressgroupings(const Array& params, bool fHelp) { if (fHelp) - throw runtime_error("listaddressgroupings"); + throw runtime_error( + "listaddressgroupings\n" + "Lists groups of addresses which have had their common ownership\n" + "made public by common use as inputs or as the resulting change\n" + "in past transactions"); Array jsonGroupings; - map balances = pwalletMain->GetAddressBalances(); - BOOST_FOREACH(set grouping, pwalletMain->GetAddressGroupings()) + map balances = pwalletMain->GetAddressBalances(); + BOOST_FOREACH(set grouping, pwalletMain->GetAddressGroupings()) { Array jsonGrouping; - BOOST_FOREACH(string address, grouping) + BOOST_FOREACH(CTxDestination address, grouping) { Array addressInfo; - addressInfo.push_back(address); + addressInfo.push_back(CBitcoinAddress(address).ToString()); addressInfo.push_back(ValueFromAmount(balances[address])); { LOCK(pwalletMain->cs_wallet); -- cgit v1.2.3