Support P2WPKH and P2SH-P2WPKH in dumpprivkey

This commit is contained in:
Pieter Wuille 2017-11-30 16:48:55 -08:00
parent 37c03d3e05
commit cf2c0b6f5c

View File

@ -578,12 +578,12 @@ UniValue dumpprivkey(const JSONRPCRequest& request)
if (!IsValidDestination(dest)) {
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
}
const CKeyID *keyID = boost::get<CKeyID>(&dest);
if (!keyID) {
auto keyid = GetKeyForDestination(*pwallet, dest);
if (keyid.IsNull()) {
throw JSONRPCError(RPC_TYPE_ERROR, "Address does not refer to a key");
}
CKey vchSecret;
if (!pwallet->GetKey(*keyID, vchSecret)) {
if (!pwallet->GetKey(keyid, vchSecret)) {
throw JSONRPCError(RPC_WALLET_ERROR, "Private key for address " + strAddress + " is not known");
}
return CBitcoinSecret(vchSecret).ToString();