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