if (!pcursor)
throw runtime_error("CWalletDB::ListAccountCreditDebit() : cannot create DB cursor");
unsigned int fFlags = DB_SET_RANGE;
- while (true)
+ for ( ; ; )
{
// Read next record
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
{
string strAddress;
ssKey >> strAddress;
- ssValue >> pwallet->mapAddressBook[CBitcoinAddress(strAddress).Get()];
+ ssValue >> pwallet->mapAddressBook[CBitcoinAddress(strAddress)];
}
else if (strType == "tx")
{
ssValue >> vchSecret;
CMalleableKeyView keyView(strKeyView);
- if (!pwallet->LoadMalleableKey(keyView, vchSecret))
+ if (!pwallet->LoadKey(keyView, vchSecret))
{
- strErr = "Error reading wallet database: LoadMalleableKey failed";
+ strErr = "Error reading wallet database: LoadKey failed";
return false;
}
}
ssValue >> vchCryptedSecret;
CMalleableKeyView keyView(strKeyView);
- if (!pwallet->LoadCryptedMalleableKey(keyView, vchCryptedSecret))
+ if (!pwallet->LoadCryptedKey(keyView, vchCryptedSecret))
{
- strErr = "Error reading wallet database: LoadCryptedMalleableKey failed";
+ strErr = "Error reading wallet database: LoadCryptedKey failed";
return false;
}
}
ssValue >> keyMeta;
wss.nKeyMeta++;
- pwallet->LoadMalleableKeyMetadata(keyView, keyMeta);
+ pwallet->LoadKeyMetadata(keyView, keyMeta);
}
else if (strType == "keymeta")
{
// If no metadata exists yet, create a default with the pool key's
// creation time. Note that this may be overwritten by actually
// stored metadata for that key later, which is fine.
- CKeyID keyid = keypool.vchPubKey.GetID();
- if (pwallet->mapKeyMetadata.count(keyid) == 0)
- pwallet->mapKeyMetadata[keyid] = CKeyMetadata(keypool.nTime);
+ CBitcoinAddress addr = CBitcoinAddress(keypool.vchPubKey.GetID());
+ if (pwallet->mapKeyMetadata.count(addr) == 0)
+ pwallet->mapKeyMetadata[addr] = CKeyMetadata(keypool.nTime);
}
else if (strType == "version")
return DB_CORRUPT;
}
- while (true)
+ for ( ; ; )
{
// Read next record
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
return DB_CORRUPT;
}
- while (true)
+ for ( ; ; )
{
// Read next record
CDataStream ssKey(SER_DISK, CLIENT_VERSION);
continue;
CMalleableKey mKey;
pwallet->GetMalleableKey(keyView, mKey);
- file << strprintf("%s %s # view=%s addr=%s\n", mKey.ToString().c_str(), strTime.c_str(), keyView.ToString().c_str(), strAddr.c_str());
+ file << mKey.ToString();
+ if (pwallet->mapAddressBook.count(addr))
+ file << strprintf(" %s label=%s # view=%s addr=%s\n", strTime.c_str(), EncodeDumpString(pwallet->mapAddressBook[addr]).c_str(), keyView.ToString().c_str(), strAddr.c_str());
+ else
+ file << strprintf(" %s # view=%s addr=%s\n", strTime.c_str(), keyView.ToString().c_str(), strAddr.c_str());
}
else {
// Pubkey hash address
continue;
CSecret secret = key.GetSecret(IsCompressed);
file << CBitcoinSecret(secret, IsCompressed).ToString();
- if (pwallet->mapAddressBook.count(keyid))
- file << strprintf(" %s label=%s # addr=%s\n", strTime.c_str(), EncodeDumpString(pwallet->mapAddressBook[keyid]).c_str(), strAddr.c_str());
+ if (pwallet->mapAddressBook.count(addr))
+ file << strprintf(" %s label=%s # addr=%s\n", strTime.c_str(), EncodeDumpString(pwallet->mapAddressBook[addr]).c_str(), strAddr.c_str());
else if (setKeyPool.count(keyid))
file << strprintf(" %s reserve=1 # addr=%s\n", strTime.c_str(), strAddr.c_str());
else
}
}
+ CBitcoinAddress addr;
CBitcoinSecret vchSecret;
if (vchSecret.SetString(vstr[0])) {
// Simple private key
CSecret secret = vchSecret.GetSecret(fCompressed);
key.SetSecret(secret, fCompressed);
CKeyID keyid = key.GetPubKey().GetID();
+ addr = CBitcoinAddress(keyid);
if (pwallet->HaveKey(keyid)) {
- printf("Skipping import of %s (key already present)\n", CBitcoinAddress(keyid).ToString().c_str());
+ printf("Skipping import of %s (key already present)\n", addr.ToString().c_str());
continue;
}
- printf("Importing %s...\n", CBitcoinAddress(keyid).ToString().c_str());
+ printf("Importing %s...\n", addr.ToString().c_str());
if (!pwallet->AddKey(key)) {
fGood = false;
continue;
}
- pwallet->mapKeyMetadata[keyid].nCreateTime = nTime;
- if (fLabel)
- pwallet->SetAddressBookName(keyid, strLabel);
} else {
// A pair of private keys
if (!mKey.SetString(vstr[0]))
continue;
CMalleablePubKey mPubKey = mKey.GetMalleablePubKey();
+ addr = CBitcoinAddress(mPubKey);
+
if (pwallet->CheckOwnership(mPubKey)) {
- printf("Skipping import of %s (key already present)\n", CBitcoinAddress(mPubKey).ToString().c_str());
+ printf("Skipping import of %s (key already present)\n", addr.ToString().c_str());
continue;
}
- printf("Importing %s...\n", CBitcoinAddress(mPubKey).ToString().c_str());
- if (!pwallet->AddMalleableKey(mKey)) {
+ printf("Importing %s...\n", addr.ToString().c_str());
+ if (!pwallet->AddKey(mKey)) {
fGood = false;
continue;
}
- pwallet->mapMalleableKeyMetadata[CMalleableKeyView(mKey)].nCreateTime = nTime;
}
+
+ pwallet->mapKeyMetadata[addr].nCreateTime = nTime;
+ if (fLabel)
+ pwallet->SetAddressBookName(addr, strLabel);
+
nTimeBegin = std::min(nTimeBegin, nTime);
}
file.close();