aboutsummaryrefslogtreecommitdiff
path: root/src/db.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.h')
-rw-r--r--src/db.h57
1 files changed, 41 insertions, 16 deletions
diff --git a/src/db.h b/src/db.h
index 551e093443..33a6631e35 100644
--- a/src/db.h
+++ b/src/db.h
@@ -1,5 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2011 The Bitcoin developers
+// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_DB_H
@@ -13,17 +13,18 @@
#include <db_cxx.h>
-class CTxIndex;
+class CAccount;
+class CAccountingEntry;
+class CAddress;
+class CAddrMan;
+class CBlockLocator;
class CDiskBlockIndex;
class CDiskTxPos;
+class CMasterKey;
class COutPoint;
-class CAddress;
-class CWalletTx;
+class CTxIndex;
class CWallet;
-class CAccount;
-class CAccountingEntry;
-class CBlockLocator;
-
+class CWalletTx;
extern unsigned int nWalletDBUpdated;
extern DbEnv dbenv;
@@ -33,7 +34,7 @@ void ThreadFlushWalletDB(void* parg);
bool BackupWallet(const CWallet& wallet, const std::string& strDest);
-
+/** RAII class that provides access to a Berkeley database */
class CDB
{
protected:
@@ -270,7 +271,7 @@ public:
-
+/** Access to the transaction database (blkindex.dat) */
class CTxDB : public CDB
{
public:
@@ -301,7 +302,7 @@ public:
-
+/** Access to the (IP) address database (addr.dat) */
class CAddrDB : public CDB
{
public:
@@ -310,15 +311,14 @@ private:
CAddrDB(const CAddrDB&);
void operator=(const CAddrDB&);
public:
- bool WriteAddress(const CAddress& addr);
- bool EraseAddress(const CAddress& addr);
+ bool WriteAddrman(const CAddrMan& addr);
bool LoadAddresses();
};
bool LoadAddresses();
-
+/** A key pool entry */
class CKeyPool
{
public:
@@ -347,7 +347,7 @@ public:
-
+/** Error statuses for the wallet database */
enum DBErrors
{
DB_LOAD_OK,
@@ -357,6 +357,7 @@ enum DBErrors
DB_NEED_REWRITE
};
+/** Access to the wallet database (wallet.dat) */
class CWalletDB : public CDB
{
public:
@@ -425,6 +426,19 @@ public:
return Write(std::make_pair(std::string("mkey"), nID), kMasterKey, true);
}
+ // Support for BIP 0013 : see https://en.bitcoin.it/wiki/BIP_0013
+ bool ReadCScript(const uint160 &hash, CScript& redeemScript)
+ {
+ redeemScript.clear();
+ return Read(std::make_pair(std::string("cscript"), hash), redeemScript);
+ }
+
+ bool WriteCScript(const uint160& hash, const CScript& redeemScript)
+ {
+ nWalletDBUpdated++;
+ return Write(std::make_pair(std::string("cscript"), hash), redeemScript, false);
+ }
+
bool WriteBestBlock(const CBlockLocator& locator)
{
nWalletDBUpdated++;
@@ -465,18 +479,29 @@ public:
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);
+ }
bool ReadAccount(const std::string& strAccount, CAccount& account);
bool WriteAccount(const std::string& strAccount, const CAccount& account);