Mercurial > hg > bitcoin
changeset 288:e1e7652dabf7 draft
validateaddress RPC command
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@169 1a98c847-1fd6-4fd8-948a-caf3550aa51b
author | gavinandresen <gavinandresen@1a98c847-1fd6-4fd8-948a-caf3550aa51b> |
---|---|
date | Wed, 20 Oct 2010 15:58:16 +0000 |
parents | 3590ce33a6a3 |
children | d108c66874ab |
files | rpc.cpp serialize.h |
diffstat | 2 files changed, 24 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/rpc.cpp +++ b/rpc.cpp @@ -654,7 +654,28 @@ return Value::null; } +Value validateaddress(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 1) + throw runtime_error( + "validateaddress <bitcoinaddress>\n" + "Return information about <bitcoinaddress>."); + string strAddress = params[0].get_str(); + uint160 hash160; + bool isValid = AddressToHash160(strAddress, hash160); + + Object ret; + ret.push_back(Pair("isvalid", isValid)); + if (isValid) + { + // Call Hash160ToAddress() so we always return current ADDRESSVERSION + // version of the address: + ret.push_back(Pair("address", Hash160ToAddress(hash160))); + ret.push_back(Pair("ismine", (mapPubKeys.count(hash160) > 0))); + } + return ret; +} @@ -695,6 +716,7 @@ make_pair("listreceivedbyaddress", &listreceivedbyaddress), make_pair("listreceivedbylabel", &listreceivedbylabel), make_pair("backupwallet", &backupwallet), + make_pair("validateaddress", &validateaddress), }; map<string, rpcfn_type> mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0])); @@ -715,6 +737,7 @@ "getlabel", "getaddressesbylabel", "backupwallet", + "validateaddress", }; set<string> setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0]));