X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcdump.cpp;h=864d950a9dee849b70358fbc2024677a180577e6;hb=3176e0f244d929669aa3e1d81e0787d82d9150d3;hp=8180aadfb9b910bc136eb1a4ff829d32e4b79473;hpb=5ce4c2a23a756e20b85d721e08711e6faa3654ff;p=novacoin.git diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index 8180aad..864d950 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -1,10 +1,11 @@ // Copyright (c) 2009-2012 Bitcoin Developers +// Copyright (c) 2012-2013 The PPCoin developers // Distributed under the MIT/X11 software license, see the accompanying -// file license.txt or http://www.opensource.org/licenses/mit-license.php. +// file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "headers.h" #include "init.h" // for pwalletMain #include "bitcoinrpc.h" +#include "ui_interface.h" #include @@ -42,7 +43,7 @@ Value importprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "importprivkey [label]\n" + "importprivkey [label]\n" "Adds a private key (as returned by dumpprivkey) to your wallet."); string strSecret = params[0].get_str(); @@ -53,6 +54,8 @@ Value importprivkey(const Array& params, bool fHelp) bool fGood = vchSecret.SetString(strSecret); if (!fGood) throw JSONRPCError(-5,"Invalid private key"); + if (fWalletUnlockMintOnly) // ppcoin: no importprivkey in mint-only mode + throw JSONRPCError(-102, "Wallet is unlocked for minting only."); CKey key; bool fCompressed; @@ -60,9 +63,9 @@ Value importprivkey(const Array& params, bool fHelp) key.SetSecret(secret, fCompressed); CBitcoinAddress vchAddress = CBitcoinAddress(key.GetPubKey()); - CRITICAL_BLOCK(cs_main) - CRITICAL_BLOCK(pwalletMain->cs_wallet) { + LOCK2(cs_main, pwalletMain->cs_wallet); + pwalletMain->MarkDirty(); pwalletMain->SetAddressBookName(vchAddress, strLabel); @@ -82,13 +85,15 @@ Value dumpprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "dumpprivkey \n" - "Reveals the private key corresponding to ."); + "dumpprivkey \n" + "Reveals the private key corresponding to ."); string strAddress = params[0].get_str(); CBitcoinAddress address; if (!address.SetString(strAddress)) - throw JSONRPCError(-5, "Invalid bitcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); + if (fWalletUnlockMintOnly) // ppcoin: no dumpprivkey in mint-only mode + throw JSONRPCError(-102, "Wallet is unlocked for minting only."); CSecret vchSecret; bool fCompressed; if (!pwalletMain->GetSecret(address, vchSecret, fCompressed))