Key import and export

Introduces two new RPC calls:
* dumpprivkey: retrieve the private key corresponding to an address
* importprivkey: add a private key to your wallet

The private key format is analoguous to the address format. It is
a 51-character base58-encoded string, that includes a version number
and a checksum.

Includes patch by mhanne:
* add optional account parameter for importprivkey, if omitted use default
This commit is contained in:
Pieter Wuille
2011-07-13 11:56:38 +02:00
committed by Pieter Wuille
parent 30ab2c9c46
commit 95d888a6d1
8 changed files with 124 additions and 4 deletions

View File

@@ -224,6 +224,15 @@ void CWallet::WalletUpdateSpent(const CTransaction &tx)
}
}
void CWallet::MarkDirty()
{
CRITICAL_BLOCK(cs_wallet)
{
BOOST_FOREACH(PAIRTYPE(const uint256, CWalletTx)& item, mapWallet)
item.second.MarkDirty();
}
}
bool CWallet::AddToWallet(const CWalletTx& wtxIn)
{
uint256 hash = wtxIn.GetHash();
@@ -1445,6 +1454,7 @@ void CWallet::GetAllReserveAddresses(set<CBitcoinAddress>& setAddress)
CWalletDB walletdb(strWalletFile);
CRITICAL_BLOCK(cs_main)
CRITICAL_BLOCK(cs_wallet)
BOOST_FOREACH(const int64& id, setKeyPool)
{
CKeyPool keypool;