From: Gavin Andresen Date: Mon, 23 Jan 2012 17:04:34 +0000 (-0500) Subject: Fixed addmultisigaddress if looking up public keys from locked wallets. X-Git-Tag: v0.4.0-unstable~129^2~259 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=dc77dce07cd1f528b7bd2b4c9594cd4647866b08 Fixed addmultisigaddress if looking up public keys from locked wallets. --- diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index 5ac58de..3063abd 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -1025,9 +1025,12 @@ Value addmultisigaddress(const Array& params, bool fHelp) if (address.IsScript()) throw runtime_error( strprintf("%s is a pay-to-script address",ks.c_str())); - if (!pwalletMain->GetKey(address, pubkeys[i])) + std::vector vchPubKey; + if (!pwalletMain->GetPubKey(address, vchPubKey)) throw runtime_error( strprintf("no full public key for address %s",ks.c_str())); + if (vchPubKey.empty() || !pubkeys[i].SetPubKey(vchPubKey)) + throw runtime_error(" Invalid public key: "+ks); } // Case 2: hex public key