#include "ui_interface.h"
#include "util.h"
#include "walletdb.h"
+#include "base58.h"
extern unsigned int nStakeMaxAge;
extern bool fWalletUnlockMintOnly;
std::string strWalletFile;
std::set<int64_t> setKeyPool;
+ /*
std::map<CKeyID, CKeyMetadata> mapKeyMetadata;
std::map<CMalleableKeyView, CKeyMetadata> mapMalleableKeyMetadata;
+ */
+
+ std::map<CBitcoinAddress, CKeyMetadata> mapKeyMetadata;
typedef std::map<unsigned int, CMasterKey> MasterKeyMap;
MasterKeyMap mapMasterKeys;
int64_t nOrderPosNext;
std::map<uint256, int> mapRequestCount;
- std::map<CTxDestination, std::string> mapAddressBook;
+ std::map<CBitcoinAddress, std::string> mapAddressBook;
CPubKey vchDefaultKey;
int64_t nTimeFirstKey;
CMalleableKeyView GenerateNewMalleableKey();
// Adds a key to the store, and saves it to disk.
bool AddKey(const CKey& key);
- bool AddMalleableKey(const CMalleableKey& mKey);
+ bool AddKey(const CMalleableKey& mKey);
// Adds a key to the store, without saving it to disk (used by LoadWallet)
bool LoadKey(const CKey& key) { return CCryptoKeyStore::AddKey(key); }
// Load metadata (used by LoadWallet)
bool LoadKeyMetadata(const CPubKey &pubkey, const CKeyMetadata &metadata);
- bool LoadMalleableKeyMetadata(const CMalleableKeyView &keyView, const CKeyMetadata &metadata);
+ bool LoadKeyMetadata(const CMalleableKeyView &keyView, const CKeyMetadata &metadata);
// Load malleable key without saving it to disk (used by LoadWallet)
- bool LoadMalleableKey(const CMalleableKey &mKey) { return CCryptoKeyStore::AddMalleableKey(mKey); }
+ bool LoadKey(const CMalleableKeyView &keyView, const CSecret &vchSecretH) { return CCryptoKeyStore::AddMalleableKey(keyView, vchSecretH); }
+ bool LoadCryptedKey(const CMalleableKeyView &keyView, const std::vector<unsigned char> &vchCryptedSecretH) { return CCryptoKeyStore::AddCryptedMalleableKey(keyView, vchCryptedSecretH); }
bool LoadMinVersion(int nVersion) { nWalletVersion = nVersion; nWalletMaxVersion = std::max(nWalletMaxVersion, nVersion); return true; }
// Adds an encrypted key to the store, and saves it to disk.
bool AddCryptedKey(const CPubKey &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret);
+ bool AddCryptedMalleableKey(const CMalleableKeyView& keyView, const std::vector<unsigned char> &vchCryptedSecretH);
// Adds an encrypted key to the store, without saving it to disk (used by LoadWallet)
bool LoadCryptedKey(const CPubKey &vchPubKey, const std::vector<unsigned char> &vchCryptedSecret) { SetMinVersion(FEATURE_WALLETCRYPT); return CCryptoKeyStore::AddCryptedKey(vchPubKey, vchCryptedSecret); }
bool AddCScript(const CScript& redeemScript);
bool EncryptWallet(const SecureString& strWalletPassphrase);
bool DecryptWallet(const SecureString& strWalletPassphrase);
- void GetKeyBirthTimes(std::map<CKeyID, int64_t> &mapKeyBirth) const;
+ void GetAddresses(std::map<CBitcoinAddress, int64_t> &mapAddresses) const;
+ bool GetPEM(const CKeyID &keyID, const std::string &fileName, const SecureString &strPassPhrase) const;
/** Increment the next transaction order id
int ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate = false);
int ScanForWalletTransaction(const uint256& hashTx);
void ReacceptWalletTransactions();
- void ResendWalletTransactions();
+ void ResendWalletTransactions(bool fForceResend=false);
int64_t GetBalance() const;
int64_t GetWatchOnlyBalance() const;
int64_t GetUnconfirmedBalance() const;
int64_t GetOldestKeyPoolTime();
void GetAllReserveKeys(std::set<CKeyID>& setAddress) const;
- std::set< std::set<CTxDestination> > GetAddressGroupings();
- std::map<CTxDestination, int64_t> GetAddressBalances();
+ std::set< std::set<CBitcoinAddress> > GetAddressGroupings();
+ std::map<CBitcoinAddress, int64_t> GetAddressBalances();
isminetype IsMine(const CTxIn& txin) const;
int64_t GetDebit(const CTxIn& txin, const isminefilter& filter) const;
bool SetAddressBookName(const CTxDestination& address, const std::string& strName);
- bool DelAddressBookName(const CTxDestination& address);
+ bool SetAddressBookName(const CBitcoinAddress& address, const std::string& strName);
+
+ bool DelAddressBookName(const CBitcoinAddress& address);
void UpdatedTransaction(const uint256 &hashTx);
/** Address book entry changed.
* @note called with lock cs_wallet held.
*/
- boost::signals2::signal<void (CWallet *wallet, const CTxDestination &address, const std::string &label, bool isMine, ChangeType status)> NotifyAddressBookChanged;
+ boost::signals2::signal<void (CWallet *wallet, const CBitcoinAddress &address, const std::string &label, bool isMine, ChangeType status)> NotifyAddressBookChanged;
/** Wallet transaction added, removed or updated.
* @note called with lock cs_wallet held.
return nChangeCached;
}
- void GetAmounts(int64_t& nGeneratedImmature, int64_t& nGeneratedMature, std::list<std::pair<CTxDestination, int64_t> >& listReceived,
- std::list<std::pair<CTxDestination, int64_t> >& listSent, int64_t& nFee, std::string& strSentAccount, const isminefilter& filter) const;
+ void GetAmounts(int64_t& nGeneratedImmature, int64_t& nGeneratedMature, std::list<std::pair<CBitcoinAddress, int64_t> >& listReceived,
+ std::list<std::pair<CBitcoinAddress, int64_t> >& listSent, int64_t& nFee, std::string& strSentAccount, const isminefilter& filter) const;
void GetAccountAmounts(const std::string& strAccount, int64_t& nGenerated, int64_t& nReceived,
int64_t& nSent, int64_t& nFee, const isminefilter& filter) const;
{
return strprintf("COutput(%s, %d, %d, %d) [%s]", tx->GetHash().ToString().substr(0,10).c_str(), i, fSpendable, nDepth, FormatMoney(tx->vout[i].nValue).c_str());
}
-
- void print() const
- {
- printf("%s\n", ToString().c_str());
- }
};