// 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 <boost/asio.hpp>
-// #include <boost/iostreams/concepts.hpp>
-// #include <boost/iostreams/stream.hpp>
#include <boost/lexical_cast.hpp>
-// #ifdef USE_SSL
-// #include <boost/asio/ssl.hpp>
-// typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> SSLStream;
-// #endif
-// #include <boost/xpressive/xpressive_dynamic.hpp>
+
#include "json/json_spirit_reader_template.h"
#include "json/json_spirit_writer_template.h"
#include "json/json_spirit_utils.h"
{
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
- "importprivkey <bitcoinprivkey> [label]\n"
+ "importprivkey <novacoinprivkey> [label]\n"
"Adds a private key (as returned by dumpprivkey) to your wallet.");
string strSecret = params[0].get_str();
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;
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);
{
if (fHelp || params.size() != 1)
throw runtime_error(
- "dumpprivkey <bitcoinaddress>\n"
- "Reveals the private key corresponding to <bitcoinaddress>.");
+ "dumpprivkey <novacoinaddress>\n"
+ "Reveals the private key corresponding to <novacoinaddress>.");
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))