|
|
@ -23,6 +23,7 @@ |
|
|
|
#include "wallet/walletdb.h" |
|
|
|
#include "wallet/rpcwallet.h" |
|
|
|
#include "zcash/Address.hpp" |
|
|
|
#include "zcash/zip32.h" |
|
|
|
#include "base58.h" |
|
|
|
|
|
|
|
#include <algorithm> |
|
|
@ -61,6 +62,9 @@ static const unsigned int MAX_FREE_TRANSACTION_CREATE_SIZE = 1000; |
|
|
|
// unless there is some exceptional network disruption.
|
|
|
|
static const unsigned int WITNESS_CACHE_SIZE = MAX_REORG_LENGTH + 1; |
|
|
|
|
|
|
|
//! Size of HD seed in bytes
|
|
|
|
static const size_t HD_WALLET_SEED_LENGTH = 32; |
|
|
|
|
|
|
|
class CBlockIndex; |
|
|
|
class CCoinControl; |
|
|
|
class COutput; |
|
|
@ -823,6 +827,9 @@ protected: |
|
|
|
bool UpdatedNoteData(const CWalletTx& wtxIn, CWalletTx& wtx); |
|
|
|
void MarkAffectedTransactionsDirty(const CTransaction& tx); |
|
|
|
|
|
|
|
/* the hd chain data model (chain counters) */ |
|
|
|
CHDChain hdChain; |
|
|
|
|
|
|
|
public: |
|
|
|
/*
|
|
|
|
* Main wallet lock. |
|
|
@ -1222,6 +1229,27 @@ public: |
|
|
|
bool GetBroadcastTransactions() const { return fBroadcastTransactions; } |
|
|
|
/** Set whether this wallet broadcasts transactions. */ |
|
|
|
void SetBroadcastTransactions(bool broadcast) { fBroadcastTransactions = broadcast; } |
|
|
|
|
|
|
|
/* Returns true if HD is enabled for all address types, false if only for Sapling */ |
|
|
|
bool IsHDFullyEnabled() const; |
|
|
|
|
|
|
|
/* Generates a new HD seed (will reset the chain child index counters)
|
|
|
|
Sets the seed's version based on the current wallet version (so the |
|
|
|
caller must ensure the current wallet version is correct before calling |
|
|
|
this function). */ |
|
|
|
void GenerateNewSeed(); |
|
|
|
|
|
|
|
bool SetHDSeed(const HDSeed& seed); |
|
|
|
bool SetCryptedHDSeed(const uint256& seedFp, const std::vector<unsigned char> &vchCryptedSecret); |
|
|
|
|
|
|
|
/* Set the HD chain model (chain child index counters) */ |
|
|
|
void SetHDChain(const CHDChain& chain, bool memonly); |
|
|
|
const CHDChain& GetHDChain() const { return hdChain; } |
|
|
|
|
|
|
|
/* Set the current HD seed, without saving it to disk (used by LoadWallet) */ |
|
|
|
bool LoadHDSeed(const HDSeed& key); |
|
|
|
/* Set the current encrypted HD seed, without saving it to disk (used by LoadWallet) */ |
|
|
|
bool LoadCryptedHDSeed(const uint256& seedFp, const std::vector<unsigned char>& seed); |
|
|
|
|
|
|
|
/* Find notes filtered by payment address, min depth, ability to spend */ |
|
|
|
void GetFilteredNotes(std::vector<CSproutNotePlaintextEntry>& sproutEntries, |
|
|
|