X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcdump.cpp;h=1499acec3c69649df307f570bbf2ea5f743f4a7e;hb=15e9a03687e99d6b1a7a90e56e69a37faa6bb9b8;hp=b0693ed27d559d0e710678739144b335e2c5c225;hpb=7f910f05a59a13fc96b8a4cafa4e6fdd5de725e4;p=novacoin.git diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index b0693ed..1499ace 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -39,6 +39,8 @@ Value importprivkey(const Array& params, bool fHelp) "importprivkey [label] [rescan=true]\n" "Adds a private key (as returned by dumpprivkey) to your wallet."); + EnsureWalletIsUnlocked(); + string strSecret = params[0].get_str(); string strLabel = ""; if (params.size() > 1) @@ -99,13 +101,14 @@ Value importaddress(const Array& params, bool fHelp) CScript script; CBitcoinAddress address(params[0].get_str()); if (address.IsValid()) { - script.SetDestination(address.Get()); + if (address.IsPair()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "It's senseless to import pubkey pair address."); + script.SetAddress(address); } else if (IsHex(params[0].get_str())) { std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); - } else { + } else throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Novacoin address or script"); - } string strLabel = ""; if (params.size() > 1) @@ -159,13 +162,14 @@ Value removeaddress(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (address.IsValid()) { - script.SetDestination(address.Get()); + if (address.IsPair()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey pair addresses aren't supported."); + script.SetAddress(address); } else if (IsHex(params[0].get_str())) { std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); - } else { + } else throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address or script"); - } if (::IsMine(*pwalletMain, script) == MINE_SPENDABLE) throw JSONRPCError(RPC_WALLET_ERROR, "The wallet contains the private key for this address or script - can't remove it"); @@ -247,6 +251,8 @@ Value dumpmalleablekey(const Array& params, bool fHelp) "dumpmalleablekey \n" "Dump the private and public key pairs, which correspond to provided key view.\n"); + EnsureWalletIsUnlocked(); + CMalleableKey mKey; CMalleableKeyView keyView; keyView.SetString(params[0].get_str()); @@ -256,7 +262,7 @@ Value dumpmalleablekey(const Array& params, bool fHelp) Object result; result.push_back(Pair("PrivatePair", mKey.ToString())); - result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + result.push_back(Pair("Address", CBitcoinAddress(mKey.GetMalleablePubKey()).ToString())); return result; } @@ -268,6 +274,9 @@ Value importmalleablekey(const Array& params, bool fHelp) "importmalleablekey \n" "Imports the private key pair into your wallet.\n"); + + EnsureWalletIsUnlocked(); + CMalleableKey mKey; bool fSuccess = mKey.SetString(params[0].get_str()); @@ -277,7 +286,7 @@ Value importmalleablekey(const Array& params, bool fHelp) { fSuccess = pwalletMain->AddMalleableKey(mKey); result.push_back(Pair("Successful", fSuccess)); - result.push_back(Pair("PublicPair", mKey.GetMalleablePubKey().ToString())); + result.push_back(Pair("Address", CBitcoinAddress(mKey.GetMalleablePubKey()).ToString())); result.push_back(Pair("KeyView", CMalleableKeyView(mKey).ToString())); } else