|
|
|
@ -34,15 +34,21 @@ public:
|
|
|
|
|
|
|
|
|
|
Value importprivkey(const Array& params, bool fHelp)
|
|
|
|
|
{
|
|
|
|
|
if (fHelp || params.size() < 1 || params.size() > 2)
|
|
|
|
|
if (fHelp || params.size() < 1 || params.size() > 3)
|
|
|
|
|
throw runtime_error(
|
|
|
|
|
"importprivkey <bitcoinprivkey> [label]\n"
|
|
|
|
|
"importprivkey <bitcoinprivkey> [label] [rescan=true]\n"
|
|
|
|
|
"Adds a private key (as returned by dumpprivkey) to your wallet.");
|
|
|
|
|
|
|
|
|
|
string strSecret = params[0].get_str();
|
|
|
|
|
string strLabel = "";
|
|
|
|
|
if (params.size() > 1)
|
|
|
|
|
strLabel = params[1].get_str();
|
|
|
|
|
|
|
|
|
|
// Whether to perform rescan after import
|
|
|
|
|
bool fRescan = true;
|
|
|
|
|
if (params.size() > 2)
|
|
|
|
|
fRescan = params[2].get_bool();
|
|
|
|
|
|
|
|
|
|
CBitcoinSecret vchSecret;
|
|
|
|
|
bool fGood = vchSecret.SetString(strSecret);
|
|
|
|
|
|
|
|
|
@ -62,8 +68,10 @@ Value importprivkey(const Array& params, bool fHelp)
|
|
|
|
|
if (!pwalletMain->AddKey(key))
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Error adding key to wallet");
|
|
|
|
|
|
|
|
|
|
pwalletMain->ScanForWalletTransactions(pindexGenesisBlock, true);
|
|
|
|
|
pwalletMain->ReacceptWalletTransactions();
|
|
|
|
|
if (fRescan) {
|
|
|
|
|
pwalletMain->ScanForWalletTransactions(pindexGenesisBlock, true);
|
|
|
|
|
pwalletMain->ReacceptWalletTransactions();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Value::null;
|
|
|
|
|