#define BITCOIN_WALLETDB_H
#include "db.h"
-#include "base58.h"
+//#include "base58.h"
#include "keystore.h"
class CKeyPool;
bool WriteKey(const CPubKey& vchPubKey, const CPrivKey& vchPrivKey, const CKeyMetadata &keyMeta)
{
nWalletDBUpdated++;
-
if(!Write(std::make_pair(std::string("keymeta"), vchPubKey), keyMeta))
return false;
- return Write(std::make_pair(std::string("key"), vchPubKey.Raw()), vchPrivKey, false);
+ if(!Write(std::make_pair(std::string("key"), vchPubKey.Raw()), vchPrivKey, false))
+ return false;
+
+ return true;
+ }
+
+ bool WriteMalleableKey(const CMalleableKeyView& keyView, const CMalleableKey& malleableKey, const CKeyMetadata &keyMeta)
+ {
+ nWalletDBUpdated++;
+ if(!Write(std::make_pair(std::string("malmeta"), keyView.ToString()), keyMeta))
+ return false;
+
+ if(!Write(std::make_pair(std::string("malpair"), keyView.ToString()), malleableKey.ToString(), false))
+ return false;
+
+ return true;
}
+
bool WriteCryptedKey(const CPubKey& vchPubKey, const std::vector<unsigned char>& vchCryptedSecret, const CKeyMetadata &keyMeta)
{
nWalletDBUpdated++;
return Write(std::make_pair(std::string("mkey"), nID), kMasterKey, true);
}
+ bool EraseMasterKey(unsigned int nID)
+ {
+ nWalletDBUpdated++;
+ return Erase(std::make_pair(std::string("mkey"), nID));
+ }
+
+ bool EraseCryptedKey(const CPubKey& vchPubKey)
+ {
+ return Erase(std::make_pair(std::string("ckey"), vchPubKey.Raw()));
+ }
+
bool WriteCScript(const uint160& hash, const CScript& redeemScript)
{
nWalletDBUpdated++;
return Erase(std::make_pair(std::string("pool"), nPool));
}
- // Settings are no longer stored in wallet.dat; these are
- // used only for backwards compatibility:
- template<typename T>
- bool ReadSetting(const std::string& strKey, T& value)
- {
- return Read(std::make_pair(std::string("setting"), strKey), value);
- }
- template<typename T>
- bool WriteSetting(const std::string& strKey, const T& value)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("setting"), strKey), value);
- }
- bool EraseSetting(const std::string& strKey)
- {
- nWalletDBUpdated++;
- return Erase(std::make_pair(std::string("setting"), strKey));
- }
-
bool WriteMinVersion(int nVersion)
{
return Write(std::string("minversion"), nVersion);
DBErrors ReorderTransactions(CWallet*);
DBErrors LoadWallet(CWallet* pwallet);
+ DBErrors FindWalletTx(CWallet* pwallet, std::vector<uint256>& vTxHash);
+ DBErrors ZapWalletTx(CWallet* pwallet);
+
static bool Recover(CDBEnv& dbenv, std::string filename, bool fOnlyKeys);
static bool Recover(CDBEnv& dbenv, std::string filename);
};