|
|
|
@ -451,6 +451,11 @@ public:
@@ -451,6 +451,11 @@ public:
|
|
|
|
|
class CWallet : public CCryptoKeyStore, public CValidationInterface |
|
|
|
|
{ |
|
|
|
|
private: |
|
|
|
|
/**
|
|
|
|
|
* Select a set of coins such that nValueRet >= nTargetValue and at least |
|
|
|
|
* all coins from coinControl are selected; Never select unconfirmed coins |
|
|
|
|
* if they are not ours |
|
|
|
|
*/ |
|
|
|
|
bool SelectCoins(const CAmount& nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet, const CCoinControl *coinControl = NULL) const; |
|
|
|
|
|
|
|
|
|
CWalletDB *pwalletdbEncryption; |
|
|
|
@ -552,9 +557,12 @@ public:
@@ -552,9 +557,12 @@ public:
|
|
|
|
|
* populate vCoins with vector of available COutputs. |
|
|
|
|
*/ |
|
|
|
|
void AvailableCoins(std::vector<COutput>& vCoins, bool fOnlyConfirmed=true, const CCoinControl *coinControl = NULL, bool fIncludeZeroValue=false) const; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Select coins until nTargetValue is reached. Return the actual value |
|
|
|
|
* and the corresponding coin set. |
|
|
|
|
* Shuffle and select coins until nTargetValue is reached while avoiding |
|
|
|
|
* small change; This method is stochastic for some inputs and upon |
|
|
|
|
* completion the coin set and corresponding actual target value is |
|
|
|
|
* assembled |
|
|
|
|
*/ |
|
|
|
|
bool SelectCoinsMinConf(const CAmount& nTargetValue, int nConfMine, int nConfTheirs, std::vector<COutput> vCoins, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, CAmount& nValueRet) const; |
|
|
|
|
|
|
|
|
@ -638,7 +646,17 @@ public:
@@ -638,7 +646,17 @@ public:
|
|
|
|
|
CAmount GetWatchOnlyBalance() const; |
|
|
|
|
CAmount GetUnconfirmedWatchOnlyBalance() const; |
|
|
|
|
CAmount GetImmatureWatchOnlyBalance() const; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Insert additional inputs into the transaction by |
|
|
|
|
* calling CreateTransaction(); |
|
|
|
|
*/ |
|
|
|
|
bool FundTransaction(CMutableTransaction& tx, CAmount& nFeeRet, int& nChangePosRet, std::string& strFailReason, bool includeWatching); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Create a new transaction paying the recipients with a set of coins |
|
|
|
|
* selected by SelectCoins(); Also create the change output, when needed |
|
|
|
|
*/ |
|
|
|
|
bool CreateTransaction(const std::vector<CRecipient>& vecSend, CWalletTx& wtxNew, CReserveKey& reservekey, CAmount& nFeeRet, int& nChangePosRet, |
|
|
|
|
std::string& strFailReason, const CCoinControl *coinControl = NULL, bool sign = true); |
|
|
|
|
bool CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey); |
|
|
|
|